{"version":3,"file":"ironsource-fusion-ui-components-file-drag-and-drop.mjs","sources":["../../../projects/fusion-ui/components/file-drag-and-drop/file-drag-and-drop.config.ts","../../../projects/fusion-ui/components/file-drag-and-drop/file-drag-and-drop.directive.ts","../../../projects/fusion-ui/components/file-drag-and-drop/file-drag-and-drop.component.ts","../../../projects/fusion-ui/components/file-drag-and-drop/file-drag-and-drop.component.html","../../../projects/fusion-ui/components/file-drag-and-drop/file-drag-and-drop.module.ts","../../../projects/fusion-ui/components/file-drag-and-drop/ironsource-fusion-ui-components-file-drag-and-drop.ts"],"sourcesContent":["export const DRAG_OVER_CSS_CLASS = 'fu-file-drag-over';\nexport const DISABLED_CSS_CLASS = 'fu-file-drag-drop-disabled';\nexport const LOADING_CSS_CLASS = 'fu-file-drag-drop-loading';\n","import {Directive, ElementRef, EventEmitter, Input, Output, OnInit, AfterViewInit, OnDestroy, Renderer2} from '@angular/core';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {fromEvent, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {DISABLED_CSS_CLASS, DRAG_OVER_CSS_CLASS, LOADING_CSS_CLASS} from './file-drag-and-drop.config';\n\n/**\n * Directive 'fusionFileDragAndDrop' for file selection by file select dialog\n * or by files drag and drop to the host area\n */\n@Directive({\n    selector: '[fusionFileDragAndDrop]'\n})\nexport class FileDragAndDropDirective implements OnInit, AfterViewInit, OnDestroy {\n    /**\n     * element ID for initial file selection dialog by click.\n     * if not provided used click on host\n     */\n    @Input() buttonId: string;\n    //\n    /**\n     * for disabling file selection\n     */\n    @Input() set disabled(value: boolean) {\n        this._disabled = value;\n        this.toggleCssClass(DISABLED_CSS_CLASS, this._disabled);\n    }\n    /**\n     * for loading file selection\n     */\n    @Input() set loading(value: boolean) {\n        this._loading = value;\n        this.toggleCssClass(LOADING_CSS_CLASS, this._loading);\n    }\n    /**\n     * input.file accept attribute (file select dialog only, not grad&&drop)\n     */\n    @Input() accept: string;\n    /**\n     * input.file multiple attribute (file select dialog only, not grad&&drop)\n     */\n    @Input() multiple = false;\n    /**\n     * output event emitter (files: FileList)\n     */\n    @Output() handleFiles = new EventEmitter();\n\n    onDestroy$ = new Subject<void>();\n    inputElement: any;\n\n    private _disabled = false;\n    private _loading = false;\n\n    constructor(private _element: ElementRef, private _renderer: Renderer2) {}\n\n    ngOnInit() {\n        fromEvent(this._element.nativeElement, 'click').pipe(takeUntil(this.onDestroy$)).subscribe(this.onClick.bind(this));\n\n        fromEvent(this._element.nativeElement, 'dragenter').pipe(takeUntil(this.onDestroy$)).subscribe(this.onDragEnter.bind(this));\n\n        fromEvent(this._element.nativeElement, 'dragleave').pipe(takeUntil(this.onDestroy$)).subscribe(this.onDragLeave.bind(this));\n\n        fromEvent(this._element.nativeElement, 'dragover').pipe(takeUntil(this.onDestroy$)).subscribe(this.onDragOver.bind(this));\n\n        fromEvent(this._element.nativeElement, 'drop').pipe(takeUntil(this.onDestroy$)).subscribe(this.onDrop.bind(this));\n    }\n\n    ngAfterViewInit() {\n        const parent = this._renderer.parentNode(this._element.nativeElement);\n        this.inputElement = this._renderer.createElement('input');\n        this._renderer.setAttribute(this.inputElement, 'type', 'file');\n        this._renderer.setAttribute(this.inputElement, 'name', `input_file_${this.buttonId}`);\n        this._renderer.setAttribute(this.inputElement, 'id', `input_file_${this.buttonId}`);\n        if (this.multiple) {\n            this._renderer.setAttribute(this.inputElement, 'multiple', '');\n        }\n        if (this.accept) {\n            this._renderer.setAttribute(this.inputElement, 'accept', this.accept);\n        }\n        this._renderer.setStyle(this.inputElement, 'display', 'none');\n\n        fromEvent(this.inputElement, 'change')\n            .pipe(takeUntil(this.onDestroy$))\n            .subscribe((event: Event) => {\n                if (this._disabled) {\n                    return;\n                }\n                const target = event.target as HTMLInputElement;\n                this.handleFiles.emit(target.files);\n                setTimeout(() => {\n                    // set input value to be empty to fix issue when user tries to upload same file again\n                    target.value = '';\n                }, 1500);\n            });\n        if (!parent.querySelector(`#input_file_${this.buttonId}`)) {\n            this._renderer.appendChild(parent, this.inputElement);\n        }\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    onDragEnter(event) {\n        this.suppressDefaultEvent(event);\n        if (this.isDraggable()) {\n            this._renderer.addClass(this._element.nativeElement, DRAG_OVER_CSS_CLASS);\n        }\n    }\n\n    onDragLeave(event) {\n        this.suppressDefaultEvent(event);\n        if (this.isDraggable() && !event.relatedTarget.closest('[fusionfiledraganddrop]')) {\n            this._renderer.removeClass(this._element.nativeElement, DRAG_OVER_CSS_CLASS);\n        }\n    }\n\n    onDragOver(event) {\n        this.suppressDefaultEvent(event);\n    }\n\n    onDrop(event) {\n        this.suppressDefaultEvent(event);\n        if (this.isDraggable()) {\n            this._renderer.removeClass(this._element.nativeElement, DRAG_OVER_CSS_CLASS);\n            const files = event.dataTransfer.files;\n            this.handleFiles.emit(files);\n        }\n    }\n\n    onClick(event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        if (\n            !isNullOrUndefined(this.buttonId) &&\n            (!this._disabled || !this._loading) &&\n            (event.target.id === this.buttonId || event.target.closest('#' + this.buttonId))\n        ) {\n            this.inputElement.click();\n        }\n    }\n\n    private suppressDefaultEvent(event: Event) {\n        if (event) {\n            event.preventDefault();\n            event.stopPropagation();\n        }\n    }\n\n    private isDraggable(): boolean {\n        return !(this._disabled || this._loading);\n    }\n\n    private toggleCssClass(className: string, toggled: boolean) {\n        if (toggled) {\n            this._renderer.addClass(this._element.nativeElement, className);\n        } else {\n            this._renderer.removeClass(this._element.nativeElement, className);\n        }\n    }\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n    selector: 'fusion-file-drag-and-drop',\n    templateUrl: './file-drag-and-drop.component.html',\n    styleUrls: ['./file-drag-and-drop.component.scss']\n})\nexport class FileDragAndDropComponent {\n    /**\n     * element ID for initial file selection dialog by click.\n     * if not provided used click on host\n     */\n    @Input() buttonId: string;\n    /**\n     * for disabling file selection\n     */\n    @Input() disabled: boolean;\n    /**\n     * for loading file selection\n     */\n    @Input() loading: boolean;\n    /**\n     * input.file accept attribute (file select dialog only, not grad&&drop)\n     */\n    @Input() accept: string;\n    /**\n     * input.file multiple attribute (file select dialog only, not grad&&drop)\n     */\n    @Input() multiple = false;\n    /**\n     * output event emitter (files: FileList)\n     */\n    @Output() handleFiles = new EventEmitter();\n\n    handleSelectedFiles(files: FileList) {\n        this.handleFiles.emit(files);\n    }\n}\n","<div fusionFileDragAndDrop\n     [buttonId]=\"buttonId\"\n     [disabled]=\"disabled\"\n     [loading]=\"loading\"\n     [accept]=\"accept\"\n     [multiple]=\"multiple\"\n     (handleFiles)=\"handleSelectedFiles($event)\"\n>\n    <ng-content></ng-content>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FileDragAndDropDirective} from './file-drag-and-drop.directive';\nimport {FileDragAndDropComponent} from './file-drag-and-drop.component';\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [FileDragAndDropDirective, FileDragAndDropComponent],\n    exports: [FileDragAndDropDirective, FileDragAndDropComponent]\n})\nexport class FileDragAndDropModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}