igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
383 lines (382 loc) • 12.9 kB
TypeScript
import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
import { ITreeResourceStrings } from '../../core/i18n/tree-resources';
import { ToggleAnimationPlayer, ToggleAnimationSettings } from '../../expansion-panel/toggle-animation-component';
import { AnimationService } from '../../services/animation/animation';
import { IgxTree, IgxTreeNode } from '../common';
import { IgxTreeNavigationService } from '../tree-navigation.service';
import { IgxTreeSelectionService } from '../tree-selection.service';
import { IgxTreeService } from '../tree.service';
import * as i0 from "@angular/core";
/**
* @hidden @internal
* Used for links (`a` tags) in the body of an `igx-tree-node`. Handles aria and event dispatch.
*/
export declare class IgxTreeNodeLinkDirective implements OnDestroy {
private node;
private navService;
elementRef: ElementRef;
role: string;
/**
* The node's parent. Should be used only when the link is defined
* in `<ng-template>` tag outside of its parent, as Angular DI will not properly provide a reference
*
* ```html
* <igx-tree>
* <igx-tree-node #myNode *ngFor="let node of data" [data]="node">
* <ng-template *ngTemplateOutlet="nodeTemplate; context: { $implicit: data, parentNode: myNode }">
* </ng-template>
* </igx-tree-node>
* ...
* <!-- node template is defined under tree to access related services -->
* <ng-template #nodeTemplate let-data let-node="parentNode">
* <a [igxTreeNodeLink]="node">{{ data.label }}</a>
* </ng-template>
* </igx-tree>
* ```
*/
set parentNode(val: any);
get parentNode(): any;
/** A pointer to the parent node */
private get target();
private _parentNode;
constructor(node: IgxTreeNode<any>, navService: IgxTreeNavigationService, elementRef: ElementRef);
/** @hidden @internal */
get tabIndex(): number;
/**
* @hidden @internal
* Clear the node's focused state
*/
handleBlur(): void;
/**
* @hidden @internal
* Set the node as focused
*/
handleFocus(): void;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<IgxTreeNodeLinkDirective, [{ optional: true; }, null, null]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<IgxTreeNodeLinkDirective, "[igxTreeNodeLink]", never, { "parentNode": { "alias": "igxTreeNodeLink"; "required": false; }; }, {}, never, never, true, never>;
}
/**
*
* The tree node component represents a child node of the tree component or another tree node.
* Usage:
*
* ```html
* <igx-tree>
* ...
* <igx-tree-node [data]="data" [selected]="service.isNodeSelected(data.Key)" [expanded]="service.isNodeExpanded(data.Key)">
* {{ data.FirstName }} {{ data.LastName }}
* </igx-tree-node>
* ...
* </igx-tree>
* ```
*/
export declare class IgxTreeNodeComponent<T> extends ToggleAnimationPlayer implements IgxTreeNode<T>, OnInit, OnDestroy {
tree: IgxTree;
protected selectionService: IgxTreeSelectionService;
protected treeService: IgxTreeService;
protected navService: IgxTreeNavigationService;
protected cdr: ChangeDetectorRef;
private element;
parentNode: IgxTreeNode<any>;
/**
* The data entry that the node is visualizing.
*
* @remarks
* Required for searching through nodes.
*
* @example
* ```html
* <igx-tree>
* ...
* <igx-tree-node [data]="data">
* {{ data.FirstName }} {{ data.LastName }}
* </igx-tree-node>
* ...
* </igx-tree>
* ```
*/
data: T;
/**
* To be used for load-on-demand scenarios in order to specify whether the node is loading data.
*
* @remarks
* Loading nodes do not render children.
*/
loading: boolean;
/** @hidden @internal */
set tabIndex(val: number);
/** @hidden @internal */
get tabIndex(): number;
/** @hidden @internal */
get animationSettings(): ToggleAnimationSettings;
/**
* Gets/Sets the resource strings.
*
* @remarks
* Uses EN resources by default.
*/
set resourceStrings(value: ITreeResourceStrings);
/**
* An accessor that returns the resource strings.
*/
get resourceStrings(): ITreeResourceStrings;
/**
* Gets/Sets the active state of the node
*
* @param value: boolean
*/
set active(value: boolean);
get active(): boolean;
/**
* Emitted when the node's `selected` property changes.
*
* ```html
* <igx-tree>
* <igx-tree-node *ngFor="let node of data" [data]="node" [(selected)]="node.selected">
* </igx-tree-node>
* </igx-tree>
* ```
*
* ```typescript
* const node: IgxTreeNode<any> = this.tree.findNodes(data[0])[0];
* node.selectedChange.pipe(takeUntil(this.destroy$)).subscribe((e: boolean) => console.log("Node selection changed to ", e))
* ```
*/
selectedChange: EventEmitter<boolean>;
/**
* Emitted when the node's `expanded` property changes.
*
* ```html
* <igx-tree>
* <igx-tree-node *ngFor="let node of data" [data]="node" [(expanded)]="node.expanded">
* </igx-tree-node>
* </igx-tree>
* ```
*
* ```typescript
* const node: IgxTreeNode<any> = this.tree.findNodes(data[0])[0];
* node.expandedChange.pipe(takeUntil(this.destroy$)).subscribe((e: boolean) => console.log("Node expansion state changed to ", e))
* ```
*/
expandedChange: EventEmitter<boolean>;
/** @hidden @internal */
get focused(): boolean;
/**
* Retrieves the full path to the node incuding itself
*
* ```typescript
* const node: IgxTreeNode<any> = this.tree.findNodes(data[0])[0];
* const path: IgxTreeNode<any>[] = node.path;
* ```
*/
get path(): IgxTreeNode<any>[];
/**
* Gets/Sets the disabled state of the node
*
* @param value: boolean
*/
get disabled(): boolean;
set disabled(value: boolean);
/** @hidden @internal */
cssClass: string;
/** @hidden @internal */
get role(): "none" | "treeitem";
/** @hidden @internal */
linkChildren: QueryList<ElementRef>;
/** @hidden @internal */
_children: QueryList<IgxTreeNode<any>>;
/** @hidden @internal */
allChildren: QueryList<IgxTreeNode<any>>;
/**
* Return the child nodes of the node (if any)
*
* @remarks
* Returns `null` if node does not have children
*
* @example
* ```typescript
* const node: IgxTreeNode<any> = this.tree.findNodes(data[0])[0];
* const children: IgxTreeNode<any>[] = node.children;
* ```
*/
get children(): IgxTreeNode<any>[];
/** @hidden @internal */
header: ElementRef;
private _defaultExpandIndicatorTemplate;
private childrenContainer;
private get hasLinkChildren();
/** @hidden @internal */
isFocused: boolean;
/** @hidden @internal */
registeredChildren: IgxTreeNodeLinkDirective[];
/** @hidden @internal */
private _resourceStrings;
private _tabIndex;
private _disabled;
constructor(tree: IgxTree, selectionService: IgxTreeSelectionService, treeService: IgxTreeService, navService: IgxTreeNavigationService, cdr: ChangeDetectorRef, animationService: AnimationService, element: ElementRef<HTMLElement>, parentNode: IgxTreeNode<any>);
/**
* @hidden @internal
*/
get showSelectors(): boolean;
/**
* @hidden @internal
*/
get indeterminate(): boolean;
/** The depth of the node, relative to the root
*
* ```html
* <igx-tree>
* ...
* <igx-tree-node #node>
* My level is {{ node.level }}
* </igx-tree-node>
* </igx-tree>
* ```
*
* ```typescript
* const node: IgxTreeNode<any> = this.tree.findNodes(data[12])[0];
* const level: number = node.level;
* ```
*/
get level(): number;
/** Get/set whether the node is selected. Supporst two-way binding.
*
* ```html
* <igx-tree>
* ...
* <igx-tree-node *ngFor="let node of data" [(selected)]="node.selected">
* {{ node.label }}
* </igx-tree-node>
* </igx-tree>
* ```
*
* ```typescript
* const node: IgxTreeNode<any> = this.tree.findNodes(data[0])[0];
* const selected = node.selected;
* node.selected = true;
* ```
*/
get selected(): boolean;
set selected(val: boolean);
/** Get/set whether the node is expanded
*
* ```html
* <igx-tree>
* ...
* <igx-tree-node *ngFor="let node of data" [expanded]="node.name === this.expandedNode">
* {{ node.label }}
* </igx-tree-node>
* </igx-tree>
* ```
*
* ```typescript
* const node: IgxTreeNode<any> = this.tree.findNodes(data[0])[0];
* const expanded = node.expanded;
* node.expanded = true;
* ```
*/
get expanded(): boolean;
set expanded(val: boolean);
/** @hidden @internal */
get expandIndicatorTemplate(): TemplateRef<any>;
/**
* The native DOM element representing the node. Could be null in certain environments.
*
* ```typescript
* // get the nativeElement of the second node
* const node: IgxTreeNode = this.tree.nodes.first();
* const nodeElement: HTMLElement = node.nativeElement;
* ```
*/
/** @hidden @internal */
get nativeElement(): HTMLElement;
/** @hidden @internal */
ngOnInit(): void;
/**
* @hidden @internal
* Sets the focus to the node's <a> child, if present
* Sets the node as the tree service's focusedNode
* Marks the node as the current active element
*/
handleFocus(): void;
/**
* @hidden @internal
* Clear the node's focused status
*/
clearFocus(): void;
/**
* @hidden @internal
*/
onSelectorPointerDown(event: any): void;
/**
* @hidden @internal
*/
onSelectorClick(event: any): void;
/**
* Toggles the node expansion state, triggering animation
*
* ```html
* <igx-tree>
* <igx-tree-node #node>My Node</igx-tree-node>
* </igx-tree>
* <button type="button" igxButton (click)="node.toggle()">Toggle Node</button>
* ```
*
* ```typescript
* const myNode: IgxTreeNode<any> = this.tree.findNodes(data[0])[0];
* myNode.toggle();
* ```
*/
toggle(): void;
/** @hidden @internal */
indicatorClick(): void;
/**
* @hidden @internal
*/
onPointerDown(event: any): void;
ngOnDestroy(): void;
/**
* Expands the node, triggering animation
*
* ```html
* <igx-tree>
* <igx-tree-node #node>My Node</igx-tree-node>
* </igx-tree>
* <button type="button" igxButton (click)="node.expand()">Expand Node</button>
* ```
*
* ```typescript
* const myNode: IgxTreeNode<any> = this.tree.findNodes(data[0])[0];
* myNode.expand();
* ```
*/
expand(): void;
/**
* Collapses the node, triggering animation
*
* ```html
* <igx-tree>
* <igx-tree-node #node>My Node</igx-tree-node>
* </igx-tree>
* <button type="button" igxButton (click)="node.collapse()">Collapse Node</button>
* ```
*
* ```typescript
* const myNode: IgxTreeNode<any> = this.tree.findNodes(data[0])[0];
* myNode.collapse();
* ```
*/
collapse(): void;
/** @hidden @internal */
addLinkChild(link: IgxTreeNodeLinkDirective): void;
/** @hidden @internal */
removeLinkChild(link: IgxTreeNodeLinkDirective): void;
static ɵfac: i0.ɵɵFactoryDeclaration<IgxTreeNodeComponent<any>, [null, null, null, null, null, null, null, { optional: true; skipSelf: true; }]>;
static ɵcmp: i0.ɵɵComponentDeclaration<IgxTreeNodeComponent<any>, "igx-tree-node", never, { "data": { "alias": "data"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "resourceStrings": { "alias": "resourceStrings"; "required": false; }; "active": { "alias": "active"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, { "selectedChange": "selectedChange"; "expandedChange": "expandedChange"; }, ["linkChildren", "_children", "allChildren"], ["igx-tree-node", "*"], true, never>;
static ngAcceptInputType_loading: unknown;
static ngAcceptInputType_active: unknown;
static ngAcceptInputType_disabled: unknown;
static ngAcceptInputType_selected: unknown;
static ngAcceptInputType_expanded: unknown;
}