You've already forked obsidian-visualiser
Add combobox groups
This commit is contained in:
@@ -111,6 +111,22 @@ export class Tree<T extends Omit<LocalContent, 'content'>>
|
||||
|
||||
return recursive(1, this._data);
|
||||
}
|
||||
static each<T extends Record<string, any>>(tree: Array<T | undefined>, children: keyof T, callback: (item: T, depth: number, parent?: T) => void)
|
||||
{
|
||||
const recursive = (depth: number, data?: Array<T | undefined>, parent?: T) => data?.forEach(e => { if(!e) return; callback(e, depth, parent); !Array.isArray(e[children]) ? undefined : recursive(depth + 1, e[children] as T[] | undefined, e) });
|
||||
|
||||
recursive(1, tree);
|
||||
}
|
||||
static accumulate<T extends Record<string, any>>(tree: Array<T | undefined>, children: keyof T, callback: (item: T, depth: number, parent?: T) => any): any[]
|
||||
{
|
||||
const recursive = (depth: number, data?: Array<T | undefined>, parent?: T): any[] => data?.flatMap(e => e && [callback(e, depth, parent), ...!Array.isArray(e[children]) ? [] : recursive(depth + 1, e[children] as T[] | undefined, e)]) ?? [];
|
||||
|
||||
return recursive(1, tree);
|
||||
}
|
||||
static flatten<T extends Record<string, any>>(tree: T[], children: keyof T): T[]
|
||||
{
|
||||
return Tree.accumulate(tree, children, (item) => item);
|
||||
}
|
||||
get data()
|
||||
{
|
||||
return this._data;
|
||||
|
||||
Reference in New Issue
Block a user