{"version":3,"file":"ngx-dropzone-next.mjs","sources":["../../../projects/ngx-dropzone/src/lib/ngx-dropzone-label.directive.ts","../../../projects/ngx-dropzone/src/lib/helpers.ts","../../../projects/ngx-dropzone/src/lib/ngx-dropzone-preview/ngx-dropzone-remove-badge/ngx-dropzone-remove-badge.component.ts","../../../projects/ngx-dropzone/src/lib/ngx-dropzone-preview/ngx-dropzone-preview.component.ts","../../../projects/ngx-dropzone/src/lib/ngx-dropzone-preview/ngx-dropzone-preview.component.html","../../../projects/ngx-dropzone/src/lib/ngx-dropzone/ngx-dropzone.component.ts","../../../projects/ngx-dropzone/src/lib/ngx-dropzone/ngx-dropzone.component.html","../../../projects/ngx-dropzone/src/lib/ngx-dropzone-preview/ngx-dropzone-image-preview/ngx-dropzone-image-preview.component.ts","../../../projects/ngx-dropzone/src/lib/ngx-dropzone-preview/ngx-dropzone-image-preview/ngx-dropzone-image-preview.component.html","../../../projects/ngx-dropzone/src/lib/ngx-dropzone-preview/ngx-dropzone-video-preview/ngx-dropzone-video-preview.component.ts","../../../projects/ngx-dropzone/src/lib/ngx-dropzone-preview/ngx-dropzone-video-preview/ngx-dropzone-video-preview.component.html","../../../projects/ngx-dropzone/src/public_api.ts","../../../projects/ngx-dropzone/src/ngx-dropzone-next.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({ selector: 'ngx-dropzone-label' })\nexport class NgxDropzoneLabelDirective {}\n","export function preventDefault(event: Event) {\n  event.preventDefault();\n  event.stopPropagation();\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n  selector: 'ngx-dropzone-remove-badge',\n  template: `\n    <svg>\n      <line x1=\"0\" y1=\"0\" x2=\"10\" y2=\"10\" />\n      <line x1=\"0\" y1=\"10\" x2=\"10\" y2=\"0\" />\n    </svg>\n  `,\n  styleUrls: ['./ngx-dropzone-remove-badge.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxDropzoneRemoveBadgeComponent {}\n","import {\n  Component,\n  HostBinding,\n  HostListener,\n  output,\n  ChangeDetectionStrategy,\n  booleanAttribute,\n  input,\n  inject,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { NgxDropzoneRemoveBadgeComponent } from './ngx-dropzone-remove-badge/ngx-dropzone-remove-badge.component';\n\n@Component({\n  selector: 'ngx-dropzone-preview',\n  templateUrl: './ngx-dropzone-preview.component.html',\n  styleUrls: ['./ngx-dropzone-preview.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgxDropzoneRemoveBadgeComponent],\n  host: {\n    /** We use the HostBinding to pass these common styles to child components. */\n    '[style]': 'hostStyles',\n  },\n})\nexport class NgxDropzonePreviewComponent {\n  readonly hostStyles = inject(DomSanitizer).bypassSecurityTrustStyle(`\n    display: flex;\n    height: 140px;\n    min-height: 140px;\n    min-width: 180px;\n    max-width: 180px;\n    justify-content: center;\n    align-items: center;\n    padding: 0 20px;\n    margin: 10px;\n    border-radius: 5px;\n    position: relative;\n  `);\n\n  /** The file to preview. */\n  readonly file = input<File>();\n\n  /** Allow the user to remove files. */\n  readonly removable = input(false, { transform: booleanAttribute });\n\n  /** Emitted when the element should be removed. */\n  readonly removed = output<File>();\n\n  @HostListener('keyup', ['$event'])\n  keyEvent(event: KeyboardEvent) {\n    if (\n      // Backspace\n      event.keyCode === 8 ||\n      // Delete\n      event.keyCode === 46\n    ) {\n      this.remove();\n    }\n  }\n\n  /** Make the preview item focusable using the tab key. */\n  @HostBinding('tabindex') tabIndex = 0;\n\n  /** Remove method to be used from the template. */\n  _remove(event: MouseEvent) {\n    event.stopPropagation();\n    this.remove();\n  }\n\n  /** Remove the preview item (use from component code). */\n  remove() {\n    if (this.removable()) {\n      this.removed.emit(this.file()!);\n    }\n  }\n\n  protected async readFile(): Promise<string | ArrayBuffer> {\n    return new Promise<string | ArrayBuffer>((resolve, reject) => {\n      const file = this.file();\n      const reader = new FileReader();\n\n      const cleanup = () => {\n        reader.removeEventListener('load', onLoad);\n        reader.removeEventListener('error', onError);\n      };\n\n      const onLoad = () => {\n        cleanup();\n        resolve(reader.result!);\n      };\n\n      const onError = (error: Event) => {\n        cleanup();\n        reject(error);\n      };\n\n      reader.addEventListener('load', onLoad);\n      reader.addEventListener('error', onError);\n\n      if (!file) {\n        return reject(\n          'No file to read. Please provide a file using the [file] Input property.'\n        );\n      }\n\n      reader.readAsDataURL(file);\n    });\n  }\n}\n","<ng-content select=\"ngx-dropzone-label\"></ng-content>\n@if (removable()) {\n  <ngx-dropzone-remove-badge (click)=\"_remove($event)\" />\n}\n","import {\n  Component,\n  HostListener,\n  ElementRef,\n  output,\n  input,\n  inject,\n  Injector,\n  viewChild,\n  contentChildren,\n  computed,\n  booleanAttribute,\n  numberAttribute,\n  signal,\n  type OnChanges,\n  type SimpleChanges,\n} from '@angular/core';\n\nimport { preventDefault } from '../helpers';\nimport { NgxDropzonePreviewComponent } from '../ngx-dropzone-preview/ngx-dropzone-preview.component';\n\nimport type { RejectedFile } from './ngx-dropzone.service';\n\nexport interface NgxDropzoneChangeEvent {\n  source: NgxDropzoneComponent;\n  addedFiles: File[];\n  rejectedFiles: RejectedFile[];\n}\n\n@Component({\n  selector: 'ngx-dropzone, [ngx-dropzone]',\n  templateUrl: './ngx-dropzone.component.html',\n  styleUrls: ['./ngx-dropzone.component.scss'],\n  host: {\n    '[class.ngx-dz-hovered]': 'isHovered()',\n    '[class.unclickable]': 'disableClick()',\n    '[class.expandable]': 'expandable()',\n    '[class.ngx-dz-disabled]': 'disabled()',\n  },\n})\nexport class NgxDropzoneComponent implements OnChanges {\n  readonly injector = inject(Injector);\n\n  /** A list of the content-projected preview children. */\n  readonly previewChildren = contentChildren(NgxDropzonePreviewComponent, {\n    descendants: true,\n  });\n\n  protected readonly hasPreviews = computed(\n    () => !!this.previewChildren().length\n  );\n\n  /** A template reference to the native file input element. */\n  readonly fileInput =\n    viewChild.required<ElementRef<HTMLInputElement>>('fileInput');\n\n  /** Emitted when any files were added or rejected. */\n  readonly change = output<NgxDropzoneChangeEvent>();\n\n  /** Set the accepted file types. Defaults to '*'. */\n  readonly accept = input('*');\n\n  /** Disable any user interaction with the component. */\n  readonly disabled = input(false, { transform: booleanAttribute });\n\n  /** Allow the selection of multiple files. */\n  readonly multiple = input(true, { transform: booleanAttribute });\n\n  /** Set the maximum size a single file may have. */\n  readonly maxFileSize = input(undefined, { transform: numberAttribute });\n\n  /** Allow the dropzone container to expand vertically. */\n  readonly expandable = input(false, { transform: booleanAttribute });\n\n  /** Open the file selector on click. */\n  readonly disableClick = input(false, { transform: booleanAttribute });\n\n  /** Allow dropping directories. */\n  readonly processDirectoryDrop = input(false, { transform: booleanAttribute });\n\n  /** Expose the id, aria-label, aria-labelledby and aria-describedby of the native file input for proper accessibility. */\n  readonly id = input('');\n  readonly ariaLabel = input('', { alias: 'aria-label' });\n  readonly ariaLabelledby = input('', { alias: 'aria-labelledby' });\n  readonly ariaDescribedBy = input('', { alias: 'aria-describedby' });\n\n  protected readonly isHovered = signal(false);\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['disabled'] && this.isHovered()) {\n      this.isHovered.set(false);\n    }\n  }\n\n  /** Show the native OS file explorer to select files. */\n  @HostListener('click')\n  _onClick() {\n    if (!this.disableClick()) {\n      this.showFileSelector();\n    }\n  }\n\n  @HostListener('dragover', ['$event'])\n  _onDragOver(event: DragEvent) {\n    if (this.disabled()) {\n      return;\n    }\n\n    preventDefault(event);\n    this.isHovered.set(true);\n  }\n\n  @HostListener('dragleave')\n  _onDragLeave() {\n    this.isHovered.set(false);\n  }\n\n  @HostListener('drop', ['$event'])\n  _onDrop(event: DragEvent) {\n    if (this.disabled()) {\n      return;\n    }\n\n    preventDefault(event);\n    this.isHovered.set(false);\n\n    import('./on-drop').then((m) => m.onDrop(this, event));\n  }\n\n  showFileSelector() {\n    if (!this.disabled()) {\n      (this.fileInput().nativeElement as HTMLInputElement).click();\n    }\n  }\n\n  async _onFilesSelected(event: Event) {\n    const files: FileList = (event.target as HTMLInputElement).files!;\n\n    // We must `await` before setting `value` to an empty string,\n    // because it's going to prune the `files` on the input element.\n    await import('./on-drop').then((m) => m.handleFileDrop(this, files));\n\n    // Reset the native file input element to allow selecting the same file again\n    this.fileInput().nativeElement.value = '';\n\n    // fix(#32): Prevent the default event behaviour which caused the change event to emit twice.\n    preventDefault(event);\n  }\n}\n","<input\n  #fileInput\n  type=\"file\"\n  [id]=\"id()\"\n  [multiple]=\"multiple()\"\n  [accept]=\"accept()\"\n  [disabled]=\"disabled()\"\n  (change)=\"_onFilesSelected($event)\"\n  [attr.aria-label]=\"ariaLabel()\"\n  [attr.aria-labelledby]=\"ariaLabelledby()\"\n  [attr.aria-describedby]=\"ariaDescribedBy()\"\n/>\n\n@if (!hasPreviews()) {\n  <ng-content select=\"ngx-dropzone-label\" />\n}\n\n<ng-content select=\"ngx-dropzone-preview\" />\n<ng-content />\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  input,\n  signal,\n  afterNextRender,\n  type OnChanges,\n  type SimpleChanges,\n  inject,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { NgxDropzonePreviewComponent } from '../ngx-dropzone-preview.component';\nimport { NgxDropzoneRemoveBadgeComponent } from '../ngx-dropzone-remove-badge/ngx-dropzone-remove-badge.component';\n\n@Component({\n  selector: 'ngx-dropzone-image-preview',\n  templateUrl: './ngx-dropzone-image-preview.component.html',\n  styleUrls: ['./ngx-dropzone-image-preview.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgxDropzoneRemoveBadgeComponent],\n  providers: [\n    {\n      provide: NgxDropzonePreviewComponent,\n      useExisting: NgxDropzoneImagePreviewComponent,\n    },\n  ],\n})\nexport class NgxDropzoneImagePreviewComponent\n  extends NgxDropzonePreviewComponent\n  implements OnChanges\n{\n  /** The image data source. */\n  private defaultImgLoading =\n    'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiByZ2IoMjQxLCAyNDIsIDI0Mykgbm9uZSByZXBlYXQgc2Nyb2xsIDAlIDAlOyBkaXNwbGF5OiBibG9jazsgc2hhcGUtcmVuZGVyaW5nOiBhdXRvOyIgd2lkdGg9IjIyNHB4IiBoZWlnaHQ9IjIyNHB4IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPgo8Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSIxNCIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2U9IiM4NWEyYjYiIHN0cm9rZS1kYXNoYXJyYXk9IjIxLjk5MTE0ODU3NTEyODU1MiAyMS45OTExNDg1NzUxMjg1NTIiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+CiAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGR1cj0iMS4xNjI3OTA2OTc2NzQ0MTg0cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGtleVRpbWVzPSIwOzEiIHZhbHVlcz0iMCA1MCA1MDszNjAgNTAgNTAiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KPC9jaXJjbGU+CjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjEwIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZT0iI2JiY2VkZCIgc3Ryb2tlLWRhc2hhcnJheT0iMTUuNzA3OTYzMjY3OTQ4OTY2IDE1LjcwNzk2MzI2Nzk0ODk2NiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjE1LjcwNzk2MzI2Nzk0ODk2NiIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZHVyPSIxLjE2Mjc5MDY5NzY3NDQxODRzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIga2V5VGltZXM9IjA7MSIgdmFsdWVzPSIwIDUwIDUwOy0zNjAgNTAgNTAiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KPC9jaXJjbGU+CjwhLS0gW2xkaW9dIGdlbmVyYXRlZCBieSBodHRwczovL2xvYWRpbmcuaW8vIC0tPjwvc3ZnPg==';\n  protected imageSrc = signal(\n    inject(DomSanitizer).bypassSecurityTrustUrl(this.defaultImgLoading)\n  );\n\n  /** The file to preview. */\n  override readonly file = input<File>();\n\n  constructor() {\n    super();\n\n    afterNextRender(() => {\n      this.renderImage();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['file']) {\n      this.renderImage();\n    }\n  }\n\n  private renderImage() {\n    this.readFile()\n      .then((img) => setTimeout(() => this.imageSrc.set(img)))\n      .catch((err) => console.error(err));\n  }\n}\n","<img [src]=\"imageSrc()\" />\n<ng-content select=\"ngx-dropzone-label\"></ng-content>\n@if (removable()) {\n  <ngx-dropzone-remove-badge (click)=\"_remove($event)\" />\n}\n","import {\n  Component,\n  inject,\n  DestroyRef,\n  afterNextRender,\n  signal,\n  ChangeDetectionStrategy,\n  untracked,\n} from '@angular/core';\nimport { DomSanitizer, type SafeUrl } from '@angular/platform-browser';\n\nimport { NgxDropzonePreviewComponent } from '../ngx-dropzone-preview.component';\nimport { NgxDropzoneRemoveBadgeComponent } from '../ngx-dropzone-remove-badge/ngx-dropzone-remove-badge.component';\n\n@Component({\n  selector: 'ngx-dropzone-video-preview',\n  templateUrl: './ngx-dropzone-video-preview.component.html',\n  styleUrls: ['./ngx-dropzone-video-preview.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgxDropzoneRemoveBadgeComponent],\n  providers: [\n    {\n      provide: NgxDropzonePreviewComponent,\n      useExisting: NgxDropzoneVideoPreviewComponent,\n    },\n  ],\n})\nexport class NgxDropzoneVideoPreviewComponent extends NgxDropzonePreviewComponent {\n  /** The video data source. */\n  protected readonly _sanitizedVideoSrc = signal<SafeUrl | null>(null);\n\n  constructor() {\n    super();\n\n    const destroyRef = inject(DestroyRef);\n    const sanitizer = inject(DomSanitizer);\n\n    afterNextRender(() => {\n      const file = untracked(this.file);\n      if (!file) return;\n\n      /**\n       * We sanitize the URL here to enable the preview.\n       * Please note that this could cause security issues!\n       **/\n      const videoObjectUrl = URL.createObjectURL(file);\n      this._sanitizedVideoSrc.set(\n        sanitizer.bypassSecurityTrustUrl(videoObjectUrl)\n      );\n\n      destroyRef.onDestroy(() => URL.revokeObjectURL(videoObjectUrl));\n    });\n  }\n}\n","@if (_sanitizedVideoSrc(); as sanitizedVideoSrc) {\n  <video controls (click)=\"$event.stopPropagation()\">\n    <source [src]=\"sanitizedVideoSrc\" />\n  </video>\n}\n\n<ng-content select=\"ngx-dropzone-label\"></ng-content>\n\n@if (removable()) {\n  <ngx-dropzone-remove-badge (click)=\"_remove($event)\" />\n}\n","/*\n * Public API Surface of ngx-dropzone-next\n */\n\nexport { NgxDropzoneLabelDirective } from './lib/ngx-dropzone-label.directive';\n\nexport {\n  type NgxDropzoneChangeEvent,\n  NgxDropzoneComponent,\n} from './lib/ngx-dropzone/ngx-dropzone.component';\n\nexport { NgxDropzonePreviewComponent } from './lib/ngx-dropzone-preview/ngx-dropzone-preview.component';\n\nexport { NgxDropzoneImagePreviewComponent } from './lib/ngx-dropzone-preview/ngx-dropzone-image-preview/ngx-dropzone-image-preview.component';\n\nexport { NgxDropzoneVideoPreviewComponent } from './lib/ngx-dropzone-preview/ngx-dropzone-video-preview/ngx-dropzone-video-preview.component';\n\nexport { NgxDropzoneRemoveBadgeComponent } from './lib/ngx-dropzone-preview/ngx-dropzone-remove-badge/ngx-dropzone-remove-badge.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}