@uex/web-extensions
Version:
Uex extensions for Angular 6+ web projects
170 lines • 12.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/modules/drag-and-drop/draggable.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, Input, Output, EventEmitter, ElementRef } from '@angular/core';
import * as _ from 'lodash';
import { DragAndDropService } from './drag-and-drop.service';
export class DraggableDirective {
/**
* @param {?} _service
* @param {?} elementRef
*/
constructor(_service, elementRef) {
this._service = _service;
this.elementRef = elementRef;
this.onDragStart = new EventEmitter();
this.onDragEnd = new EventEmitter();
this.enabled = true;
this.dragging = false;
this.draggable = this._service.registerDraggable({
element: this._element
});
}
/**
* @private
* @param {?} enabled
* @return {?}
*/
set _setEnabled(enabled) {
/** @type {?} */
let name = null;
if (_.isString(enabled)) {
this.enabled = true;
name = _.isEmpty(enabled) ? null : ((/** @type {?} */ (enabled)));
}
else {
this.enabled = !!enabled;
name = null;
}
this.draggable.setEnabled(this.enabled);
this.draggable.setName(name);
}
/**
* @private
* @param {?} action
* @return {?}
*/
set _setDragAction(action) {
this.draggable.setAction(action);
}
/**
* @private
* @param {?} use_placeholder
* @return {?}
*/
set _setUsePplaceholder(use_placeholder) {
this.draggable.setUsePlaceholder(use_placeholder);
}
/**
* @private
* @param {?} placeholder_class
* @return {?}
*/
set _setPlaceholderClass(placeholder_class) {
this.draggable.setPlaceholderClass(placeholder_class);
}
/**
* @private
* @param {?} data
* @return {?}
*/
set _setDragData(data) {
this.draggable.setData(data);
}
/**
* @return {?}
*/
ngOnInit() {
this._drag_start_subscription = this.draggable.onStart.subscribe((/**
* @param {?} event
* @return {?}
*/
(event) => {
this.dragging = true;
this.onDragStart.emit(event);
}));
this._drag_end_subscription = this.draggable.onEnd.subscribe((/**
* @param {?} event
* @return {?}
*/
(event) => {
this.dragging = false;
this.onDragEnd.emit(event);
}));
}
/**
* @return {?}
*/
ngOnDestroy() {
if (this._drag_start_subscription) {
this._drag_start_subscription.unsubscribe();
}
if (this._drag_end_subscription) {
this._drag_end_subscription.unsubscribe();
}
this._service.unregisterDraggable(this.draggable);
}
/**
* @private
* @return {?}
*/
get _element() {
return this.elementRef.nativeElement;
}
}
DraggableDirective.decorators = [
{ type: Directive, args: [{
selector: '[uexDraggable]',
host: {
'class': 'uex-draggable',
'[attr.draggable]': 'enabled ? true : null',
'[class.dragging]': 'dragging'
}
},] }
];
/** @nocollapse */
DraggableDirective.ctorParameters = () => [
{ type: DragAndDropService },
{ type: ElementRef }
];
DraggableDirective.propDecorators = {
_setEnabled: [{ type: Input, args: ['uexDraggable',] }],
_setDragAction: [{ type: Input, args: ['dragAction',] }],
_setUsePplaceholder: [{ type: Input, args: ['dragWithPlaceholder',] }],
_setPlaceholderClass: [{ type: Input, args: ['dragPlaceholderClass',] }],
_setDragData: [{ type: Input, args: ['dragData',] }],
onDragStart: [{ type: Output, args: ['onDragStart',] }],
onDragEnd: [{ type: Output, args: ['onDragEnd',] }]
};
if (false) {
/** @type {?} */
DraggableDirective.prototype.onDragStart;
/** @type {?} */
DraggableDirective.prototype.onDragEnd;
/** @type {?} */
DraggableDirective.prototype.enabled;
/** @type {?} */
DraggableDirective.prototype.dragging;
/** @type {?} */
DraggableDirective.prototype.draggable;
/**
* @type {?}
* @private
*/
DraggableDirective.prototype._drag_start_subscription;
/**
* @type {?}
* @private
*/
DraggableDirective.prototype._drag_end_subscription;
/**
* @type {?}
* @private
*/
DraggableDirective.prototype._service;
/** @type {?} */
DraggableDirective.prototype.elementRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1ZXgvd2ViLWV4dGVuc2lvbnMvIiwic291cmNlcyI6WyJsaWIvbW9kdWxlcy9kcmFnLWFuZC1kcm9wL2RyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHdEcsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFZekUsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7SUFtQzdCLFlBQ1UsUUFBNEIsRUFDN0IsVUFBc0I7UUFEckIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUxELGdCQUFXLEdBQTRCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUQsY0FBUyxHQUE0QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBVzdFLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBTnRCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7O0lBekNELElBQW1DLFdBQVcsQ0FBQyxPQUF5Qjs7WUFDbEUsSUFBSSxHQUFHLElBQUk7UUFFZixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFD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REFBNkM7Ozs7O0lBYjNDLHNDQUFvQzs7SUFDcEMsd0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuaW1wb3J0IHsgRHJhZ0FuZERyb3BTZXJ2aWNlLCBEcmFnQWN0aW9uIH0gZnJvbSAnLi9kcmFnLWFuZC1kcm9wLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgRHJhZ2dhYmxlIH0gZnJvbSAnLi9jbGFzc2VzL2RyYWdnYWJsZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t1ZXhEcmFnZ2FibGVdJyxcclxuICBob3N0OiB7XHJcbiAgICAnY2xhc3MnOiAndWV4LWRyYWdnYWJsZScsXHJcbiAgICAnW2F0dHIuZHJhZ2dhYmxlXSc6ICdlbmFibGVkID8gdHJ1ZSA6IG51bGwnLFxyXG4gICAgJ1tjbGFzcy5kcmFnZ2luZ10nOiAnZHJhZ2dpbmcnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhZ2dhYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgndWV4RHJhZ2dhYmxlJykgcHJpdmF0ZSBzZXQgX3NldEVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbiB8IHN0cmluZykge1xyXG4gICAgbGV0IG5hbWUgPSBudWxsO1xyXG5cclxuICAgIGlmIChfLmlzU3RyaW5nKGVuYWJsZWQpKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7XHJcbiAgICAgIG5hbWUgPSBfLmlzRW1wdHkoZW5hYmxlZCkgPyBudWxsIDogKDxzdHJpbmc+ZW5hYmxlZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVuYWJsZWQgPSAhIWVuYWJsZWQ7XHJcbiAgICAgIG5hbWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZHJhZ2dhYmxlLnNldEVuYWJsZWQodGhpcy5lbmFibGVkKTtcclxuICAgIHRoaXMuZHJhZ2dhYmxlLnNldE5hbWUobmFtZSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2RyYWdBY3Rpb24nKSBwcml2YXRlIHNldCBfc2V0RHJhZ0FjdGlvbihhY3Rpb246IERyYWdBY3Rpb24pIHtcclxuICAgIHRoaXMuZHJhZ2dhYmxlLnNldEFjdGlvbihhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCdkcmFnV2l0aFBsYWNlaG9sZGVyJykgcHJpdmF0ZSBzZXQgX3NldFVzZVBwbGFjZWhvbGRlcih1c2VfcGxhY2Vob2xkZXI6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZHJhZ2dhYmxlLnNldFVzZVBsYWNlaG9sZGVyKHVzZV9wbGFjZWhvbGRlcik7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2RyYWdQbGFjZWhvbGRlckNsYXNzJykgcHJpdmF0ZSBzZXQgX3NldFBsYWNlaG9sZGVyQ2xhc3MocGxhY2Vob2xkZXJfY2xhc3M6IHN0cmluZykge1xyXG4gICAgdGhpcy5kcmFnZ2FibGUuc2V0UGxhY2Vob2xkZXJDbGFzcyhwbGFjZWhvbGRlcl9jbGFzcyk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoJ2RyYWdEYXRhJykgcHJpdmF0ZSBzZXQgX3NldERyYWdEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5kcmFnZ2FibGUuc2V0RGF0YShkYXRhKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoJ29uRHJhZ1N0YXJ0JykgcHVibGljIG9uRHJhZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCdvbkRyYWdFbmQnKSBwdWJsaWMgb25EcmFnRW5kOiBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBEcmFnQW5kRHJvcFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5kcmFnZ2FibGUgPSB0aGlzLl9zZXJ2aWNlLnJlZ2lzdGVyRHJhZ2dhYmxlKHtcclxuICAgICAgZWxlbWVudDogdGhpcy5fZWxlbWVudFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW5hYmxlZCA9IHRydWU7XHJcbiAgcHVibGljIGRyYWdnaW5nID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBkcmFnZ2FibGU6IERyYWdnYWJsZTtcclxuICBwcml2YXRlIF9kcmFnX3N0YXJ0X3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX2RyYWdfZW5kX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9kcmFnX3N0YXJ0X3N1YnNjcmlwdGlvbiA9IHRoaXMuZHJhZ2dhYmxlLm9uU3RhcnQuc3Vic2NyaWJlKChldmVudDogRHJhZ0V2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uRHJhZ1N0YXJ0LmVtaXQoZXZlbnQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fZHJhZ19lbmRfc3Vic2NyaXB0aW9uID0gdGhpcy5kcmFnZ2FibGUub25FbmQuc3Vic2NyaWJlKChldmVudDogRHJhZ0V2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5vbkRyYWdFbmQuZW1pdChldmVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLl9kcmFnX3N0YXJ0X3N1YnNjcmlwdGlvbikgeyB0aGlzLl9kcmFnX3N0YXJ0X3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOyB9XHJcbiAgICBpZiAodGhpcy5fZHJhZ19lbmRfc3Vic2NyaXB0aW9uKSB7IHRoaXMuX2RyYWdfZW5kX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOyB9XHJcblxyXG4gICAgdGhpcy5fc2VydmljZS51bnJlZ2lzdGVyRHJhZ2dhYmxlKHRoaXMuZHJhZ2dhYmxlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IF9lbGVtZW50ICgpOiBIVE1MRWxlbWVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==