UNPKG

easy-drag-and-drop-file-upload

Version:
41 lines 4.2 kB
import { Directive, HostBinding, Output, EventEmitter, HostListener } from '@angular/core'; export class EasyDragAndDropFileUploadDirective { constructor() { this.fileDropped = new EventEmitter(); } // Dragover listener onDragOver(evt) { evt.preventDefault(); evt.stopPropagation(); this.fileOver = true; } // Dragleave listener onDragLeave(evt) { evt.preventDefault(); evt.stopPropagation(); this.fileOver = false; } // Drop listener ondrop(evt) { evt.preventDefault(); evt.stopPropagation(); this.fileOver = false; let files = evt.dataTransfer.files; if (files.length > 0) { this.fileDropped.emit(files); } } } EasyDragAndDropFileUploadDirective.decorators = [ { type: Directive, args: [{ selector: '[easyDnDFileUpload]' },] } ]; EasyDragAndDropFileUploadDirective.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'],] }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFzeS1kcmFnLWFuZC1kcm9wLWZpbGUtdXBsb2FkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Vhc3ktZHJhZy1hbmQtZHJvcC1maWxlLXVwbG9hZC9zcmMvbGliL2Vhc3ktZHJhZy1hbmQtZHJvcC1maWxlLXVwbG9hZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0YsTUFBTSxPQUFPLGtDQUFrQztJQUgvQztRQU1ZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQTJCbEQsQ0FBQztJQXpCQyxvQkFBb0I7SUFDa0IsVUFBVSxDQUFDLEdBQUc7UUFDbEQsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQscUJBQXFCO0lBQ3lCLFdBQVcsQ0FBQyxHQUFHO1FBQzNELEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQjtJQUN5QixNQUFNLENBQUMsR0FBRztRQUNqRCxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDOzs7WUEvQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7YUFDaEM7Ozt1QkFHRSxXQUFXLFNBQUMsZ0JBQWdCOzBCQUM1QixNQUFNO3lCQUdOLFlBQVksU0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7MEJBT25DLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7cUJBT3BDLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlYXN5RG5ERmlsZVVwbG9hZF0nXG59KVxuZXhwb3J0IGNsYXNzIEVhc3lEcmFnQW5kRHJvcEZpbGVVcGxvYWREaXJlY3RpdmUge1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmlsZW92ZXInKSBmaWxlT3ZlcjogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGZpbGVEcm9wcGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLy8gRHJhZ292ZXIgbGlzdGVuZXJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKSBvbkRyYWdPdmVyKGV2dCkge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmZpbGVPdmVyID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIERyYWdsZWF2ZSBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKSBwdWJsaWMgb25EcmFnTGVhdmUoZXZ0KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIERyb3AgbGlzdGVuZXJcbiAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pIHB1YmxpYyBvbmRyb3AoZXZ0KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgICBsZXQgZmlsZXMgPSBldnQuZGF0YVRyYW5zZmVyLmZpbGVzO1xuICAgIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZpbGVEcm9wcGVkLmVtaXQoZmlsZXMpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=