diff --git a/COMPONENT_INDEX.md b/COMPONENT_INDEX.md index 3cd48491..dbcff238 100644 --- a/COMPONENT_INDEX.md +++ b/COMPONENT_INDEX.md @@ -4704,7 +4704,8 @@ export interface TreeNode { | expandedIds | No | let | Yes | ReadonlyArray | [] | Set the node ids to be expanded | | selectedIds | No | let | Yes | ReadonlyArray | [] | Set the node ids to be selected | | activeId | No | let | Yes | TreeNodeId | "" | Set the current active node id
Only one node can be active | -| nodes | No | let | No | Array | [] | Provide an array of nodes to render | +| nodes | No | let | Yes | Array | [] | Provide a nested array of nodes to render | +| nodesFlat | No | let | No | Array[] | [] | Provide a flat array of nodes to render | | size | No | let | No | "default" | "compact" | "default" | Specify the TreeView size | | labelText | No | let | No | string | "" | Specify the label text | | hideLabel | No | let | No | boolean | false | Set to `true` to visually hide the label text | diff --git a/docs/src/COMPONENT_API.json b/docs/src/COMPONENT_API.json index c6ceb31d..9bd04e0d 100644 --- a/docs/src/COMPONENT_API.json +++ b/docs/src/COMPONENT_API.json @@ -17770,13 +17770,25 @@ { "name": "nodes", "kind": "let", - "description": "Provide an array of nodes to render", + "description": "Provide a nested array of nodes to render", "type": "Array", "value": "[]", "isFunction": false, "isFunctionDeclaration": false, "isRequired": false, "constant": false, + "reactive": true + }, + { + "name": "nodesFlat", + "kind": "let", + "description": "Provide a flat array of nodes to render", + "type": "Array[]", + "value": "[]", + "isFunction": false, + "isFunctionDeclaration": false, + "isRequired": false, + "constant": false, "reactive": false }, { diff --git a/src/TreeView/TreeView.svelte b/src/TreeView/TreeView.svelte index e32e3c53..aae3e1b7 100644 --- a/src/TreeView/TreeView.svelte +++ b/src/TreeView/TreeView.svelte @@ -268,7 +268,9 @@ }, []); } - $: nodes = createNestedArray(nodesFlat); + $: if (nodesFlat.length > 0) { + nodes = createNestedArray(nodesFlat); + } $: flattenedNodes = traverse(nodes); $: nodeIds = flattenedNodes.map((node) => node.id); $: activeNodeId.set(activeId); diff --git a/types/TreeView/TreeView.svelte.d.ts b/types/TreeView/TreeView.svelte.d.ts index 342f24c9..546cb86c 100644 --- a/types/TreeView/TreeView.svelte.d.ts +++ b/types/TreeView/TreeView.svelte.d.ts @@ -15,11 +15,17 @@ type $RestProps = SvelteHTMLElements["ul"]; type $Props = { /** - * Provide an array of nodes to render + * Provide a nested array of nodes to render * @default [] */ nodes?: Array; + /** + * Provide a flat array of nodes to render + * @default [] + */ + nodesFlat?: Array[]; + /** * Set the current active node id * Only one node can be active