UNPKG

ixfx

Version:

A framework for programming interactivity

37 lines (35 loc) 1.06 kB
type LabelledValue<TValue> = LabelledSingleValue<TValue> | LabelledValues<TValue>; type LabelledSingleValue<TValue> = { label: string; value: TValue | undefined; }; type LabelledValues<TValue> = { label: string; values: Array<TValue>; }; /** * Array-backed tree node */ type TreeNode<TValue> = { parent: TreeNode<TValue> | undefined; value: TValue | undefined; childrenStore: ReadonlyArray<TreeNode<TValue>>; }; type SimplifiedNode<TValue> = { value: TValue | undefined; childrenStore: ReadonlyArray<SimplifiedNode<TValue>>; }; type LabelledNode<TValue> = TreeNode<LabelledValue<TValue>>; /** * Traversable Tree */ type TraversableTree<TValue> = { /** * Direct children of node */ children(): IterableIterator<TraversableTree<TValue>>; getParent(): TraversableTree<TValue> | undefined; getValue(): TValue; getIdentity(): any; }; export type { LabelledSingleValue as L, SimplifiedNode as S, TreeNode as T, TraversableTree as a, LabelledValue as b, LabelledNode as c, LabelledValues as d };