X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/d88f3e92dcbf4810fab55f098d7d4296107aa6ab..fc3f2ce8575095a33a3e62571c85cba6db7a6200:/src/models/tree.ts diff --git a/src/models/tree.ts b/src/models/tree.ts index 1bc15bc0..bec2f758 100644 --- a/src/models/tree.ts +++ b/src/models/tree.ts @@ -98,6 +98,9 @@ export const getNodeDescendants = (id: string, limit = Infinity) => (tree: Tr export const countNodes = (tree: Tree) => getNodeDescendantsIds('')(tree).length; +export const countChildren = (id: string) => (tree: Tree) => + getNodeChildren('')(tree).length; + export const getNodeDescendantsIds = (id: string, limit = Infinity) => (tree: Tree): string[] => { const node = getNode(id)(tree); const children = node ? node.children : @@ -178,6 +181,10 @@ export const deselectNodes = (id: string | string[]) => (tree: Tree) => { return ids.reduce((tree, id) => deselectNode(id)(tree), tree); }; +export const getSelectedNodes = (tree: Tree) => + getNodeDescendants('')(tree) + .filter(node => node.selected); + export const initTreeNode = (data: Pick, 'id' | 'value'> & { parent?: string }): TreeNode => ({ children: [], active: false,