UNPKG

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
/** * @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=