ng-devui
Version:
DevUI components based on Angular
68 lines • 9.89 kB
JavaScript
import { Directive, ElementRef, Input, Optional, Self } from '@angular/core';
import { Subscription } from 'rxjs';
import { DescendantChildren } from '../services/drag-drop-desc-reg.service';
import { DragSyncDescendantRegisterService } from '../services/drag-drop-descendant-sync.service';
import { DragDropSyncService } from '../services/drag-drop-sync.service';
import { DragDropService } from '../services/drag-drop.service';
import { DraggableDirective } from './draggable.directive';
import * as i0 from "@angular/core";
import * as i1 from "./draggable.directive";
import * as i2 from "../services/drag-drop-sync.service";
import * as i3 from "../services/drag-drop.service";
import * as i4 from "../services/drag-drop-descendant-sync.service";
export class DragSyncDirective extends DescendantChildren {
constructor(el, draggable, dragDropSyncService, dragDropService, dragSyncDrs) {
super(dragSyncDrs);
this.el = el;
this.draggable = draggable;
this.dragDropSyncService = dragDropSyncService;
this.dragDropService = dragDropService;
this.dragSyncDrs = dragSyncDrs;
this.dragSyncGroup = '';
this.subscription = new Subscription();
this.subDragElEvent = (bool) => {
this.syncGroupDirectives.forEach(dir => this.renderDisplay(dir.el.nativeElement, bool));
};
this.descendantItem = this;
}
ngOnInit() {
if (this.draggable) {
this.subscription.add(this.draggable.dragElShowHideEvent.subscribe(this.subDragElEvent));
this.subscription.add(this.draggable.beforeDragStartEvent.subscribe(() => {
this.syncGroupDirectives = this.dragDropSyncService.getDragSyncByGroup(this.dragSyncGroup).filter(directive => directive !== this);
this.dragDropService.dragSyncGroupDirectives = this.syncGroupDirectives;
}));
this.subscription.add(this.draggable.dropEndEvent.subscribe(() => {
this.dragDropService.dragSyncGroupDirectives = undefined;
this.syncGroupDirectives = undefined;
}));
}
super.ngOnInit();
}
ngOnDestroy() {
if (this.subscription) {
this.subscription.unsubscribe();
}
super.ngOnDestroy();
}
renderDisplay(nativeEl, bool) {
nativeEl.style.display = bool ? '' : 'none';
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragSyncDirective, deps: [{ token: i0.ElementRef }, { token: i1.DraggableDirective, optional: true, self: true }, { token: i2.DragDropSyncService }, { token: i3.DragDropService }, { token: i4.DragSyncDescendantRegisterService }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DragSyncDirective, selector: "[dDragSync]", inputs: { dragSyncGroup: ["dDragSync", "dragSyncGroup"] }, exportAs: ["dDragSync"], usesInheritance: true, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DragSyncDirective, decorators: [{
type: Directive,
args: [{
selector: '[dDragSync]',
exportAs: 'dDragSync'
}]
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DraggableDirective, decorators: [{
type: Optional
}, {
type: Self
}] }, { type: i2.DragDropSyncService }, { type: i3.DragDropService }, { type: i4.DragSyncDescendantRegisterService }], propDecorators: { dragSyncGroup: [{
type: Input,
args: ['dDragSync']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zeW5jLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RldnVpL2RyYWdkcm9wL2RpcmVjdGl2ZXMvZHJhZy1zeW5jLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQU0zRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQXFDO0lBSzFFLFlBQ1MsRUFBYyxFQUNPLFNBQTZCLEVBQ2pELG1CQUF3QyxFQUN4QyxlQUFnQyxFQUNoQyxXQUE4QztRQUV0RCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFOWixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ08sY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDakQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQW1DO1FBVHBDLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFvQ2hELG1CQUFjLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFGLENBQUMsQ0FBQztRQTNCQSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3pGLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDdkUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDO2dCQUNuSSxJQUFJLENBQUMsZUFBZSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUMxRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsR0FBRyxTQUFTLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFDRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQU1ELGFBQWEsQ0FBQyxRQUFxQixFQUFFLElBQWE7UUFDaEQsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QyxDQUFDOytHQTVDVSxpQkFBaUI7bUdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCOzswQkFRSSxRQUFROzswQkFBSSxJQUFJO3lKQU5DLGFBQWE7c0JBQWhDLEtBQUs7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERlc2NlbmRhbnRDaGlsZHJlbiB9IGZyb20gJy4uL3NlcnZpY2VzL2RyYWctZHJvcC1kZXNjLXJlZy5zZXJ2aWNlJztcbmltcG9ydCB7IERyYWdTeW5jRGVzY2VuZGFudFJlZ2lzdGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RyYWctZHJvcC1kZXNjZW5kYW50LXN5bmMuc2VydmljZSc7XG5pbXBvcnQgeyBEcmFnRHJvcFN5bmNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHJhZy1kcm9wLXN5bmMuc2VydmljZSc7XG5pbXBvcnQgeyBEcmFnRHJvcFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kcmFnLWRyb3Auc2VydmljZSc7XG5pbXBvcnQgeyBEcmFnZ2FibGVEaXJlY3RpdmUgfSBmcm9tICcuL2RyYWdnYWJsZS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZERyYWdTeW5jXScsXG4gIGV4cG9ydEFzOiAnZERyYWdTeW5jJ1xufSlcbmV4cG9ydCBjbGFzcyBEcmFnU3luY0RpcmVjdGl2ZSBleHRlbmRzIERlc2NlbmRhbnRDaGlsZHJlbjxEcmFnU3luY0RpcmVjdGl2ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnZERyYWdTeW5jJykgZHJhZ1N5bmNHcm91cCA9ICcnO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgc3luY0dyb3VwRGlyZWN0aXZlczogQXJyYXk8RHJhZ1N5bmNEaXJlY3RpdmU+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgZHJhZ2dhYmxlOiBEcmFnZ2FibGVEaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBkcmFnRHJvcFN5bmNTZXJ2aWNlOiBEcmFnRHJvcFN5bmNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZHJhZ0Ryb3BTZXJ2aWNlOiBEcmFnRHJvcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkcmFnU3luY0RyczogRHJhZ1N5bmNEZXNjZW5kYW50UmVnaXN0ZXJTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcihkcmFnU3luY0Rycyk7XG4gICAgdGhpcy5kZXNjZW5kYW50SXRlbSA9IHRoaXM7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5kcmFnZ2FibGUpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmRyYWdnYWJsZS5kcmFnRWxTaG93SGlkZUV2ZW50LnN1YnNjcmliZSh0aGlzLnN1YkRyYWdFbEV2ZW50KSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5kcmFnZ2FibGUuYmVmb3JlRHJhZ1N0YXJ0RXZlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zeW5jR3JvdXBEaXJlY3RpdmVzID0gdGhpcy5kcmFnRHJvcFN5bmNTZXJ2aWNlLmdldERyYWdTeW5jQnlHcm91cCh0aGlzLmRyYWdTeW5jR3JvdXApLmZpbHRlcihkaXJlY3RpdmUgPT4gZGlyZWN0aXZlICE9PSB0aGlzKTtcbiAgICAgICAgdGhpcy5kcmFnRHJvcFNlcnZpY2UuZHJhZ1N5bmNHcm91cERpcmVjdGl2ZXMgPSB0aGlzLnN5bmNHcm91cERpcmVjdGl2ZXM7XG4gICAgICB9KSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5kcmFnZ2FibGUuZHJvcEVuZEV2ZW50LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZHJhZ0Ryb3BTZXJ2aWNlLmRyYWdTeW5jR3JvdXBEaXJlY3RpdmVzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnN5bmNHcm91cERpcmVjdGl2ZXMgPSB1bmRlZmluZWQ7XG4gICAgICB9KSk7XG4gICAgfVxuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cblxuICBzdWJEcmFnRWxFdmVudCA9IChib29sOiBib29sZWFuKSA9PiB7XG4gICAgdGhpcy5zeW5jR3JvdXBEaXJlY3RpdmVzLmZvckVhY2goZGlyID0+IHRoaXMucmVuZGVyRGlzcGxheShkaXIuZWwubmF0aXZlRWxlbWVudCwgYm9vbCkpO1xuICB9O1xuXG4gIHJlbmRlckRpc3BsYXkobmF0aXZlRWw6IEhUTUxFbGVtZW50LCBib29sOiBib29sZWFuKSB7XG4gICAgbmF0aXZlRWwuc3R5bGUuZGlzcGxheSA9IGJvb2wgPyAnJyA6ICdub25lJztcbiAgfVxuXG59XG4iXX0=