Browse Source

Merge pull request #16265 from abpframework/fix/vs-internal-1905

detect selectedNode change on tree
pull/16288/head
Mahmut Gundogdu 3 years ago
committed by GitHub
parent
commit
39834d4eae
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 25
      npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts

25
npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts

@ -1,4 +1,6 @@
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
ContentChild,
EventEmitter,
@ -26,6 +28,7 @@ export type DropEvent = NzFormatEmitEvent & { pos: number };
styleUrls: ['tree.component.scss'],
encapsulation: ViewEncapsulation.None,
providers: [SubscriptionService],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class TreeComponent implements OnInit {
dropPosition: number;
@ -38,6 +41,7 @@ export class TreeComponent implements OnInit {
@Optional()
@Inject(DISABLE_TREE_STYLE_LOADING_TOKEN)
private disableTreeStyleLoading: boolean | undefined,
private cdr: ChangeDetectorRef,
) {}
@ContentChild('menu') menu: TemplateRef<any>;
@ -77,6 +81,21 @@ export class TreeComponent implements OnInit {
this.subscriptionService.addOne(loaded$);
}
private findNode(target: any, nodes: any[]) {
for (const node of nodes) {
if (node.key === target.id) {
return node;
}
if (node.children) {
let res = this.findNode(target, node.children);
if (res) {
return res;
}
}
}
return null;
}
onSelectedNodeChange(node: NzTreeNode) {
this.selectedNode = node.origin.entity;
if (this.changeCheckboxWithNode) {
@ -116,4 +135,10 @@ export class TreeComponent implements OnInit {
initDropdown(key: string, dropdown: NgbDropdown) {
this.dropdowns[key] = dropdown;
}
setSelectedNode(node: any) {
let newSelectedNode = this.findNode(node, this.nodes);
this.selectedNode = { ...newSelectedNode };
this.cdr.markForCheck();
}
}

Loading…
Cancel
Save