|
|
|
|
@ -3,6 +3,7 @@ import {
|
|
|
|
|
ContentChild,
|
|
|
|
|
EventEmitter,
|
|
|
|
|
Input,
|
|
|
|
|
OnChanges,
|
|
|
|
|
Output,
|
|
|
|
|
TemplateRef,
|
|
|
|
|
ViewEncapsulation,
|
|
|
|
|
@ -24,7 +25,7 @@ export type DropEvent = NzFormatEmitEvent & { pos: number };
|
|
|
|
|
],
|
|
|
|
|
encapsulation: ViewEncapsulation.None,
|
|
|
|
|
})
|
|
|
|
|
export class TreeComponent {
|
|
|
|
|
export class TreeComponent implements OnChanges {
|
|
|
|
|
dropPosition: number;
|
|
|
|
|
|
|
|
|
|
dropdowns = {} as { [key: string]: NgbDropdown };
|
|
|
|
|
@ -44,19 +45,31 @@ export class TreeComponent {
|
|
|
|
|
@Input() nodes = [];
|
|
|
|
|
@Input() expandedKeys: string[] = [];
|
|
|
|
|
@Input() selectedNode: any;
|
|
|
|
|
@Input() changeCheckboxWithNode: boolean;
|
|
|
|
|
@Input() changedNodeValues = [];
|
|
|
|
|
@Input() isNodeSelected = node => this.selectedNode?.id === node.key;
|
|
|
|
|
@Input() beforeDrop = (event: NzFormatBeforeDropEvent) => {
|
|
|
|
|
this.dropPosition = event.pos;
|
|
|
|
|
return of(false);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
ngOnChanges() {
|
|
|
|
|
this.checkedKeys = [...this.changedNodeValues];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onSelectedNodeChange(node) {
|
|
|
|
|
this.selectedNode = node.origin.entity;
|
|
|
|
|
this.selectedNodeChange.emit(node.origin.entity);
|
|
|
|
|
if (this.changeCheckboxWithNode) {
|
|
|
|
|
this.selectedNodeChange.emit(node);
|
|
|
|
|
this.checkedKeys = [...this.changedNodeValues];
|
|
|
|
|
this.checkedKeysChange.emit(this.changedNodeValues);
|
|
|
|
|
} else {
|
|
|
|
|
this.selectedNodeChange.emit(node.origin.entity);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onCheckboxChange(event) {
|
|
|
|
|
this.checkedKeys = [...event.keys];
|
|
|
|
|
this.checkedKeys = this.changedNodeValues = [...event.keys];
|
|
|
|
|
this.checkedKeysChange.emit(event.keys);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|