Skip to main content

@headless-tree/core

Index

Async Data Loader/General

Other

Async Data Loader/General

AsyncDataLoaderFeatureDef

AsyncDataLoaderFeatureDef<T>: { config: { createLoadingItemData?: () => T; onLoadedChildren?: (itemId: string, childrenIds: string[]) => void; onLoadedItem?: (itemId: string, item: T) => void; rootItemId: string; setLoadingItemChildrens?: SetStateFn<string[]>; setLoadingItemData?: SetStateFn<string[]> }; hotkeys: SyncDataLoaderFeatureDef<T>[hotkeys]; itemInstance: SyncDataLoaderFeatureDef<T>[itemInstance] & { invalidateChildrenIds: () => void; invalidateItemData: () => void; isLoading: () => boolean; updateCachedChildrenIds: (childrenIds: string[]) => void }; state: { loadingItemChildrens: string[]; loadingItemData: string[] }; treeInstance: SyncDataLoaderFeatureDef<T>[treeInstance] & { waitForItemChildrenLoaded: (itemId: string) => Promise<void>; waitForItemDataLoaded: (itemId: string) => Promise<void> } }

Type parameters

  • T

Type declaration

  • config: { createLoadingItemData?: () => T; onLoadedChildren?: (itemId: string, childrenIds: string[]) => void; onLoadedItem?: (itemId: string, item: T) => void; rootItemId: string; setLoadingItemChildrens?: SetStateFn<string[]>; setLoadingItemData?: SetStateFn<string[]> }
    • optionalcreateLoadingItemData?: () => T

      Will be called when HT retrieves item data for an item whose item data is asynchronously being loaded. Can be used to create placeholder data to use for rendering the tree item while it is loaded. If not defined, the tree item data will be null.

        • (): T
        • Returns T

    • optionalonLoadedChildren?: (itemId: string, childrenIds: string[]) => void
        • (itemId: string, childrenIds: string[]): void
        • Parameters

          • itemId: string
          • childrenIds: string[]

          Returns void

    • optionalonLoadedItem?: (itemId: string, item: T) => void
        • (itemId: string, item: T): void
        • Parameters

          • itemId: string
          • item: T

          Returns void

    • rootItemId: string
    • optionalsetLoadingItemChildrens?: SetStateFn<string[]>
    • optionalsetLoadingItemData?: SetStateFn<string[]>
  • hotkeys: SyncDataLoaderFeatureDef<T>[hotkeys]
  • itemInstance: SyncDataLoaderFeatureDef<T>[itemInstance] & { invalidateChildrenIds: () => void; invalidateItemData: () => void; isLoading: () => boolean; updateCachedChildrenIds: (childrenIds: string[]) => void }
  • state: { loadingItemChildrens: string[]; loadingItemData: string[] }
    • loadingItemChildrens: string[]
    • loadingItemData: string[]
  • treeInstance: SyncDataLoaderFeatureDef<T>[treeInstance] & { waitForItemChildrenLoaded: (itemId: string) => Promise<void>; waitForItemDataLoaded: (itemId: string) => Promise<void> }

Other

AsyncDataLoaderFeatureHotkeys

AsyncDataLoaderFeatureHotkeys<T>: AsyncDataLoaderFeatureDef<T>[hotkeys]

Type parameters

  • T

CustomHotkeysConfig

CustomHotkeysConfig<T>: Partial<Record<HotkeyName | `custom${string}`, Partial<HotkeyConfig<T>>>>

Type parameters

  • T

DragAndDropFeatureDef

DragAndDropFeatureDef<T>: { config: { canDrag?: (items: ItemInstance<T>[]) => boolean; canDrop?: (items: ItemInstance<T>[], target: DragTarget<T>) => boolean; canDropForeignDragObject?: (dataTransfer: DataTransfer, target: DragTarget<T>) => boolean; canReorder?: boolean; createForeignDragObject?: (items: ItemInstance<T>[]) => { data: any; format: string }; indent?: number; onCompleteForeignDrop?: (items: ItemInstance<T>[]) => void; onDrop?: (items: ItemInstance<T>[], target: DragTarget<T>) => void | Promise<void>; onDropForeignDragObject?: (dataTransfer: DataTransfer, target: DragTarget<T>) => void | Promise<void>; reorderAreaPercentage?: number; setDndState?: SetStateFn<DndState<T> | undefined | null> }; hotkeys: never; itemInstance: { isDragTarget: () => boolean; isDragTargetAbove: () => boolean; isDragTargetBelow: () => boolean; isDraggingOver: () => boolean }; state: { dnd?: DndState<T> | null }; treeInstance: { getDragLineData: () => DragLineData | null; getDragLineStyle: (topOffset?: number, leftOffset?: number) => Record<string, any>; getDragTarget: () => DragTarget<T> | null } }

