ng-file-drag-drop
Version:
Check out [demo](https://raunak811.github.io/angular-file-drag-drop/)
64 lines • 4.58 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/ng-file-drag-drop.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, HostListener, HostBinding, Output, EventEmitter } from '@angular/core';
export class NgFileDragDropDirective {
constructor() {
this.fileDropped = new EventEmitter();
}
/**
* @param {?} e
* @return {?}
*/
onDragOver(e) {
e.preventDefault();
e.stopPropagation();
this.fileOver = true;
}
/**
* @param {?} e
* @return {?}
*/
onDragLeave(e) {
e.preventDefault();
e.stopPropagation();
}
/**
* @param {?} e
* @return {?}
*/
onDrop(e) {
e.preventDefault();
e.stopPropagation();
/** @type {?} */
const files = e.dataTransfer.files;
this.fileOver = false;
if (files.length > 0) {
this.fileDropped.emit(files);
//console.log(`You have choosen ${files.length} files`)
}
}
}
NgFileDragDropDirective.decorators = [
{ type: Directive, args: [{
selector: '[ngFileDragDrop]'
},] }
];
/** @nocollapse */
NgFileDragDropDirective.ctorParameters = () => [];
NgFileDragDropDirective.propDecorators = {
fileOver: [{ type: HostBinding, args: ['class.fileover',] }],
fileDropped: [{ type: Output }],
onDragOver: [{ type: HostListener, args: ['dragover', ['$event'],] }],
onDragLeave: [{ type: HostListener, args: ['dragleave', ['$event'],] }],
onDrop: [{ type: HostListener, args: ['drop', ['$event'],] }]
};
if (false) {
/** @type {?} */
NgFileDragDropDirective.prototype.fileOver;
/** @type {?} */
NgFileDragDropDirective.prototype.fileDropped;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZmlsZS1kcmFnLWRyb3AuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZmlsZS1kcmFnLWRyb3AvIiwic291cmNlcyI6WyJsaWIvbmctZmlsZS1kcmFnLWRyb3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0YsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQztRQUZVLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVoQyxDQUFDOzs7OztJQUVxQixVQUFVLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7Ozs7O0lBRXNDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFaUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQzs7Y0FDZCxLQUFLLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDNUIsdURBQXVEO1NBQ3hEO0lBRUgsQ0FBQzs7O1lBL0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2FBQzdCOzs7Ozt1QkFHRSxXQUFXLFNBQUMsZ0JBQWdCOzBCQUM1QixNQUFNO3lCQUlOLFlBQVksU0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7MEJBTW5DLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7cUJBS3BDLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Ozs7SUFoQmhDLDJDQUFpRDs7SUFDakQsOENBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIEhvc3RCaW5kaW5nLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdGaWxlRHJhZ0Ryb3BdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ0ZpbGVEcmFnRHJvcERpcmVjdGl2ZSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maWxlb3ZlcicpIGZpbGVPdmVyOiBib29sZWFuO1xuICBAT3V0cHV0KCkgZmlsZURyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSkgb25EcmFnT3ZlcihlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5maWxlT3ZlciA9IHRydWU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKSBvbkRyYWdMZWF2ZShlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSkgb25Ecm9wKGUpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBmaWxlcyA9IGUuZGF0YVRyYW5zZmVyLmZpbGVzO1xuICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgICBpZihmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZpbGVEcm9wcGVkLmVtaXQoZmlsZXMpXG4gICAgICAvL2NvbnNvbGUubG9nKGBZb3UgaGF2ZSBjaG9vc2VuICR7ZmlsZXMubGVuZ3RofSBmaWxlc2ApXG4gICAgfVxuICAgIFxuICB9XG5cbn1cbiJdfQ==