@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
168 lines • 11.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: file-drop.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, EventEmitter, ElementRef, HostListener, Input, Output } from '@angular/core';
var FileDropDirective = /** @class */ (function () {
function FileDropDirective(element) {
this.enableDrop = false;
this.isSingle = false;
this.fileOver = new EventEmitter();
this.fileDrop = new EventEmitter();
this.element = element;
}
/**
* @param {?} event
* @return {?}
*/
FileDropDirective.prototype.onDrop = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (!this.enableDrop) {
return;
}
/** @type {?} */
var transfer = this._getTransfer(event);
if (!transfer) {
return;
}
this._preventAndStop(event);
if (this.isSingle) {
this.fileDrop.emit([transfer.files[0]]);
}
else {
this.fileDrop.emit(transfer.files);
}
};
/**
* @param {?} event
* @return {?}
*/
FileDropDirective.prototype.onDragOver = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (!this.enableDrop) {
return;
}
/** @type {?} */
var transfer = this._getTransfer(event);
if (!this._haveFiles(transfer.types)) {
return;
}
transfer.dropEffect = 'move';
this._preventAndStop(event);
this.fileOver.emit(true);
};
/**
* @param {?} event
* @return {?}
*/
FileDropDirective.prototype.onDragLeave = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (!this.enableDrop) {
return;
}
if (((/** @type {?} */ (this))).element) {
if (event.currentTarget === ((/** @type {?} */ (this))).element[0]) {
return;
}
}
this._preventAndStop(event);
this.fileOver.emit(false);
};
/**
* @protected
* @param {?} event
* @return {?}
*/
FileDropDirective.prototype._getTransfer = /**
* @protected
* @param {?} event
* @return {?}
*/
function (event) {
return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer;
};
/**
* @protected
* @param {?} event
* @return {?}
*/
FileDropDirective.prototype._preventAndStop = /**
* @protected
* @param {?} event
* @return {?}
*/
function (event) {
event.preventDefault();
event.stopPropagation();
};
/**
* @protected
* @param {?} types
* @return {?}
*/
FileDropDirective.prototype._haveFiles = /**
* @protected
* @param {?} types
* @return {?}
*/
function (types) {
if (!types) {
return false;
}
if (types.indexOf) {
return types.indexOf('Files') !== -1;
}
else if (types.contains) {
return types.contains('Files');
}
else {
return false;
}
};
FileDropDirective.decorators = [
{ type: Directive, args: [{
selector: '[d-file-drop]' // tslint:disable-line
},] }
];
/** @nocollapse */
FileDropDirective.ctorParameters = function () { return [
{ type: ElementRef }
]; };
FileDropDirective.propDecorators = {
enableDrop: [{ type: Input }],
isSingle: [{ type: Input }],
fileOver: [{ type: Output }],
fileDrop: [{ type: Output }],
onDrop: [{ type: HostListener, args: ['drop', ['$event'],] }],
onDragOver: [{ type: HostListener, args: ['dragover', ['$event'],] }],
onDragLeave: [{ type: HostListener, args: ['dragleave', ['$event'],] }]
};
return FileDropDirective;
}());
export { FileDropDirective };
if (false) {
/** @type {?} */
FileDropDirective.prototype.enableDrop;
/** @type {?} */
FileDropDirective.prototype.isSingle;
/** @type {?} */
FileDropDirective.prototype.fileOver;
/** @type {?} */
FileDropDirective.prototype.fileDrop;
/**
* @type {?}
* @protected
*/
FileDropDirective.prototype.element;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL3VwbG9hZC8iLCJzb3VyY2VzIjpbImZpbGUtZHJvcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakc7SUFXRSwyQkFBbUIsT0FBbUI7UUFQN0IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ1QsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUszRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDOzs7OztJQUdNLGtDQUFNOzs7O0lBRGIsVUFDYyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE9BQU87U0FDUjs7WUFDSyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7Ozs7O0lBR00sc0NBQVU7Ozs7SUFEakIsVUFDa0IsS0FBVTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPO1NBQ1I7O1lBQ0ssUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQyxPQUFPO1NBQ1I7UUFFRCxRQUFRLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7Ozs7O0lBR00sdUNBQVc7Ozs7SUFEbEIsVUFDbUIsS0FBVTtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsbUJBQUEsSUFBSSxFQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDekIsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsbUJBQUEsSUFBSSxFQUFPLENBQUMsQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFFLEVBQUU7Z0JBQ3RELE9BQU87YUFDUjtTQUNGO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOzs7Ozs7SUFFUyx3Q0FBWTs7Ozs7SUFBdEIsVUFBdUIsS0FBVTtRQUMvQixPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO0lBQ3BGLENBQUM7Ozs7OztJQUVTLDJDQUFlOzs7OztJQUF6QixVQUEwQixLQUFVO1FBQ2xDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7Ozs7O0lBRVMsc0NBQVU7Ozs7O0lBQXBCLFVBQXFCLEtBQVU7UUFDN0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO2FBQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7O2dCQW5GRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWUsQ0FBQyxzQkFBc0I7aUJBQ2pEOzs7O2dCQUxpQyxVQUFVOzs7NkJBT3pDLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxNQUFNOzJCQUNOLE1BQU07eUJBUU4sWUFBWSxTQUFDLE1BQU0sRUFBRSxDQUFFLFFBQVEsQ0FBRTs2QkFpQmpDLFlBQVksU0FBQyxVQUFVLEVBQUUsQ0FBRSxRQUFRLENBQUU7OEJBZXJDLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBRSxRQUFRLENBQUU7O0lBcUN6Qyx3QkFBQztDQUFBLEFBcEZELElBb0ZDO1NBakZZLGlCQUFpQjs7O0lBQzVCLHVDQUE0Qjs7SUFDNUIscUNBQTBCOztJQUMxQixxQ0FBa0U7O0lBQ2xFLHFDQUE2RTs7Ozs7SUFFN0Usb0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2QtZmlsZS1kcm9wXScgLy8gdHNsaW50OmRpc2FibGUtbGluZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZURyb3BEaXJlY3RpdmUge1xyXG4gIEBJbnB1dCgpIGVuYWJsZURyb3AgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1NpbmdsZSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZmlsZU92ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZmlsZURyb3A6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XHJcblxyXG4gIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbICckZXZlbnQnIF0pXHJcbiAgcHVibGljIG9uRHJvcChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZW5hYmxlRHJvcCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB0cmFuc2ZlciA9IHRoaXMuX2dldFRyYW5zZmVyKGV2ZW50KTtcclxuICAgIGlmICghdHJhbnNmZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcHJldmVudEFuZFN0b3AoZXZlbnQpO1xyXG4gICAgaWYgKHRoaXMuaXNTaW5nbGUpIHtcclxuICAgICAgdGhpcy5maWxlRHJvcC5lbWl0KFt0cmFuc2Zlci5maWxlc1swXV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maWxlRHJvcC5lbWl0KHRyYW5zZmVyLmZpbGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyAnJGV2ZW50JyBdKVxyXG4gIHB1YmxpYyBvbkRyYWdPdmVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5lbmFibGVEcm9wKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHRyYW5zZmVyID0gdGhpcy5fZ2V0VHJhbnNmZXIoZXZlbnQpO1xyXG4gICAgaWYgKCF0aGlzLl9oYXZlRmlsZXModHJhbnNmZXIudHlwZXMpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2Zlci5kcm9wRWZmZWN0ID0gJ21vdmUnO1xyXG4gICAgdGhpcy5fcHJldmVudEFuZFN0b3AoZXZlbnQpO1xyXG4gICAgdGhpcy5maWxlT3Zlci5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyAnJGV2ZW50JyBdKVxyXG4gIHB1YmxpYyBvbkRyYWdMZWF2ZShldmVudDogYW55KTogYW55IHtcclxuICAgIGlmICghdGhpcy5lbmFibGVEcm9wKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICgodGhpcyBhcyBhbnkpLmVsZW1lbnQpIHtcclxuICAgICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQgPT09ICh0aGlzIGFzIGFueSkuZWxlbWVudFsgMCBdKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fcHJldmVudEFuZFN0b3AoZXZlbnQpO1xyXG4gICAgdGhpcy5maWxlT3Zlci5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfZ2V0VHJhbnNmZXIoZXZlbnQ6IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gZXZlbnQuZGF0YVRyYW5zZmVyID8gZXZlbnQuZGF0YVRyYW5zZmVyIDogZXZlbnQub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXI7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3ByZXZlbnRBbmRTdG9wKGV2ZW50OiBhbnkpOiBhbnkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9oYXZlRmlsZXModHlwZXM6IGFueSk6IGFueSB7XHJcbiAgICBpZiAoIXR5cGVzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZXMuaW5kZXhPZikge1xyXG4gICAgICByZXR1cm4gdHlwZXMuaW5kZXhPZignRmlsZXMnKSAhPT0gLTE7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVzLmNvbnRhaW5zKSB7XHJcbiAgICAgIHJldHVybiB0eXBlcy5jb250YWlucygnRmlsZXMnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19