Type parameters

  • T

Type declaration

  • config: { canDrag?: (items: ItemInstance<T>[]) => boolean; canDrop?: (items: ItemInstance<T>[], target: DragTarget<T>) => boolean; canDropForeignDragObject?: (dataTransfer: DataTransfer, target: DragTarget<T>) => boolean; canReorder?: boolean; createForeignDragObject?: (items: ItemInstance<T>[]) => { data: any; format: string }; indent?: number; onCompleteForeignDrop?: (items: ItemInstance<T>[]) => void; onDrop?: (items: ItemInstance<T>[], target: DragTarget<T>) => void | Promise<void>; onDropForeignDragObject?: (dataTransfer: DataTransfer, target: DragTarget<T>) => void | Promise<void>; reorderAreaPercentage?: number; setDndState?: SetStateFn<DndState<T> | undefined | null> }
    • optionalcanDrag?: (items: ItemInstance<T>[]) => boolean
    • optionalcanDrop?: (items: ItemInstance<T>[], target: DragTarget<T>) => boolean
    • optionalcanDropForeignDragObject?: (dataTransfer: DataTransfer, target: DragTarget<T>) => boolean
        • (dataTransfer: DataTransfer, target: DragTarget<T>): boolean
        • Parameters

          Returns boolean

    • optionalcanReorder?: boolean
    • optionalcreateForeignDragObject?: (items: ItemInstance<T>[]) => { data: any; format: string }
        • Parameters

          Returns { data: any; format: string }

          • data: any
          • format: string
    • optionalindent?: number
    • optionalonCompleteForeignDrop?: (items: ItemInstance<T>[]) => void
    • optionalonDrop?: (items: ItemInstance<T>[], target: DragTarget<T>) => void | Promise<void>
    • optionalonDropForeignDragObject?: (dataTransfer: DataTransfer, target: DragTarget<T>) => void | Promise<void>
        • (dataTransfer: DataTransfer, target: DragTarget<T>): void | Promise<void>
        • Parameters

          Returns void | Promise<void>

    • optionalreorderAreaPercentage?: number

      Defines the size of the area at the top and bottom of an item where, when an item is dropped, the item willö be placed above or below the item within the same parent, as opposed to being placed inside the item. If canReorder is false, this is ignored.

    • optionalsetDndState?: SetStateFn<DndState<T> | undefined | null>
  • hotkeys: never
  • itemInstance: { isDragTarget: () => boolean; isDragTargetAbove: () => boolean; isDragTargetBelow: () => boolean; isDraggingOver: () => boolean }
    • isDragTarget: () => boolean
        • (): boolean
        • Returns boolean

    • isDragTargetAbove: () => boolean
        • (): boolean
        • Returns boolean

    • isDragTargetBelow: () => boolean
        • (): boolean
        • Returns boolean

    • isDraggingOver: () => boolean
        • (): boolean
        • Returns boolean

  • state: { dnd?: DndState<T> | null }
  • treeInstance: { getDragLineData: () => DragLineData | null; getDragLineStyle: (topOffset?: number, leftOffset?: number) => Record<string, any>; getDragTarget: () => DragTarget<T> | null }
    • getDragLineData: () => DragLineData | null
    • getDragLineStyle: (topOffset?: number, leftOffset?: number) => Record<string, any>
        • (topOffset?: number, leftOffset?: number): Record<string, any>
        • Parameters

          • optionaltopOffset: number
          • optionalleftOffset: number

          Returns Record<string, any>

    • getDragTarget: () => DragTarget<T> | null

DragAndDropFeatureHotkeys

DragAndDropFeatureHotkeys<T>: DragAndDropFeatureDef<T>[hotkeys]

Type parameters

  • T

DragTarget

DragTarget<T>: { childIndex: number; dragLineIndex: number; dragLineLevel: number; insertionIndex: number; item: ItemInstance<T> } | { item: ItemInstance<T> }

Type parameters

  • T

EmptyFeatureDef

