@uex/web-extensions
Version:
Uex extensions for Angular 6+ web projects
145 lines • 10.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/modules/drag-and-drop/classes/drop-zone.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { EventEmitter } from '@angular/core';
export class DropZone {
/**
* @param {?} _service
* @param {?} id
* @param {?} element
*/
constructor(_service, id, element) {
this._service = _service;
this.id = id;
this.element = element;
this.enabled = true;
this.dragging_over = false;
this.children = [];
this.restriction = null;
this.onEnter = new EventEmitter();
this.onLeave = new EventEmitter();
this.onDrop = new EventEmitter();
this.onRemove = new EventEmitter();
this.$onEnter = new EventEmitter();
this.$onLeave = new EventEmitter();
this.$onDrop = new EventEmitter();
this._onDragEnter = (/**
* @param {?} event
* @return {?}
*/
(event) => {
if (!this.enabled) {
return;
}
if (this.element === event.target || this.element.contains((/** @type {?} */ (event.target)))) {
this.$onEnter.emit(event);
}
});
this._onDragOver = (/**
* @param {?} event
* @return {?}
*/
(event) => {
if (!this._service.isDropZoneRestricted(this)) {
event.preventDefault();
}
});
this._onDrop = (/**
* @param {?} event
* @return {?}
*/
(event) => {
this.$onDrop.emit(event);
});
this._service.addEventListener(this.element, 'dragenter', this._onDragEnter);
this._service.addEventListener(this.element, 'dragover', this._onDragOver, true);
this._service.addEventListener(this.element, 'drop', this._onDrop);
}
/**
* @param {?} enabled
* @return {?}
*/
setEnabled(enabled) {
this.enabled = !!enabled;
}
/**
* @param {?} dragging_over
* @return {?}
*/
setDraggingOver(dragging_over) {
this.dragging_over = !!dragging_over;
}
/**
* @param {?} restriction
* @return {?}
*/
setRestriction(restriction) {
this.restriction = restriction;
}
/**
* @param {?} children
* @return {?}
*/
setDraggableChildren(children) {
this.children = children;
}
/**
* @return {?}
*/
destroy() {
this._service.removeEventListener(this.element, 'dragenter', this._onDragEnter);
this._service.removeEventListener(this.element, 'dragover', this._onDragOver);
this._service.removeEventListener(this.element, 'drop', this._onDrop);
}
}
if (false) {
/** @type {?} */
DropZone.prototype.enabled;
/** @type {?} */
DropZone.prototype.dragging_over;
/** @type {?} */
DropZone.prototype.children;
/** @type {?} */
DropZone.prototype.restriction;
/** @type {?} */
DropZone.prototype.onEnter;
/** @type {?} */
DropZone.prototype.onLeave;
/** @type {?} */
DropZone.prototype.onDrop;
/** @type {?} */
DropZone.prototype.onRemove;
/** @type {?} */
DropZone.prototype.$onEnter;
/** @type {?} */
DropZone.prototype.$onLeave;
/** @type {?} */
DropZone.prototype.$onDrop;
/**
* @type {?}
* @private
*/
DropZone.prototype._onDragEnter;
/**
* @type {?}
* @private
*/
DropZone.prototype._onDragOver;
/**
* @type {?}
* @private
*/
DropZone.prototype._onDrop;
/**
* @type {?}
* @private
*/
DropZone.prototype._service;
/** @type {?} */
DropZone.prototype.id;
/** @type {?} */
DropZone.prototype.element;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC16b25lLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVleC93ZWItZXh0ZW5zaW9ucy8iLCJzb3VyY2VzIjpbImxpYi9tb2R1bGVzL2RyYWctYW5kLWRyb3AvY2xhc3Nlcy9kcm9wLXpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTdDLE1BQU0sT0FBTyxRQUFROzs7Ozs7SUFDbkIsWUFDVSxRQUE0QixFQUNwQixFQUFVLEVBQ1YsT0FBb0I7UUFGNUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDcEIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFPL0IsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGFBQVEsR0FBcUIsRUFBRSxDQUFDO1FBRWhDLGdCQUFXLEdBQXNCLElBQUksQ0FBQztRQUV0QyxZQUFPLEdBQW1DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0QsWUFBTyxHQUFtQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdELFdBQU0sR0FBbUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1RCxhQUFRLEdBQW1DLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsYUFBUSxHQUE0QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZELGFBQVEsR0FBNEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2RCxZQUFPLEdBQTRCLElBQUksWUFBWSxFQUFFLENBQUM7UUF3QnJELGlCQUFZOzs7O1FBQUcsQ0FBQyxLQUFnQixFQUFRLEVBQUU7WUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQUUsT0FBTzthQUFFO1lBRTlCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLG1CQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUEsQ0FBQyxFQUFFO2dCQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQjtRQUNILENBQUMsRUFBQTtRQUVPLGdCQUFXOzs7O1FBQUcsQ0FBQyxLQUFnQixFQUFRLEVBQUU7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQUU7UUFDNUUsQ0FBQyxFQUFBO1FBRU8sWUFBTzs7OztRQUFHLENBQUMsS0FBZ0IsRUFBUSxFQUFFO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsRUFBQTtRQXhEQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7Ozs7SUFpQk0sVUFBVSxDQUFDLE9BQWdCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMzQixDQUFDOzs7OztJQUVNLGVBQWUsQ0FBQyxhQUFzQjtRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQzs7Ozs7SUFFTSxjQUFjLENBQUMsV0FBOEI7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQzs7Ozs7SUFFTSxvQkFBb0IsQ0FBQyxRQUEwQjtRQUNwRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDOzs7O0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FpQkY7OztJQXBEQywyQkFBc0I7O0lBQ3RCLGlDQUE2Qjs7SUFDN0IsNEJBQXVDOztJQUV2QywrQkFBNkM7O0lBRTdDLDJCQUFvRTs7SUFDcEUsMkJBQW9FOztJQUNwRSwwQkFBbUU7O0lBQ25FLDRCQUFxRTs7SUFFckUsNEJBQThEOztJQUM5RCw0QkFBOEQ7O0lBQzlELDJCQUE2RDs7Ozs7SUF3QjdELGdDQU1DOzs7OztJQUVELCtCQUVDOzs7OztJQUVELDJCQUVDOzs7OztJQTVEQyw0QkFBb0M7O0lBQ3BDLHNCQUEwQjs7SUFDMUIsMkJBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEcmFnQW5kRHJvcFNlcnZpY2UsIERyYWdBbmREcm9wRXZlbnQgfSBmcm9tICcuLi9kcmFnLWFuZC1kcm9wLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgRHJhZ2dhYmxlIH0gZnJvbSAnLi9kcmFnZ2FibGUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERyb3Bab25lIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IERyYWdBbmREcm9wU2VydmljZSxcclxuICAgIHB1YmxpYyByZWFkb25seSBpZDogbnVtYmVyLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50XHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5lbGVtZW50LCAnZHJhZ2VudGVyJywgdGhpcy5fb25EcmFnRW50ZXIpO1xyXG4gICAgdGhpcy5fc2VydmljZS5hZGRFdmVudExpc3RlbmVyKHRoaXMuZWxlbWVudCwgJ2RyYWdvdmVyJywgdGhpcy5fb25EcmFnT3ZlciwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5lbGVtZW50LCAnZHJvcCcsIHRoaXMuX29uRHJvcCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW5hYmxlZCA9IHRydWU7XHJcbiAgcHVibGljIGRyYWdnaW5nX292ZXIgPSBmYWxzZTtcclxuICBwdWJsaWMgY2hpbGRyZW46IEFycmF5PERyYWdnYWJsZT4gPSBbXTtcclxuXHJcbiAgcHVibGljIHJlc3RyaWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXSA9IG51bGw7XHJcblxyXG4gIHB1YmxpYyBvbkVudGVyOiBFdmVudEVtaXR0ZXI8RHJhZ0FuZERyb3BFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcHVibGljIG9uTGVhdmU6IEV2ZW50RW1pdHRlcjxEcmFnQW5kRHJvcEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBwdWJsaWMgb25Ecm9wOiBFdmVudEVtaXR0ZXI8RHJhZ0FuZERyb3BFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcHVibGljIG9uUmVtb3ZlOiBFdmVudEVtaXR0ZXI8RHJhZ0FuZERyb3BFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyAkb25FbnRlcjogRXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcHVibGljICRvbkxlYXZlOiBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBwdWJsaWMgJG9uRHJvcDogRXZlbnRFbWl0dGVyPERyYWdFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZW5hYmxlZCA9ICEhZW5hYmxlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREcmFnZ2luZ092ZXIoZHJhZ2dpbmdfb3ZlcjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kcmFnZ2luZ19vdmVyID0gISFkcmFnZ2luZ19vdmVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFJlc3RyaWN0aW9uKHJlc3RyaWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXN0cmljdGlvbiA9IHJlc3RyaWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERyYWdnYWJsZUNoaWxkcmVuKGNoaWxkcmVuOiBBcnJheTxEcmFnZ2FibGU+KSB7XHJcbiAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3NlcnZpY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLmVsZW1lbnQsICdkcmFnZW50ZXInLCB0aGlzLl9vbkRyYWdFbnRlcik7XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5lbGVtZW50LCAnZHJhZ292ZXInLCB0aGlzLl9vbkRyYWdPdmVyKTtcclxuICAgIHRoaXMuX3NlcnZpY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLmVsZW1lbnQsICdkcm9wJywgdGhpcy5fb25Ecm9wKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29uRHJhZ0VudGVyID0gKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkID0+IHtcclxuICAgIGlmICghdGhpcy5lbmFibGVkKSB7IHJldHVybjsgfVxyXG5cclxuICAgIGlmICh0aGlzLmVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCB8fCB0aGlzLmVsZW1lbnQuY29udGFpbnMoPE5vZGU+ZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICB0aGlzLiRvbkVudGVyLmVtaXQoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfb25EcmFnT3ZlciA9IChldmVudDogRHJhZ0V2ZW50KTogdm9pZCA9PiB7XHJcbiAgICBpZiAoIXRoaXMuX3NlcnZpY2UuaXNEcm9wWm9uZVJlc3RyaWN0ZWQodGhpcykpIHsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfb25Ecm9wID0gKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkID0+IHtcclxuICAgIHRoaXMuJG9uRHJvcC5lbWl0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIl19