angular-material-fileupload
Version:
A fileupload component based on angular-material design
99 lines • 7.02 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/file-upload-input-for/file-upload-input-for.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, } from "@angular/core";
/**
* A material design file upload queue component.
*/
export class FileUploadInputForDirective {
/**
* @param {?} element
*/
constructor(element) {
this.element = element;
this._queue = null;
this.onFileSelected = new EventEmitter();
this._element = this.element.nativeElement;
}
/**
* @param {?} value
* @return {?}
*/
set fileUploadQueue(value) {
if (value) {
this._queue = value;
}
}
/**
* @return {?}
*/
onChange() {
/** @type {?} */
let files = this.element.nativeElement.files;
this.onFileSelected.emit(files);
for (var i = 0; i < files.length; i++) {
this._queue.add(files[i]);
}
this.element.nativeElement.value = "";
}
/**
* @param {?} event
* @return {?}
*/
onDrop(event) {
/** @type {?} */
let files = event.dataTransfer.files;
this.onFileSelected.emit(files);
for (var i = 0; i < files.length; i++) {
this._queue.add(files[i]);
}
event.preventDefault();
event.stopPropagation();
this.element.nativeElement.value = "";
}
/**
* @param {?} event
* @return {?}
*/
onDropOver(event) {
event.preventDefault();
}
}
FileUploadInputForDirective.decorators = [
{ type: Directive, args: [{
selector: "input[fileUploadInputFor], div[fileUploadInputFor]",
},] }
];
/** @nocollapse */
FileUploadInputForDirective.ctorParameters = () => [
{ type: ElementRef }
];
FileUploadInputForDirective.propDecorators = {
onFileSelected: [{ type: Output }],
fileUploadQueue: [{ type: Input, args: ["fileUploadInputFor",] }],
onChange: [{ type: HostListener, args: ["change",] }],
onDrop: [{ type: HostListener, args: ["drop", ["$event"],] }],
onDropOver: [{ type: HostListener, args: ["dragover", ["$event"],] }]
};
if (false) {
/**
* @type {?}
* @private
*/
FileUploadInputForDirective.prototype._queue;
/**
* @type {?}
* @private
*/
FileUploadInputForDirective.prototype._element;
/** @type {?} */
FileUploadInputForDirective.prototype.onFileSelected;
/**
* @type {?}
* @private
*/
FileUploadInputForDirective.prototype.element;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtaW5wdXQtZm9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbWF0ZXJpYWwtZmlsZXVwbG9hZC8iLCJzb3VyY2VzIjpbImxpYi9maWxlLXVwbG9hZC1pbnB1dC1mb3IvZmlsZS11cGxvYWQtaW5wdXQtZm9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7OztBQVF2QixNQUFNLE9BQU8sMkJBQTJCOzs7O0lBT3RDLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFOL0IsV0FBTSxHQUFRLElBQUksQ0FBQztRQUVWLG1CQUFjLEdBQXlCLElBQUksWUFBWSxFQUVyRSxDQUFDO1FBR0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUM3QyxDQUFDOzs7OztJQUVELElBQ0ksZUFBZSxDQUFDLEtBQVU7UUFDNUIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQjtJQUNILENBQUM7Ozs7SUFHTSxRQUFROztZQUNULEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLO1FBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzs7OztJQUdNLE1BQU0sQ0FBQyxLQUFVOztZQUNsQixLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLO1FBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7Ozs7O0lBR00sVUFBVSxDQUFDLEtBQVU7UUFDMUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OztZQWhERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9EQUFvRDthQUMvRDs7OztZQVpDLFVBQVU7Ozs2QkFnQlQsTUFBTTs4QkFRTixLQUFLLFNBQUMsb0JBQW9CO3VCQU8xQixZQUFZLFNBQUMsUUFBUTtxQkFXckIsWUFBWSxTQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzt5QkFhL0IsWUFBWSxTQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7Ozs7OztJQXpDcEMsNkNBQTJCOzs7OztJQUMzQiwrQ0FBOEI7O0lBQzlCLHFEQUVJOzs7OztJQUVRLDhDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbi8qKlxuICogQSBtYXRlcmlhbCBkZXNpZ24gZmlsZSB1cGxvYWQgcXVldWUgY29tcG9uZW50LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiaW5wdXRbZmlsZVVwbG9hZElucHV0Rm9yXSwgZGl2W2ZpbGVVcGxvYWRJbnB1dEZvcl1cIixcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZElucHV0Rm9yRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBfcXVldWU6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgX2VsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBAT3V0cHV0KCkgcHVibGljIG9uRmlsZVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8RmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgRmlsZVtdXG4gID4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLl9lbGVtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBASW5wdXQoXCJmaWxlVXBsb2FkSW5wdXRGb3JcIilcbiAgc2V0IGZpbGVVcGxvYWRRdWV1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9xdWV1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJjaGFuZ2VcIilcbiAgcHVibGljIG9uQ2hhbmdlKCk6IGFueSB7XG4gICAgbGV0IGZpbGVzID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZmlsZXM7XG4gICAgdGhpcy5vbkZpbGVTZWxlY3RlZC5lbWl0KGZpbGVzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuX3F1ZXVlLmFkZChmaWxlc1tpXSk7XG4gICAgfVxuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gXCJcIjtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJkcm9wXCIsIFtcIiRldmVudFwiXSlcbiAgcHVibGljIG9uRHJvcChldmVudDogYW55KTogYW55IHtcbiAgICBsZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7XG4gICAgdGhpcy5vbkZpbGVTZWxlY3RlZC5lbWl0KGZpbGVzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuX3F1ZXVlLmFkZChmaWxlc1tpXSk7XG4gICAgfVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBcIlwiO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImRyYWdvdmVyXCIsIFtcIiRldmVudFwiXSlcbiAgcHVibGljIG9uRHJvcE92ZXIoZXZlbnQ6IGFueSk6IGFueSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIl19