ngx-tree-dnd
Version:
Angular 7 support tree with drag-and-drop sortable data tree. It`s fast and smart.
166 lines • 10.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/*
Copyright (C) 2018 Yaroslav Kikot
This project is licensed under the terms of the MIT license.
https://github.com/Zicrael/ngx-tree-dnd
*/
import { Directive, ElementRef, HostListener, Input, HostBinding } from '@angular/core';
import { NgxTreeService } from '../ngx-tree-dnd.service';
var DragElementsDirective = /** @class */ (function () {
function DragElementsDirective(el, treeService) {
this.el = el;
this.treeService = treeService;
}
Object.defineProperty(DragElementsDirective.prototype, "draggable", {
get: /**
* @return {?}
*/
function () {
return this.draggableValue;
},
enumerable: true,
configurable: true
});
/*
Event: ondragstart;
Set item as dragging and call startDragging() from tree service.
Emit OnDragStart on tree service.
*/
/*
Event: ondragstart;
Set item as dragging and call startDragging() from tree service.
Emit OnDragStart on tree service.
*/
/**
* @param {?} event
* @return {?}
*/
DragElementsDirective.prototype.onDragStart = /*
Event: ondragstart;
Set item as dragging and call startDragging() from tree service.
Emit OnDragStart on tree service.
*/
/**
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var eventObj = {
event: event,
target: this.item
};
this.treeService.isDragging = this.item;
this.treeService.lastExpandState = this.item.options.hideChildrens;
this.item.options.hideChildrens = true;
this.item.options.currentlyDragging = true;
// call service func
this.treeService.startDragging(eventObj);
event.stopPropagation();
};
/*
Event: onDrag;
trigger drag items and call onDragProcess() from tree service.
Emit OnDrag on tree service.
*/
/*
Event: onDrag;
trigger drag items and call onDragProcess() from tree service.
Emit OnDrag on tree service.
*/
/**
* @param {?} event
* @return {?}
*/
DragElementsDirective.prototype.onDrag = /*
Event: onDrag;
trigger drag items and call onDragProcess() from tree service.
Emit OnDrag on tree service.
*/
/**
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var eventObj = {
event: event,
target: this.item
};
this.treeService.onDragProcess(eventObj);
};
/*
Event: ondragend;
Call dragEndAction() from tree service.
Emit OnDragEnd on tree service.
*/
/*
Event: ondragend;
Call dragEndAction() from tree service.
Emit OnDragEnd on tree service.
*/
/**
* @param {?} event
* @return {?}
*/
DragElementsDirective.prototype.onDragEnd = /*
Event: ondragend;
Call dragEndAction() from tree service.
Emit OnDragEnd on tree service.
*/
/**
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var eventObj = {
event: event,
target: this.item
};
this.item.options.hideChildrens = this.treeService.lastExpandState;
this.item.options.currentlyDragging = false;
this.treeService.dragEndAction(eventObj);
event.stopPropagation();
};
DragElementsDirective.decorators = [
{ type: Directive, args: [{
selector: '[libDragElement]'
},] },
];
/** @nocollapse */
DragElementsDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: NgxTreeService }
]; };
DragElementsDirective.propDecorators = {
item: [{ type: Input }],
draggableValue: [{ type: Input }],
draggable: [{ type: HostBinding, args: ['draggable',] }],
onDragStart: [{ type: HostListener, args: ['dragstart', ['$event'],] }],
onDrag: [{ type: HostListener, args: ['drag', ['$event'],] }],
onDragEnd: [{ type: HostListener, args: ['dragend', ['$event'],] }]
};
return DragElementsDirective;
}());
export { DragElementsDirective };
if (false) {
/** @type {?} */
DragElementsDirective.prototype.item;
/** @type {?} */
DragElementsDirective.prototype.draggableValue;
/**
* @type {?}
* @private
*/
DragElementsDirective.prototype.el;
/**
* @type {?}
* @private
*/
DragElementsDirective.prototype.treeService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRyZWUtZG5kLWRyYWcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXRyZWUtZG5kLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvbmd4LXRyZWUtZG5kLWRyYWcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUtBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RDtJQUlJLCtCQUFvQixFQUFjLEVBQVcsV0FBMkI7UUFBcEQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFXLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUFHLENBQUM7SUFJNUUsc0JBQ0ksNENBQVM7Ozs7UUFEYjtZQUVJLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM5QixDQUFDOzs7T0FBQTtJQUVGOzs7O01BSUU7Ozs7Ozs7Ozs7SUFFRiwyQ0FBVzs7Ozs7Ozs7O0lBRFgsVUFDWSxLQUFZOztZQUNoQixRQUFRLEdBQUc7WUFDZixLQUFLLE9BQUE7WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDbEI7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUMzQyxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztNQUlFOzs7Ozs7Ozs7O0lBRUYsc0NBQU07Ozs7Ozs7OztJQUROLFVBQ08sS0FBWTs7WUFDWCxRQUFRLEdBQUc7WUFDZixLQUFLLE9BQUE7WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDbEI7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7TUFJRTs7Ozs7Ozs7OztJQUVGLHlDQUFTOzs7Ozs7Ozs7SUFEVCxVQUNVLEtBQVk7O1lBQ2QsUUFBUSxHQUFHO1lBQ2YsS0FBSyxPQUFBO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7Z0JBOURKLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs7OztnQkFObUIsVUFBVTtnQkFFckIsY0FBYzs7O3VCQU9sQixLQUFLO2lDQUNMLEtBQUs7NEJBRUwsV0FBVyxTQUFDLFdBQVc7OEJBVXZCLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7eUJBb0JwQyxZQUFZLFNBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDOzRCQWMvQixZQUFZLFNBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDOztJQVd2Qyw0QkFBQztDQUFBLEFBL0RELElBK0RDO1NBNURZLHFCQUFxQjs7O0lBRTlCLHFDQUF5Qjs7SUFDekIsK0NBQWlDOzs7OztJQUZyQixtQ0FBc0I7Ozs7O0lBQUUsNENBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiBDb3B5cmlnaHQgKEMpIDIwMTggWWFyb3NsYXYgS2lrb3RcbiBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZS5cbiBodHRwczovL2dpdGh1Yi5jb20vWmljcmFlbC9uZ3gtdHJlZS1kbmRcbiovXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmVlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdHJlZS12aWV3Lm1vZGVsJztcbmltcG9ydCB7IE5neFRyZWVTZXJ2aWNlIH0gZnJvbSAnLi4vbmd4LXRyZWUtZG5kLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbGliRHJhZ0VsZW1lbnRdJ1xufSlcbmV4cG9ydCBjbGFzcyBEcmFnRWxlbWVudHNEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgIHRyZWVTZXJ2aWNlOiBOZ3hUcmVlU2VydmljZSkge31cbiAgICBASW5wdXQoKSBpdGVtOiBUcmVlTW9kZWw7XG4gICAgQElucHV0KCkgZHJhZ2dhYmxlVmFsdWU6IGJvb2xlYW47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2RyYWdnYWJsZScpXG4gICAgZ2V0IGRyYWdnYWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJhZ2dhYmxlVmFsdWU7XG4gICAgIH1cblxuICAgIC8qXG4gICAgICAgIEV2ZW50OiBvbmRyYWdzdGFydDtcbiAgICAgICAgU2V0IGl0ZW0gYXMgZHJhZ2dpbmcgYW5kIGNhbGwgc3RhcnREcmFnZ2luZygpIGZyb20gdHJlZSBzZXJ2aWNlLlxuICAgICAgICBFbWl0IE9uRHJhZ1N0YXJ0IG9uIHRyZWUgc2VydmljZS5cbiAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdzdGFydCcsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnU3RhcnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICBjb25zdCBldmVudE9iaiA9IHtcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIHRhcmdldDogdGhpcy5pdGVtXG4gICAgICB9O1xuICAgICAgdGhpcy50cmVlU2VydmljZS5pc0RyYWdnaW5nID0gdGhpcy5pdGVtO1xuICAgICAgdGhpcy50cmVlU2VydmljZS5sYXN0RXhwYW5kU3RhdGUgPSB0aGlzLml0ZW0ub3B0aW9ucy5oaWRlQ2hpbGRyZW5zO1xuICAgICAgdGhpcy5pdGVtLm9wdGlvbnMuaGlkZUNoaWxkcmVucyA9IHRydWU7XG4gICAgICB0aGlzLml0ZW0ub3B0aW9ucy5jdXJyZW50bHlEcmFnZ2luZyA9IHRydWU7XG4gICAgICAvLyBjYWxsIHNlcnZpY2UgZnVuY1xuICAgICAgdGhpcy50cmVlU2VydmljZS5zdGFydERyYWdnaW5nKGV2ZW50T2JqKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qXG4gICAgICAgIEV2ZW50OiBvbkRyYWc7XG4gICAgICAgIHRyaWdnZXIgZHJhZyBpdGVtcyBhbmQgY2FsbCBvbkRyYWdQcm9jZXNzKCkgZnJvbSB0cmVlIHNlcnZpY2UuXG4gICAgICAgIEVtaXQgT25EcmFnIG9uIHRyZWUgc2VydmljZS5cbiAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWcnLCBbJyRldmVudCddKVxuICAgIG9uRHJhZyhldmVudDogRXZlbnQpIHtcbiAgICAgIGNvbnN0IGV2ZW50T2JqID0ge1xuICAgICAgICBldmVudCxcbiAgICAgICAgdGFyZ2V0OiB0aGlzLml0ZW1cbiAgICAgIH07XG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLm9uRHJhZ1Byb2Nlc3MoZXZlbnRPYmopO1xuICAgIH1cblxuICAgIC8qXG4gICAgICAgIEV2ZW50OiBvbmRyYWdlbmQ7XG4gICAgICAgIENhbGwgZHJhZ0VuZEFjdGlvbigpIGZyb20gdHJlZSBzZXJ2aWNlLlxuICAgICAgICBFbWl0IE9uRHJhZ0VuZCBvbiB0cmVlIHNlcnZpY2UuXG4gICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnZW5kJywgWyckZXZlbnQnXSlcbiAgICBvbkRyYWdFbmQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICBjb25zdCBldmVudE9iaiA9IHtcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIHRhcmdldDogdGhpcy5pdGVtXG4gICAgICB9O1xuICAgICAgdGhpcy5pdGVtLm9wdGlvbnMuaGlkZUNoaWxkcmVucyA9IHRoaXMudHJlZVNlcnZpY2UubGFzdEV4cGFuZFN0YXRlO1xuICAgICAgdGhpcy5pdGVtLm9wdGlvbnMuY3VycmVudGx5RHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuZHJhZ0VuZEFjdGlvbihldmVudE9iaik7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG59XG4iXX0=