EmptyFeatureDef: { config: {}; hotkeys: never; itemInstance: {}; state: {}; treeInstance: {} }

Type declaration

  • config: {}
    • hotkeys: never
    • itemInstance: {}
      • state: {}
        • treeInstance: {}

          ExpandAllFeatureDef

          ExpandAllFeatureDef: { config: {}; hotkeys: expandSelected | collapseSelected; itemInstance: { collapseAll: () => void; expandAll: (cancelToken?: { current: boolean }) => Promise<void> }; state: {}; treeInstance: { collapseAll: () => void; expandAll: (cancelToken?: { current: boolean }) => Promise<void> } }

          Type declaration

          • config: {}
            • hotkeys: expandSelected | collapseSelected
            • itemInstance: { collapseAll: () => void; expandAll: (cancelToken?: { current: boolean }) => Promise<void> }
              • collapseAll: () => void
                  • (): void
                  • Returns void

              • expandAll: (cancelToken?: { current: boolean }) => Promise<void>
                  • (cancelToken?: { current: boolean }): Promise<void>
                  • Parameters

                    • optionalcancelToken: { current: boolean }

                    Returns Promise<void>

            • state: {}
              • treeInstance: { collapseAll: () => void; expandAll: (cancelToken?: { current: boolean }) => Promise<void> }
                • collapseAll: () => void
                    • (): void
                    • Returns void

                • expandAll: (cancelToken?: { current: boolean }) => Promise<void>
                    • (cancelToken?: { current: boolean }): Promise<void>
                    • Parameters

                      • optionalcancelToken: { current: boolean }

                      Returns Promise<void>

              ExpandAllFeatureHotkeys

              ExpandAllFeatureHotkeys: ExpandAllFeatureDef[hotkeys]

              FeatureDef

              FeatureDef: { config: any; hotkeys: string; itemInstance: any; state: any; treeInstance: any }

              Type declaration

              • config: any
              • hotkeys: string
              • itemInstance: any
              • state: any
              • treeInstance: any

              FeatureImplementation

              FeatureImplementation<T>: { deps?: string[]; getDefaultConfig?: (defaultConfig: Partial<TreeConfig<T>>, tree: TreeInstance<T>) => Partial<TreeConfig<T>>; getInitialState?: (initialState: Partial<TreeState<T>>, tree: TreeInstance<T>) => Partial<TreeState<T>>; hotkeys?: Partial<HotkeysConfig<T>>; itemInstance?: { [ key in keyof ItemInstance<T> ]?: (opts: ItemInstanceOpts<key>, ...args: Parameters<ItemInstance<T>[key]>) => void }; key?: string; onItemMount?: (instance: ItemInstance<T>, itemElement: HTMLElement, tree: TreeInstance<T>) => void; onItemUnmount?: (instance: ItemInstance<T>, itemElement: HTMLElement, tree: TreeInstance<T>) => void; onTreeMount?: (instance: TreeInstance<T>, treeElement: HTMLElement) => void; onTreeUnmount?: (instance: TreeInstance<T>, treeElement: HTMLElement) => void; overwrites?: string[]; stateHandlerNames?: Partial<Record<keyof TreeState<T>, keyof TreeConfig<T>>>; treeInstance?: { [ key in keyof TreeInstance<T> ]?: (opts: TreeInstanceOpts<key>, ...args: Parameters<TreeInstance<T>[key]>) => void } }

              Type parameters

              • T = any

              Type declaration

              HotkeyName

              HotkeyName: MergedFeatures<RegisteredFeatures<any>>[hotkeys]

              HotkeysConfig

              HotkeysConfig<T>: Record<HotkeyName, HotkeyConfig<T>>

              Type parameters

              • T

              HotkeysCoreFeatureDef

              HotkeysCoreFeatureDef<T>: { config: { hotkeys?: CustomHotkeysConfig<T>; onTreeHotkey?: (name: string, e: KeyboardEvent) => void }; hotkeys: never; itemInstance: {}; state: {}; treeInstance: {} }

              Type parameters

              • T

              Type declaration

              • config: { hotkeys?: CustomHotkeysConfig<T>; onTreeHotkey?: (name: string, e: KeyboardEvent) => void }
                • optionalhotkeys?: CustomHotkeysConfig<T>
                • optionalonTreeHotkey?: (name: string, e: KeyboardEvent) => void
                    • (name: string, e: KeyboardEvent): void
                    • Parameters

                      • name: string
                      • e: KeyboardEvent

                      Returns void

              • hotkeys: never
              • itemInstance: {}
                • state: {}
                  • treeInstance: {}

                    HotkeysCoreFeatureHotkeys

                    HotkeysCoreFeatureHotkeys<T>: HotkeysCoreFeatureDef<T>[hotkeys]

                    Type parameters

                    • T

                    InstanceBuilder

                    InstanceBuilder: <T>(features: FeatureImplementation[], instanceType: T, buildOpts: (self: any) => any) => [instance: InstanceTypeMap[T], finalize: () => void]

                    Type declaration

                      • <T>(features: FeatureImplementation[], instanceType: T, buildOpts: (self: any) => any): [instance: InstanceTypeMap[T], finalize: () => void]
                      • Type parameters

                        • T: keyof InstanceTypeMap

                        Parameters

                        Returns [instance: InstanceTypeMap[T], finalize: () => void]

                    ItemInstanceOpts

                    ItemInstanceOpts<Key>: { item: ItemInstance<any>; itemId: string; prev?: MayReturnNull<ItemInstance<any>[Key]>; tree: TreeInstance<any> }

                    Type parameters

                    Type declaration

                    KeyboardDragAndDropFeatureDef

                    KeyboardDragAndDropFeatureDef<T>: { config: { onStartKeyboardDrag?: (items: ItemInstance<T>[]) => void; setAssistiveDndState?: SetStateFn<AssistiveDndState | undefined | null> }; hotkeys: startDrag | cancelDrag | completeDrag | dragUp | dragDown; itemInstance: {}; state: { assistiveDndState?: AssistiveDndState | null }; treeInstance: { startKeyboardDrag: (items: ItemInstance<T>[]) => void; startKeyboardDragOnForeignObject: (dataTransfer: DataTransfer) => void; stopKeyboardDrag: () => void } }

                    Type parameters

                    • T

                    Type declaration

                    • config: { onStartKeyboardDrag?: (items: ItemInstance<T>[]) => void; setAssistiveDndState?: SetStateFn<AssistiveDndState | undefined | null> }
                    • hotkeys: startDrag | cancelDrag | completeDrag | dragUp | dragDown
                    • itemInstance: {}
                      • state: { assistiveDndState?: AssistiveDndState | null }
                      • treeInstance: { startKeyboardDrag: (items: ItemInstance<T>[]) => void; startKeyboardDragOnForeignObject: (dataTransfer: DataTransfer) => void; stopKeyboardDrag: () => void }
                        • startKeyboardDrag: (items: ItemInstance<T>[]) => void
                        • startKeyboardDragOnForeignObject: (dataTransfer: DataTransfer) => void
                            • (dataTransfer: DataTransfer): void
                            • Parameters

                              • dataTransfer: DataTransfer

                              Returns void

                        • stopKeyboardDrag: () => void
                            • (): void
                            • Returns void

                      KeyboardDragAndDropFeatureHotkeys

                      KeyboardDragAndDropFeatureHotkeys<T>: KeyboardDragAndDropFeatureDef<T>[hotkeys]

                      Type parameters

                      • T

                      MainFeatureDef

                      MainFeatureDef<T>: { config: { features?: FeatureImplementation<any>[]; initialState?: Partial<TreeState<T>>; instanceBuilder?: InstanceBuilder; setState?: SetStateFn<Partial<TreeState<T>>>; state?: Partial<TreeState<T>> }; hotkeys: never; itemInstance: { getElement: () => HTMLElement | undefined | null; getItemMeta: () => ItemMeta; registerElement: (element: HTMLElement | null) => void }; state: {}; treeInstance: { getConfig: () => TreeConfig<T>; getElement: () => HTMLElement | undefined | null; getHotkeyPresets: () => HotkeysConfig<T>; getItemInstance: (itemId: string) => ItemInstance<T>; getItems: () => ItemInstance<T>[]; getState: () => TreeState<T>; rebuildTree: () => void; registerElement: (element: HTMLElement | null) => void; setConfig: SetStateFn<TreeConfig<T>>; setState: SetStateFn<TreeState<T>> } }

                      Type parameters

                      • T = any

                      Type declaration

                      MainFeatureHotkeys

                      MainFeatureHotkeys: MainFeatureDef[hotkeys]

                      PropMemoizationFeatureDef

                      PropMemoizationFeatureDef: { config: {}; hotkeys: never; itemInstance: {}; state: {}; treeInstance: {} }

                      Type declaration

                      • config: {}
                        • hotkeys: never
                        • itemInstance: {}
                          • state: {}
                            • treeInstance: {}

                              PropMemoizationHotkeys

                              PropMemoizationHotkeys: PropMemoizationFeatureDef[hotkeys]

                              RegisteredFeatures

                              Type parameters

                              • T

                              RenamingFeatureDef

                              RenamingFeatureDef<T>: { config: { canRename?: (item: ItemInstance<T>) => boolean; onRename?: (item: ItemInstance<T>, value: string) => void; setRenamingItem?: SetStateFn<string | null | undefined>; setRenamingValue?: SetStateFn<string | undefined> }; hotkeys: renameItem | abortRenaming | completeRenaming; itemInstance: { canRename: () => boolean; getRenameInputProps: () => any; isRenaming: () => boolean; startRenaming: () => void }; state: { renamingItem?: string | null; renamingValue?: string }; treeInstance: { abortRenaming: () => void; completeRenaming: () => void; getRenamingItem: () => ItemInstance<T> | null; getRenamingValue: () => string; isRenamingItem: () => boolean } }

                              Type parameters

                              • T

                              Type declaration

                              • config: { canRename?: (item: ItemInstance<T>) => boolean; onRename?: (item: ItemInstance<T>, value: string) => void; setRenamingItem?: SetStateFn<string | null | undefined>; setRenamingValue?: SetStateFn<string | undefined> }
                              • hotkeys: renameItem | abortRenaming | completeRenaming
                              • itemInstance: { canRename: () => boolean; getRenameInputProps: () => any; isRenaming: () => boolean; startRenaming: () => void }
                                • canRename: () => boolean
                                    • (): boolean
                                    • Returns boolean

                                • getRenameInputProps: () => any
                                    • (): any
                                    • Returns any

                                • isRenaming: () => boolean
                                    • (): boolean
                                    • Returns boolean

                                • startRenaming: () => void
                                    • (): void
                                    • Returns void

                              • state: { renamingItem?: string | null; renamingValue?: string }
                                • optionalrenamingItem?: string | null
                                • optionalrenamingValue?: string
                              • treeInstance: { abortRenaming: () => void; completeRenaming: () => void; getRenamingItem: () => ItemInstance<T> | null; getRenamingValue: () => string; isRenamingItem: () => boolean }
                                • abortRenaming: () => void
                                    • (): void
                                    • Returns void

                                • completeRenaming: () => void
                                    • (): void
                                    • Returns void

                                • getRenamingItem: () => ItemInstance<T> | null
                                • getRenamingValue: () => string
                                    • (): string
                                    • Returns string

                                • isRenamingItem: () => boolean
                                    • (): boolean
                                    • Returns boolean

                              RenamingFeatureHotkeys

                              RenamingFeatureHotkeys<T>: RenamingFeatureDef<T>[hotkeys]

                              Type parameters

                              • T

                              SearchFeatureDef

                              SearchFeatureDef<T>: { config: { isSearchMatchingItem?: (search: string, item: ItemInstance<T>) => boolean; onCloseSearch?: () => void; onOpenSearch?: () => void; setSearch?: SetStateFn<string | null> }; hotkeys: openSearch | closeSearch | submitSearch | nextSearchItem | previousSearchItem; itemInstance: { isMatchingSearch: () => boolean }; state: { search: string | null }; treeInstance: { closeSearch: () => void; getSearchInputElement: () => HTMLInputElement | null; getSearchInputElementProps: () => any; getSearchMatchingItems: () => ItemInstance<T>[]; getSearchValue: () => string; isSearchOpen: () => boolean; openSearch: (initialValue?: string) => void; registerSearchInputElement: (element: HTMLInputElement | null) => void; setSearch: (search: string | null) => void } }

                              Type parameters

                              • T

                              Type declaration

                              • config: { isSearchMatchingItem?: (search: string, item: ItemInstance<T>) => boolean; onCloseSearch?: () => void; onOpenSearch?: () => void; setSearch?: SetStateFn<string | null> }
                                • optionalisSearchMatchingItem?: (search: string, item: ItemInstance<T>) => boolean
                                • optionalonCloseSearch?: () => void
                                    • (): void
                                    • Returns void

                                • optionalonOpenSearch?: () => void
                                    • (): void
                                    • Returns void

                                • optionalsetSearch?: SetStateFn<string | null>
                              • hotkeys: openSearch | closeSearch | submitSearch | nextSearchItem | previousSearchItem
                              • itemInstance: { isMatchingSearch: () => boolean }
                                • isMatchingSearch: () => boolean
                                    • (): boolean
                                    • Returns boolean

                              • state: { search: string | null }
                                • search: string | null
                              • treeInstance: { closeSearch: () => void; getSearchInputElement: () => HTMLInputElement | null; getSearchInputElementProps: () => any; getSearchMatchingItems: () => ItemInstance<T>[]; getSearchValue: () => string; isSearchOpen: () => boolean; openSearch: (initialValue?: string) => void; registerSearchInputElement: (element: HTMLInputElement | null) => void; setSearch: (search: string | null) => void }
                                • closeSearch: () => void
                                    • (): void
                                    • Returns void

                                • getSearchInputElement: () => HTMLInputElement | null
                                    • (): HTMLInputElement | null
                                    • Returns HTMLInputElement | null

                                • getSearchInputElementProps: () => any
                                    • (): any
                                    • Returns any

                                • getSearchMatchingItems: () => ItemInstance<T>[]
                                • getSearchValue: () => string
                                    • (): string
                                    • Returns string

                                • isSearchOpen: () => boolean
                                    • (): boolean
                                    • Returns boolean

                                • openSearch: (initialValue?: string) => void
                                    • (initialValue?: string): void
                                    • Parameters

                                      • optionalinitialValue: string

                                      Returns void

                                • registerSearchInputElement: (element: HTMLInputElement | null) => void
                                    • (element: HTMLInputElement | null): void
                                    • Parameters

                                      • element: HTMLInputElement | null

                                      Returns void

                                • setSearch: (search: string | null) => void
                                    • (search: string | null): void
                                    • Parameters

                                      • search: string | null

                                      Returns void

                              SearchFeatureHotkeys

                              SearchFeatureHotkeys<T>: SearchFeatureDef<T>[hotkeys]

                              Type parameters

                              • T

                              SelectionFeatureDef

                              SelectionFeatureDef<T>: { config: { setSelectedItems?: SetStateFn<string[]> }; hotkeys: toggleSelectedItem | selectUpwards | selectDownwards | selectAll; itemInstance: { deselect: () => void; isSelected: () => boolean; select: () => void; selectUpTo: (ctrl: boolean) => void; toggleSelect: () => void }; state: { selectedItems: string[] }; treeInstance: { getSelectedItems: () => ItemInstance<T>[]; setSelectedItems: (selectedItems: string[]) => void } }

                              Type parameters

                              • T

                              Type declaration

                              • config: { setSelectedItems?: SetStateFn<string[]> }
                              • hotkeys: toggleSelectedItem | selectUpwards | selectDownwards | selectAll
                              • itemInstance: { deselect: () => void; isSelected: () => boolean; select: () => void; selectUpTo: (ctrl: boolean) => void; toggleSelect: () => void }
                                • deselect: () => void
                                    • (): void
                                    • Returns void

                                • isSelected: () => boolean
                                    • (): boolean
                                    • Returns boolean

                                • select: () => void
                                    • (): void
                                    • Returns void

                                • selectUpTo: (ctrl: boolean) => void
                                    • (ctrl: boolean): void
                                    • Parameters

                                      • ctrl: boolean

                                      Returns void

                                • toggleSelect: () => void
                                    • (): void
                                    • Returns void

                              • state: { selectedItems: string[] }
                                • selectedItems: string[]
                              • treeInstance: { getSelectedItems: () => ItemInstance<T>[]; setSelectedItems: (selectedItems: string[]) => void }
                                • getSelectedItems: () => ItemInstance<T>[]
                                • setSelectedItems: (selectedItems: string[]) => void
                                    • (selectedItems: string[]): void
                                    • Parameters

                                      • selectedItems: string[]

                                      Returns void

                              SelectionFeatureHotkeys

                              SelectionFeatureHotkeys<T>: SelectionFeatureDef<T>[hotkeys]

                              Type parameters

                              • T

                              SetStateFn

                              SetStateFn<T>: (updaterOrValue: Updater<T>) => void

                              Type parameters

                              • T

                              Type declaration

                                • Parameters

                                  Returns void

                              SyncDataLoaderFeatureDef

                              SyncDataLoaderFeatureDef<T>: { config: { dataLoader: TreeDataLoader<T>; rootItemId: string }; hotkeys: never; itemInstance: { isLoading: () => boolean }; state: {}; treeInstance: { retrieveChildrenIds: (itemId: string) => string[]; retrieveItemData: (itemId: string) => T } }

                              Type parameters

                              • T

                              Type declaration

                              • config: { dataLoader: TreeDataLoader<T>; rootItemId: string }
                              • hotkeys: never
                              • itemInstance: { isLoading: () => boolean }
                                • isLoading: () => boolean
                                    • (): boolean
                                    • Returns boolean

                              • state: {}
                                • treeInstance: { retrieveChildrenIds: (itemId: string) => string[]; retrieveItemData: (itemId: string) => T }
                                  • retrieveChildrenIds: (itemId: string) => string[]
                                      • (itemId: string): string[]
                                      • Parameters

                                        • itemId: string

                                        Returns string[]

                                  • retrieveItemData: (itemId: string) => T
                                      • (itemId: string): T
                                      • Parameters

                                        • itemId: string

                                        Returns T

                                SyncDataLoaderFeatureHotkeys

                                SyncDataLoaderFeatureHotkeys<T>: SyncDataLoaderFeatureDef<T>[hotkeys]

                                Type parameters

                                • T

                                TreeFeatureDef

                                TreeFeatureDef<T>: { config: { getItemName: (item: ItemInstance<T>) => string; isItemFolder: (item: ItemInstance<T>) => boolean; onPrimaryAction?: (item: ItemInstance<T>) => void; scrollToItem?: (item: ItemInstance<T>) => void; setExpandedItems?: SetStateFn<string[]>; setFocusedItem?: SetStateFn<string | null> }; hotkeys: focusNextItem | focusPreviousItem | expandOrDown | collapseOrUp | focusFirstItem | focusLastItem; itemInstance: { collapse: () => void; equals: (other?: ItemInstance<any> | null) => boolean; expand: () => void; getChildren: () => ItemInstance<T>[]; getId: () => string; getIndexInParent: () => number; getItemAbove: () => ItemInstance<T> | undefined; getItemBelow: () => ItemInstance<T> | undefined; getItemData: () => T; getItemName: () => string; getParent: () => ItemInstance<T> | undefined; getProps: () => Record<string, any>; getTree: () => TreeInstance<T>; isDescendentOf: (parentId: string) => boolean; isExpanded: () => boolean; isFocused: () => boolean; isFolder: () => boolean; primaryAction: () => void; scrollTo: (scrollIntoViewArg?: boolean | ScrollIntoViewOptions) => Promise<void>; setFocused: () => void }; state: { expandedItems: string[]; focusedItem: string | null }; treeInstance: { focusNextItem: () => void; focusPreviousItem: () => void; getContainerProps: (treeLabel?: string) => Record<string, any>; getFocusedItem: () => ItemInstance<any>; updateDomFocus: () => void } }

                                Type parameters

                                • T

                                Type declaration

                                • config: { getItemName: (item: ItemInstance<T>) => string; isItemFolder: (item: ItemInstance<T>) => boolean; onPrimaryAction?: (item: ItemInstance<T>) => void; scrollToItem?: (item: ItemInstance<T>) => void; setExpandedItems?: SetStateFn<string[]>; setFocusedItem?: SetStateFn<string | null> }
                                • hotkeys: focusNextItem | focusPreviousItem | expandOrDown | collapseOrUp | focusFirstItem | focusLastItem
                                • itemInstance: { collapse: () => void; equals: (other?: ItemInstance<any> | null) => boolean; expand: () => void; getChildren: () => ItemInstance<T>[]; getId: () => string; getIndexInParent: () => number; getItemAbove: () => ItemInstance<T> | undefined; getItemBelow: () => ItemInstance<T> | undefined; getItemData: () => T; getItemName: () => string; getParent: () => ItemInstance<T> | undefined; getProps: () => Record<string, any>; getTree: () => TreeInstance<T>; isDescendentOf: (parentId: string) => boolean; isExpanded: () => boolean; isFocused: () => boolean; isFolder: () => boolean; primaryAction: () => void; scrollTo: (scrollIntoViewArg?: boolean | ScrollIntoViewOptions) => Promise<void>; setFocused: () => void }
                                  • collapse: () => void
                                      • (): void
                                      • Returns void

                                  • equals: (other?: ItemInstance<any> | null) => boolean
                                  • expand: () => void
                                      • (): void
                                      • Returns void

                                  • getChildren: () => ItemInstance<T>[]
                                  • getId: () => string
                                      • (): string
                                      • Returns string

                                  • getIndexInParent: () => number
                                      • (): number
                                      • Returns number

                                  • getItemAbove: () => ItemInstance<T> | undefined
                                  • getItemBelow: () => ItemInstance<T> | undefined
                                  • getItemData: () => T
                                      • (): T
                                      • Returns T

                                  • getItemName: () => string
                                      • (): string
                                      • Returns string

                                  • getParent: () => ItemInstance<T> | undefined
                                  • getProps: () => Record<string, any>
                                      • (): Record<string, any>
                                      • Returns Record<string, any>

                                  • getTree: () => TreeInstance<T>
                                  • isDescendentOf: (parentId: string) => boolean
                                      • (parentId: string): boolean
                                      • Parameters

                                        • parentId: string

                                        Returns boolean

                                  • isExpanded: () => boolean
                                      • (): boolean
                                      • Returns boolean

                                  • isFocused: () => boolean
                                      • (): boolean
                                      • Returns boolean

                                  • isFolder: () => boolean
                                      • (): boolean
                                      • Returns boolean

                                  • primaryAction: () => void
                                      • (): void
                                      • Returns void

                                  • scrollTo: (scrollIntoViewArg?: boolean | ScrollIntoViewOptions) => Promise<void>
                                      • (scrollIntoViewArg?: boolean | ScrollIntoViewOptions): Promise<void>
                                      • Parameters

                                        • optionalscrollIntoViewArg: boolean | ScrollIntoViewOptions

                                        Returns Promise<void>

                                  • setFocused: () => void
                                      • (): void
                                      • Returns void

                                • state: { expandedItems: string[]; focusedItem: string | null }
                                  • expandedItems: string[]
                                  • focusedItem: string | null
                                • treeInstance: { focusNextItem: () => void; focusPreviousItem: () => void; getContainerProps: (treeLabel?: string) => Record<string, any>; getFocusedItem: () => ItemInstance<any>; updateDomFocus: () => void }
                                  • focusNextItem: () => void
                                      • (): void
                                      • Returns void

                                  • focusPreviousItem: () => void
                                      • (): void
                                      • Returns void

                                  • getContainerProps: (treeLabel?: string) => Record<string, any>

                                    Pass to the container rendering the tree children. The treeLabel parameter will be passed as aria-label parameter, and is recommended to be set.

                                      • (treeLabel?: string): Record<string, any>
                                      • Parameters

                                        • optionaltreeLabel: string

                                        Returns Record<string, any>

                                  • getFocusedItem: () => ItemInstance<any>
                                  • updateDomFocus: () => void
                                      • (): void
                                      • Returns void

                                TreeFeatureHotkeys

                                TreeFeatureHotkeys<T>: TreeFeatureDef<T>[hotkeys]

                                Type parameters

                                • T

                                TreeInstanceOpts

                                TreeInstanceOpts<Key>: { prev?: MayReturnNull<TreeInstance<any>[Key]>; tree: TreeInstance<any> }

                                Type parameters

                                Type declaration

                                Updater

                                Updater<T>: T | (old: T) => T

                                Type parameters

                                • T

                                constasyncDataLoaderFeature

                                asyncDataLoaderFeature: FeatureImplementation = ...

                                constdragAndDropFeature

                                dragAndDropFeature: FeatureImplementation = ...

                                constexpandAllFeature

                                expandAllFeature: FeatureImplementation = ...

                                consthotkeysCoreFeature

                                hotkeysCoreFeature: FeatureImplementation = ...

                                constkeyboardDragAndDropFeature

                                keyboardDragAndDropFeature: FeatureImplementation = ...

                                constpropMemoizationFeature

                                propMemoizationFeature: FeatureImplementation = ...

                                constrenamingFeature

                                renamingFeature: FeatureImplementation = ...

                                constsearchFeature

                                searchFeature: FeatureImplementation = ...

                                constselectionFeature

                                selectionFeature: FeatureImplementation = ...

                                constsyncDataLoaderFeature

                                syncDataLoaderFeature: FeatureImplementation = ...