src/treeview/treeview.service.ts
Properties |
|
Methods |
constructor()
|
|
Defined in src/treeview/treeview.service.ts:25
|
| selectNode | ||||||||
selectNode(node: Node)
|
||||||||
|
Defined in src/treeview/treeview.service.ts:35
|
||||||||
|
Store selected node in map
Parameters :
Returns :
void
|
| contentProjected |
Default value : true
|
|
Defined in src/treeview/treeview.service.ts:14
|
|
Variable used across all nodes and wrapper to determine if we should allow content projection or generate the tree Value is updated by passing a value to |
| isMultiSelect |
Default value : false
|
|
Defined in src/treeview/treeview.service.ts:18
|
|
Experimental |
| selectionObservable |
Type : Observable<any | []>
|
|
Defined in src/treeview/treeview.service.ts:7
|
| Private selectionSubject |
Default value : new ReplaySubject<Map<string, Node>>(1)
|
|
Defined in src/treeview/treeview.service.ts:20
|
| Private value |
Default value : new Map()
|
|
Defined in src/treeview/treeview.service.ts:25
|
|
Hold's list of selected nodes and preserves order |
import { Injectable } from "@angular/core";
import { Observable, ReplaySubject } from "rxjs";
import { Node } from "./tree-node.types";
@Injectable()
export class TreeViewService {
selectionObservable: Observable<any | any[]>;
/**
* Variable used across all nodes and wrapper to determine if we should allow content projection
* or generate the tree
*
* Value is updated by passing a value to `tree` input in wrapper component.
*/
contentProjected = true;
/**
* **Experimental**
*/
isMultiSelect = false;
private selectionSubject = new ReplaySubject<Map<string, Node>>(1);
/**
* Hold's list of selected nodes and preserves order
*/
private value = new Map();
constructor() {
this.selectionObservable = this.selectionSubject.asObservable();
}
/**
* Store selected node in map
* @param node: Node
*/
selectNode(node: Node) {
if (!node) {
return;
}
// Since multiselect is not enabled, we clear existing map
if (!this.isMultiSelect) {
this.value.clear();
}
this.value.set(node.id, node);
this.selectionSubject.next(this.value);
}
}