import { utils } from "pixi.js"; import { DTableData, DTableDataMapped, DTableDataParent, DTableDataSupplimental } from "./d-table-data"; import { DTableDataFilter, DTableDataFilterer } from "./d-table-data-filter"; import { DTableDataTreeFilter } from "./d-table-data-tree-filter"; import { DTableDataSelection } from "./d-table-data-selection"; import { DTableDataComparator, DTableDataSorter } from "./d-table-data-sorter"; import { DTableDataTreeSorter } from "./d-table-data-tree-sorter"; import { DTableDataTreeNode } from "./d-table-data-tree-item"; import { DTableDataTreeItemAccessor, DTableDataTreeItemAccessorHasChildren, DTableDataTreeItemAccessorOptions, DTableDataTreeItemAccessorToChildren } from "./d-table-data-tree-item-accessor"; import { DTableDataTreeSelection, DTableDataTreeSelectionCreator, DTableDataTreeSelectionOptions } from "./d-table-data-tree-selection"; import { DBaseEvents } from "./d-base"; import { DOnOptions } from "./d-on-options"; /** * {@link DTableDataTree} events. */ export interface DTableDataTreeEvents extends DBaseEvents { /** * Triggered when a node is expanded. * * @param node a node * @param emitter an emitter */ expand(node: NODE, emitter: EMITTER): void; /** * Triggered when a node is collapsed. * * @param node a node * @param emitter an emitter */ collapse(node: NODE, emitter: EMITTER): void; } /** * {@link DTableDataTree} "on" options. */ export interface DTableDataTreeOnOptions extends Partial>, DOnOptions { } /** * {@link DTableDataTree} options. */ export interface DTableDataTreeOptions extends DTableDataTreeItemAccessorOptions { nodes?: NODE[]; /** * Selection options. */ selection?: DTableDataTreeSelection | DTableDataTreeSelectionCreator | DTableDataTreeSelectionOptions; /** * A filter. */ filter?: DTableDataFilterer; /** * A comparator. */ comparator?: DTableDataComparator; /** * True to list up nodes in the given node array in the reverse order. */ reverse?: boolean; /** * Mappings of event names and event handlers. */ on?: DTableDataTreeOnOptions; } /** * Please note that this data class does not support the sorter. */ export declare class DTableDataTree> extends utils.EventEmitter implements DTableData { protected _parent: DTableDataParent | null; protected _nodes?: NODE[]; protected _rows: NODE[]; protected _isRowsDirty: boolean; protected _supplimentals: DTableDataSupplimental[]; protected _flags: WeakMap; protected _filter: DTableDataTreeFilter; protected _sorter: DTableDataTreeSorter; protected _selection: DTableDataTreeSelection; protected _mapped: DTableDataMapped; protected _accessor: DTableDataTreeItemAccessor; protected _reverse: boolean; constructor(options?: DTableDataTreeOptions); protected toSelection(options?: DTableDataTreeSelection | DTableDataTreeSelectionCreator | DTableDataTreeSelectionOptions): DTableDataTreeSelection; protected newSelection(options?: DTableDataTreeSelectionOptions): DTableDataTreeSelection; protected toAccessor(options?: DTableDataTreeOptions): DTableDataTreeItemAccessor; bind(parent: DTableDataParent): void; get nodes(): NODE[] | undefined; set nodes(nodes: NODE[] | undefined); get rows(): NODE[]; get supplimentals(): DTableDataSupplimental[]; get accessor(): DTableDataTreeItemAccessor; protected updateRows(nodes: NODE[] | undefined): void; protected toSupplimental(ilevel: number, hasChildren: boolean, isOpened: boolean): DTableDataSupplimental; protected newRows(nodes: NODE[], irows: number, ilevel: number, rows: NODE[], supplimentals: DTableDataSupplimental[], flags: WeakMap, reverse: boolean, toChildren: DTableDataTreeItemAccessorToChildren, hasChildren: DTableDataTreeItemAccessorHasChildren): number; update(forcibly?: boolean): void; lock(): void; unlock(callIfNeeded: boolean): void; size(): number; get(index: number): NODE | null; expand(node: NODE): boolean; collapse(node: NODE): boolean; isCollapsed(node: NODE): boolean; isExpanded(node: NODE): boolean; toggle(node: NODE): boolean; /** @deprecated in favor of {@link expand}. */ open(node: NODE): boolean; /** @deprecated in favor of {@link collapse}. */ close(node: NODE): boolean; /** @deprecated in favor of {@link isExpanded}. */ isOpened(node: NODE): boolean; each(iteratee: (node: NODE, index: number) => boolean | void, ifrom?: number, ito?: number): void; get selection(): DTableDataSelection; get filter(): DTableDataFilter; get sorter(): DTableDataSorter; get mapped(): DTableDataMapped; }