carbon-components-svelte
Version:
Svelte implementation of the Carbon Design System
64 lines (54 loc) • 1.14 kB
TypeScript
import { SvelteComponentTyped } from "svelte";
export interface TreeNode<Id> {
id: Id;
text: string;
disabled?: boolean;
expanded?: boolean;
}
export type TreeViewNodeListProps<Id extends string | number = string | number, Icon = any> = {
/**
* @default []
*/
nodes?: ReadonlyArray<TreeNode<Id> & { nodes?: TreeNode<Id>[] }>;
/**
* @default false
*/
root?: boolean;
/**
* @default ""
*/
id?: Id;
/**
* @default ""
*/
text?: string;
/**
* @default false
*/
disabled?: boolean;
/**
* Specify the icon to render.
* @default undefined
*/
icon?: Icon;
children?: (this: void, ...args: [{
node: TreeNode<Id> & {
expanded: boolean;
leaf: boolean;
selected: boolean;
}
}]) => void;
};
export default class TreeViewNodeList<Id extends string | number = string | number, Icon = any> extends SvelteComponentTyped<
TreeViewNodeListProps<Id,Icon>,
Record<string, any>,
{
default: {
node: TreeNode<Id> & {
expanded: boolean;
leaf: boolean;
selected: boolean;
}
};
}
> {}