@newbiz/common-libs
Version:
신사업개발실 서비스/어드민 프론트엔드 공통 라이브러리
27 lines (26 loc) • 851 B
TypeScript
export interface IBranchItem<E> {
id: string | number;
label: string;
parent: string[] | number[];
extra?: E;
}
export interface IBranchItemTree<E> extends IBranchItem<E> {
depth: number;
children?: this[];
[]: any;
}
type BranchOption = {
childrenKey: string;
};
export declare class Branch<E> {
private readonly rawData;
private readonly builtData;
private readonly option;
private readonly isValidRawData;
constructor(rawData: IBranchItem<E>[], option?: BranchOption);
build<R extends IBranchItemTree<E>>(): R | IBranchItemTree<E>;
getTree<R extends IBranchItemTree<E>>(): R | IBranchItemTree<E> | null;
getRawList<R extends IBranchItem<E>>(): R[] | IBranchItem<E>[];
getNodes<R extends IBranchItemTree<E>>(id?: string): R[] | IBranchItemTree<E>[] | null;
}
export {};