react-complex-tree
Advanced tools
Comparing version 1.1.5 to 1.1.6
import * as React from 'react'; | ||
import { ControlledTreeEnvironmentProps, TreeEnvironmentContextProps, TreeEnvironmentRef } from '../types'; | ||
export declare const useTreeEnvironment: () => TreeEnvironmentContextProps<any>; | ||
export declare const ControlledTreeEnvironment: <T = any>(p: ControlledTreeEnvironmentProps<T> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T>> | undefined; | ||
export declare const useTreeEnvironment: () => TreeEnvironmentContextProps<any, never>; | ||
export declare const ControlledTreeEnvironment: <T = any, C extends string = never>(p: ControlledTreeEnvironmentProps<T, C> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T, C>> | undefined; | ||
}) => React.ReactElement; |
import * as React from 'react'; | ||
import { InteractionManager } from '../types'; | ||
export declare const useInteractionManager: () => InteractionManager; | ||
export declare const useInteractionManager: () => InteractionManager<any>; | ||
export declare const InteractionManagerProvider: React.FC; |
import * as React from 'react'; | ||
import { TreeEnvironmentRef } from '../types'; | ||
export declare const useEnvironmentActions: () => import("../types").TreeEnvironmentChangeActions; | ||
export declare const EnvironmentActionsProvider: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<Record<string, unknown>>, string> & React.RefAttributes<TreeEnvironmentRef<any>>>; | ||
export declare const EnvironmentActionsProvider: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<Record<string, unknown>>, string> & React.RefAttributes<TreeEnvironmentRef<any, never>>>; |
import { TreeRenderProps } from '../types'; | ||
export declare const useRenderers: ({ renderItem, renderItemTitle, renderItemArrow, renderRenameInput, renderDraggingItem, renderDraggingItemTitle, renderItemsContainer, renderTreeContainer, renderDragBetweenLine, renderSearchInput, renderLiveDescriptorContainer, renderDepthOffset, }: TreeRenderProps) => Required<TreeRenderProps<any>>; | ||
export declare const useRenderers: ({ renderItem, renderItemTitle, renderItemArrow, renderRenameInput, renderDraggingItem, renderDraggingItemTitle, renderItemsContainer, renderTreeContainer, renderDragBetweenLine, renderSearchInput, renderLiveDescriptorContainer, renderDepthOffset, }: TreeRenderProps) => Required<TreeRenderProps<any, never>>; |
import { IndividualTreeViewState, LinearItem, TreeItem, TreeItemIndex } from '../types'; | ||
export declare const getItemsLinearly: <T>(rootItem: TreeItemIndex, viewState: IndividualTreeViewState, items: Record<TreeItemIndex, TreeItem<T>>, depth?: number) => LinearItem[]; | ||
export declare const getItemsLinearly: <T, C extends string>(rootItem: TreeItemIndex, viewState: IndividualTreeViewState<C>, items: Record<TreeItemIndex, TreeItem<T>>, depth?: number) => LinearItem[]; |
import * as React from 'react'; | ||
import { TreeContextProps, TreeProps, TreeRef } from '../types'; | ||
export declare const useTree: () => TreeContextProps; | ||
export declare const Tree: <T = any>(p: TreeProps<T> & { | ||
export declare const Tree: <T = any>(p: TreeProps<T, never> & { | ||
ref?: React.Ref<TreeRef<T>> | undefined; | ||
}) => React.ReactElement; |
@@ -1,1 +0,1 @@ | ||
export declare const useViewState: () => import("..").IndividualTreeViewState; | ||
export declare const useViewState: () => import("..").IndividualTreeViewState<never>; |
@@ -8,2 +8,5 @@ import { TreeItem } from '../types'; | ||
arrowProps: HTMLProps<HTMLElement>; | ||
viewStateFlags: { | ||
[key: string]: boolean; | ||
}; | ||
isSelected?: boolean | undefined; | ||
@@ -10,0 +13,0 @@ isExpanded?: boolean | undefined; |
@@ -164,6 +164,14 @@ "use strict"; | ||
}; | ||
var viewStateFlags = !viewState | ||
? {} | ||
: Object.entries(viewState).reduce(function (acc, _a) { | ||
var key = _a[0], value = _a[1]; | ||
acc[key] = Array.isArray(value) ? value.includes(item.index) : value === item.index; | ||
return acc; | ||
}, {}); | ||
return __assign(__assign(__assign({}, actions), renderFlags), { interactiveElementProps: interactiveElementProps, | ||
itemContainerWithChildrenProps: itemContainerWithChildrenProps, | ||
itemContainerWithoutChildrenProps: itemContainerWithoutChildrenProps, | ||
arrowProps: arrowProps }); | ||
arrowProps: arrowProps, | ||
viewStateFlags: viewStateFlags }); | ||
}, [ | ||
@@ -170,0 +178,0 @@ item, |
@@ -43,3 +43,3 @@ import React, { FormHTMLAttributes, HTMLProps, InputHTMLAttributes, Ref } from 'react'; | ||
} | ||
export interface TreeItemRenderContext extends TreeItemActions, TreeItemRenderFlags { | ||
export interface TreeItemRenderContext<C extends string = never> extends TreeItemActions, TreeItemRenderFlags { | ||
interactiveElementProps: HTMLProps<any>; | ||
@@ -49,2 +49,5 @@ itemContainerWithoutChildrenProps: HTMLProps<any>; | ||
arrowProps: HTMLProps<any>; | ||
viewStateFlags: { | ||
[collection in C]: boolean; | ||
}; | ||
} | ||
@@ -59,3 +62,3 @@ export interface TreeInformation extends TreeConfiguration { | ||
} | ||
export interface TreeRenderProps<T = any> { | ||
export interface TreeRenderProps<T = any, C extends string = never> { | ||
renderItem?: (props: { | ||
@@ -67,3 +70,3 @@ item: TreeItem<T>; | ||
arrow: React.ReactNode; | ||
context: TreeItemRenderContext; | ||
context: TreeItemRenderContext<C>; | ||
info: TreeInformation; | ||
@@ -74,3 +77,3 @@ }) => React.ReactElement | null; | ||
item: TreeItem<T>; | ||
context: TreeItemRenderContext; | ||
context: TreeItemRenderContext<C>; | ||
info: TreeInformation; | ||
@@ -80,3 +83,3 @@ }) => React.ReactElement | null | string; | ||
item: TreeItem<T>; | ||
context: TreeItemRenderContext; | ||
context: TreeItemRenderContext<C>; | ||
info: TreeInformation; | ||
@@ -121,3 +124,3 @@ }) => React.ReactElement | null; | ||
} | ||
export declare type AllTreeRenderProps<T = any> = Required<TreeRenderProps<T>>; | ||
export declare type AllTreeRenderProps<T = any, C extends string = never> = Required<TreeRenderProps<T, C>>; | ||
export declare enum InteractionMode { | ||
@@ -128,3 +131,3 @@ DoubleClickItemToExpand = "double-click-item-to-expand", | ||
} | ||
export interface InteractionManager { | ||
export interface InteractionManager<C extends string = never> { | ||
mode: InteractionMode | string; | ||
@@ -134,6 +137,6 @@ extends?: InteractionMode; | ||
/** See https://github.com/lukasbach/react-complex-tree/issues/48 */ | ||
__unsafeViewState?: IndividualTreeViewState) => HTMLProps<HTMLElement>; | ||
__unsafeViewState?: IndividualTreeViewState<C>) => HTMLProps<HTMLElement>; | ||
} | ||
export interface TreeCapabilities<T = any> { | ||
defaultInteractionMode?: InteractionMode | InteractionManager; | ||
export interface TreeCapabilities<T = any, C extends string = never> { | ||
defaultInteractionMode?: InteractionMode | InteractionManager<C>; | ||
canDragAndDrop?: boolean; | ||
@@ -153,3 +156,3 @@ canDropOnItemWithChildren?: boolean; | ||
} | ||
export interface IndividualTreeViewState { | ||
export declare type IndividualTreeViewState<C extends string> = { | ||
selectedItems?: TreeItemIndex[]; | ||
@@ -159,6 +162,8 @@ expandedItems?: TreeItemIndex[]; | ||
focusedItem?: TreeItemIndex; | ||
} & { | ||
[c in C]: TreeItemIndex | TreeItemIndex[] | undefined; | ||
}; | ||
export interface TreeViewState<C extends string> { | ||
[treeId: string]: IndividualTreeViewState<C> | undefined; | ||
} | ||
export interface TreeViewState { | ||
[treeId: string]: IndividualTreeViewState | undefined; | ||
} | ||
export interface ExplicitDataSource<T = any> { | ||
@@ -205,8 +210,8 @@ items: Record<TreeItemIndex, TreeItem<T>>; | ||
export declare type TreeEnvironmentActionsContextProps = TreeEnvironmentChangeActions; | ||
export interface TreeEnvironmentRef<T = any> extends TreeEnvironmentChangeActions, Omit<TreeEnvironmentConfiguration<T>, keyof TreeChangeHandlers> { | ||
export interface TreeEnvironmentRef<T = any, C extends string = never> extends TreeEnvironmentChangeActions, Omit<TreeEnvironmentConfiguration<T, C>, keyof TreeChangeHandlers> { | ||
treeEnvironmentContext: TreeEnvironmentContextProps; | ||
dragAndDropContext: DragAndDropContextProps; | ||
} | ||
export interface TreeEnvironmentConfiguration<T = any> extends TreeRenderProps<T>, TreeCapabilities<T>, TreeChangeHandlers<T>, ExplicitDataSource<T> { | ||
viewState: TreeViewState; | ||
export interface TreeEnvironmentConfiguration<T = any, C extends string = never> extends TreeRenderProps<T, C>, TreeCapabilities<T>, TreeChangeHandlers<T>, ExplicitDataSource<T> { | ||
viewState: TreeViewState<C>; | ||
keyboardBindings?: KeyboardBindings; | ||
@@ -216,3 +221,3 @@ liveDescriptors?: LiveDescriptors; | ||
} | ||
export interface TreeEnvironmentContextProps<T = any> extends Omit<TreeEnvironmentConfiguration<T>, keyof TreeRenderProps>, AllTreeRenderProps<T> { | ||
export interface TreeEnvironmentContextProps<T = any, C extends string = never> extends Omit<TreeEnvironmentConfiguration<T>, keyof TreeRenderProps>, AllTreeRenderProps<T, C> { | ||
registerTree: (tree: TreeConfiguration) => void; | ||
@@ -263,7 +268,7 @@ unregisterTree: (treeId: string) => void; | ||
} | ||
export interface ControlledTreeEnvironmentProps<T = any> extends TreeEnvironmentConfiguration<T> { | ||
export interface ControlledTreeEnvironmentProps<T = any, C extends string = never> extends TreeEnvironmentConfiguration<T, C> { | ||
children?: JSX.Element | JSX.Element[] | null; | ||
} | ||
export interface UncontrolledTreeEnvironmentProps<T = any> extends TreeRenderProps<T>, TreeCapabilities, ImplicitDataSource<T>, TreeChangeHandlers<T> { | ||
viewState: TreeViewState; | ||
export interface UncontrolledTreeEnvironmentProps<T = any, C extends string = never> extends TreeRenderProps<T, C>, TreeCapabilities, ImplicitDataSource<T>, TreeChangeHandlers<T> { | ||
viewState: TreeViewState<C>; | ||
keyboardBindings?: KeyboardBindings; | ||
@@ -280,3 +285,3 @@ liveDescriptors?: LiveDescriptors; | ||
} | ||
export interface TreeProps<T = any> extends TreeConfiguration, Partial<TreeRenderProps<T>> { | ||
export interface TreeProps<T = any, C extends string = never> extends TreeConfiguration, Partial<TreeRenderProps<T, C>> { | ||
} | ||
@@ -283,0 +288,0 @@ export interface TreeContextProps extends TreeConfiguration { |
import * as React from 'react'; | ||
import { TreeEnvironmentRef, UncontrolledTreeEnvironmentProps } from '../types'; | ||
export declare const UncontrolledTreeEnvironment: <T = any>(p: UncontrolledTreeEnvironmentProps<T> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T>> | undefined; | ||
export declare const UncontrolledTreeEnvironment: <T = any, C extends string = never>(p: UncontrolledTreeEnvironmentProps<T, C> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T, C>> | undefined; | ||
}) => React.ReactElement; |
import * as React from 'react'; | ||
import { ControlledTreeEnvironmentProps, TreeEnvironmentContextProps, TreeEnvironmentRef } from '../types'; | ||
export declare const useTreeEnvironment: () => TreeEnvironmentContextProps<any>; | ||
export declare const ControlledTreeEnvironment: <T = any>(p: ControlledTreeEnvironmentProps<T> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T>> | undefined; | ||
export declare const useTreeEnvironment: () => TreeEnvironmentContextProps<any, never>; | ||
export declare const ControlledTreeEnvironment: <T = any, C extends string = never>(p: ControlledTreeEnvironmentProps<T, C> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T, C>> | undefined; | ||
}) => React.ReactElement; |
import * as React from 'react'; | ||
import { InteractionManager } from '../types'; | ||
export declare const useInteractionManager: () => InteractionManager; | ||
export declare const useInteractionManager: () => InteractionManager<any>; | ||
export declare const InteractionManagerProvider: React.FC; |
import * as React from 'react'; | ||
import { TreeEnvironmentRef } from '../types'; | ||
export declare const useEnvironmentActions: () => import("../types").TreeEnvironmentChangeActions; | ||
export declare const EnvironmentActionsProvider: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<Record<string, unknown>>, string> & React.RefAttributes<TreeEnvironmentRef<any>>>; | ||
export declare const EnvironmentActionsProvider: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<Record<string, unknown>>, string> & React.RefAttributes<TreeEnvironmentRef<any, never>>>; |
import { TreeRenderProps } from '../types'; | ||
export declare const useRenderers: ({ renderItem, renderItemTitle, renderItemArrow, renderRenameInput, renderDraggingItem, renderDraggingItemTitle, renderItemsContainer, renderTreeContainer, renderDragBetweenLine, renderSearchInput, renderLiveDescriptorContainer, renderDepthOffset, }: TreeRenderProps) => Required<TreeRenderProps<any>>; | ||
export declare const useRenderers: ({ renderItem, renderItemTitle, renderItemArrow, renderRenameInput, renderDraggingItem, renderDraggingItemTitle, renderItemsContainer, renderTreeContainer, renderDragBetweenLine, renderSearchInput, renderLiveDescriptorContainer, renderDepthOffset, }: TreeRenderProps) => Required<TreeRenderProps<any, never>>; |
import { IndividualTreeViewState, LinearItem, TreeItem, TreeItemIndex } from '../types'; | ||
export declare const getItemsLinearly: <T>(rootItem: TreeItemIndex, viewState: IndividualTreeViewState, items: Record<TreeItemIndex, TreeItem<T>>, depth?: number) => LinearItem[]; | ||
export declare const getItemsLinearly: <T, C extends string>(rootItem: TreeItemIndex, viewState: IndividualTreeViewState<C>, items: Record<TreeItemIndex, TreeItem<T>>, depth?: number) => LinearItem[]; |
import * as React from 'react'; | ||
import { TreeContextProps, TreeProps, TreeRef } from '../types'; | ||
export declare const useTree: () => TreeContextProps; | ||
export declare const Tree: <T = any>(p: TreeProps<T> & { | ||
export declare const Tree: <T = any>(p: TreeProps<T, never> & { | ||
ref?: React.Ref<TreeRef<T>> | undefined; | ||
}) => React.ReactElement; |
@@ -1,1 +0,1 @@ | ||
export declare const useViewState: () => import("..").IndividualTreeViewState; | ||
export declare const useViewState: () => import("..").IndividualTreeViewState<never>; |
@@ -8,2 +8,5 @@ import { TreeItem } from '../types'; | ||
arrowProps: HTMLProps<HTMLElement>; | ||
viewStateFlags: { | ||
[key: string]: boolean; | ||
}; | ||
isSelected?: boolean | undefined; | ||
@@ -10,0 +13,0 @@ isExpanded?: boolean | undefined; |
@@ -161,6 +161,14 @@ var __assign = (this && this.__assign) || function () { | ||
}; | ||
var viewStateFlags = !viewState | ||
? {} | ||
: Object.entries(viewState).reduce(function (acc, _a) { | ||
var key = _a[0], value = _a[1]; | ||
acc[key] = Array.isArray(value) ? value.includes(item.index) : value === item.index; | ||
return acc; | ||
}, {}); | ||
return __assign(__assign(__assign({}, actions), renderFlags), { interactiveElementProps: interactiveElementProps, | ||
itemContainerWithChildrenProps: itemContainerWithChildrenProps, | ||
itemContainerWithoutChildrenProps: itemContainerWithoutChildrenProps, | ||
arrowProps: arrowProps }); | ||
arrowProps: arrowProps, | ||
viewStateFlags: viewStateFlags }); | ||
}, [ | ||
@@ -167,0 +175,0 @@ item, |
@@ -43,3 +43,3 @@ import React, { FormHTMLAttributes, HTMLProps, InputHTMLAttributes, Ref } from 'react'; | ||
} | ||
export interface TreeItemRenderContext extends TreeItemActions, TreeItemRenderFlags { | ||
export interface TreeItemRenderContext<C extends string = never> extends TreeItemActions, TreeItemRenderFlags { | ||
interactiveElementProps: HTMLProps<any>; | ||
@@ -49,2 +49,5 @@ itemContainerWithoutChildrenProps: HTMLProps<any>; | ||
arrowProps: HTMLProps<any>; | ||
viewStateFlags: { | ||
[collection in C]: boolean; | ||
}; | ||
} | ||
@@ -59,3 +62,3 @@ export interface TreeInformation extends TreeConfiguration { | ||
} | ||
export interface TreeRenderProps<T = any> { | ||
export interface TreeRenderProps<T = any, C extends string = never> { | ||
renderItem?: (props: { | ||
@@ -67,3 +70,3 @@ item: TreeItem<T>; | ||
arrow: React.ReactNode; | ||
context: TreeItemRenderContext; | ||
context: TreeItemRenderContext<C>; | ||
info: TreeInformation; | ||
@@ -74,3 +77,3 @@ }) => React.ReactElement | null; | ||
item: TreeItem<T>; | ||
context: TreeItemRenderContext; | ||
context: TreeItemRenderContext<C>; | ||
info: TreeInformation; | ||
@@ -80,3 +83,3 @@ }) => React.ReactElement | null | string; | ||
item: TreeItem<T>; | ||
context: TreeItemRenderContext; | ||
context: TreeItemRenderContext<C>; | ||
info: TreeInformation; | ||
@@ -121,3 +124,3 @@ }) => React.ReactElement | null; | ||
} | ||
export declare type AllTreeRenderProps<T = any> = Required<TreeRenderProps<T>>; | ||
export declare type AllTreeRenderProps<T = any, C extends string = never> = Required<TreeRenderProps<T, C>>; | ||
export declare enum InteractionMode { | ||
@@ -128,3 +131,3 @@ DoubleClickItemToExpand = "double-click-item-to-expand", | ||
} | ||
export interface InteractionManager { | ||
export interface InteractionManager<C extends string = never> { | ||
mode: InteractionMode | string; | ||
@@ -134,6 +137,6 @@ extends?: InteractionMode; | ||
/** See https://github.com/lukasbach/react-complex-tree/issues/48 */ | ||
__unsafeViewState?: IndividualTreeViewState) => HTMLProps<HTMLElement>; | ||
__unsafeViewState?: IndividualTreeViewState<C>) => HTMLProps<HTMLElement>; | ||
} | ||
export interface TreeCapabilities<T = any> { | ||
defaultInteractionMode?: InteractionMode | InteractionManager; | ||
export interface TreeCapabilities<T = any, C extends string = never> { | ||
defaultInteractionMode?: InteractionMode | InteractionManager<C>; | ||
canDragAndDrop?: boolean; | ||
@@ -153,3 +156,3 @@ canDropOnItemWithChildren?: boolean; | ||
} | ||
export interface IndividualTreeViewState { | ||
export declare type IndividualTreeViewState<C extends string> = { | ||
selectedItems?: TreeItemIndex[]; | ||
@@ -159,6 +162,8 @@ expandedItems?: TreeItemIndex[]; | ||
focusedItem?: TreeItemIndex; | ||
} & { | ||
[c in C]: TreeItemIndex | TreeItemIndex[] | undefined; | ||
}; | ||
export interface TreeViewState<C extends string> { | ||
[treeId: string]: IndividualTreeViewState<C> | undefined; | ||
} | ||
export interface TreeViewState { | ||
[treeId: string]: IndividualTreeViewState | undefined; | ||
} | ||
export interface ExplicitDataSource<T = any> { | ||
@@ -205,8 +210,8 @@ items: Record<TreeItemIndex, TreeItem<T>>; | ||
export declare type TreeEnvironmentActionsContextProps = TreeEnvironmentChangeActions; | ||
export interface TreeEnvironmentRef<T = any> extends TreeEnvironmentChangeActions, Omit<TreeEnvironmentConfiguration<T>, keyof TreeChangeHandlers> { | ||
export interface TreeEnvironmentRef<T = any, C extends string = never> extends TreeEnvironmentChangeActions, Omit<TreeEnvironmentConfiguration<T, C>, keyof TreeChangeHandlers> { | ||
treeEnvironmentContext: TreeEnvironmentContextProps; | ||
dragAndDropContext: DragAndDropContextProps; | ||
} | ||
export interface TreeEnvironmentConfiguration<T = any> extends TreeRenderProps<T>, TreeCapabilities<T>, TreeChangeHandlers<T>, ExplicitDataSource<T> { | ||
viewState: TreeViewState; | ||
export interface TreeEnvironmentConfiguration<T = any, C extends string = never> extends TreeRenderProps<T, C>, TreeCapabilities<T>, TreeChangeHandlers<T>, ExplicitDataSource<T> { | ||
viewState: TreeViewState<C>; | ||
keyboardBindings?: KeyboardBindings; | ||
@@ -216,3 +221,3 @@ liveDescriptors?: LiveDescriptors; | ||
} | ||
export interface TreeEnvironmentContextProps<T = any> extends Omit<TreeEnvironmentConfiguration<T>, keyof TreeRenderProps>, AllTreeRenderProps<T> { | ||
export interface TreeEnvironmentContextProps<T = any, C extends string = never> extends Omit<TreeEnvironmentConfiguration<T>, keyof TreeRenderProps>, AllTreeRenderProps<T, C> { | ||
registerTree: (tree: TreeConfiguration) => void; | ||
@@ -263,7 +268,7 @@ unregisterTree: (treeId: string) => void; | ||
} | ||
export interface ControlledTreeEnvironmentProps<T = any> extends TreeEnvironmentConfiguration<T> { | ||
export interface ControlledTreeEnvironmentProps<T = any, C extends string = never> extends TreeEnvironmentConfiguration<T, C> { | ||
children?: JSX.Element | JSX.Element[] | null; | ||
} | ||
export interface UncontrolledTreeEnvironmentProps<T = any> extends TreeRenderProps<T>, TreeCapabilities, ImplicitDataSource<T>, TreeChangeHandlers<T> { | ||
viewState: TreeViewState; | ||
export interface UncontrolledTreeEnvironmentProps<T = any, C extends string = never> extends TreeRenderProps<T, C>, TreeCapabilities, ImplicitDataSource<T>, TreeChangeHandlers<T> { | ||
viewState: TreeViewState<C>; | ||
keyboardBindings?: KeyboardBindings; | ||
@@ -280,3 +285,3 @@ liveDescriptors?: LiveDescriptors; | ||
} | ||
export interface TreeProps<T = any> extends TreeConfiguration, Partial<TreeRenderProps<T>> { | ||
export interface TreeProps<T = any, C extends string = never> extends TreeConfiguration, Partial<TreeRenderProps<T, C>> { | ||
} | ||
@@ -283,0 +288,0 @@ export interface TreeContextProps extends TreeConfiguration { |
import * as React from 'react'; | ||
import { TreeEnvironmentRef, UncontrolledTreeEnvironmentProps } from '../types'; | ||
export declare const UncontrolledTreeEnvironment: <T = any>(p: UncontrolledTreeEnvironmentProps<T> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T>> | undefined; | ||
export declare const UncontrolledTreeEnvironment: <T = any, C extends string = never>(p: UncontrolledTreeEnvironmentProps<T, C> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T, C>> | undefined; | ||
}) => React.ReactElement; |
import * as React from 'react'; | ||
import { ControlledTreeEnvironmentProps, TreeEnvironmentContextProps, TreeEnvironmentRef } from '../types'; | ||
export declare const useTreeEnvironment: () => TreeEnvironmentContextProps<any>; | ||
export declare const ControlledTreeEnvironment: <T = any>(p: ControlledTreeEnvironmentProps<T> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T>> | undefined; | ||
export declare const useTreeEnvironment: () => TreeEnvironmentContextProps<any, never>; | ||
export declare const ControlledTreeEnvironment: <T = any, C extends string = never>(p: ControlledTreeEnvironmentProps<T, C> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T, C>> | undefined; | ||
}) => React.ReactElement; |
import * as React from 'react'; | ||
import { InteractionManager } from '../types'; | ||
export declare const useInteractionManager: () => InteractionManager; | ||
export declare const useInteractionManager: () => InteractionManager<any>; | ||
export declare const InteractionManagerProvider: React.FC; |
import * as React from 'react'; | ||
import { TreeEnvironmentRef } from '../types'; | ||
export declare const useEnvironmentActions: () => import("../types").TreeEnvironmentChangeActions; | ||
export declare const EnvironmentActionsProvider: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<Record<string, unknown>>, string> & React.RefAttributes<TreeEnvironmentRef<any>>>; | ||
export declare const EnvironmentActionsProvider: React.ForwardRefExoticComponent<Pick<React.PropsWithChildren<Record<string, unknown>>, string> & React.RefAttributes<TreeEnvironmentRef<any, never>>>; |
import { TreeRenderProps } from '../types'; | ||
export declare const useRenderers: ({ renderItem, renderItemTitle, renderItemArrow, renderRenameInput, renderDraggingItem, renderDraggingItemTitle, renderItemsContainer, renderTreeContainer, renderDragBetweenLine, renderSearchInput, renderLiveDescriptorContainer, renderDepthOffset, }: TreeRenderProps) => Required<TreeRenderProps<any>>; | ||
export declare const useRenderers: ({ renderItem, renderItemTitle, renderItemArrow, renderRenameInput, renderDraggingItem, renderDraggingItemTitle, renderItemsContainer, renderTreeContainer, renderDragBetweenLine, renderSearchInput, renderLiveDescriptorContainer, renderDepthOffset, }: TreeRenderProps) => Required<TreeRenderProps<any, never>>; |
import { IndividualTreeViewState, LinearItem, TreeItem, TreeItemIndex } from '../types'; | ||
export declare const getItemsLinearly: <T>(rootItem: TreeItemIndex, viewState: IndividualTreeViewState, items: Record<TreeItemIndex, TreeItem<T>>, depth?: number) => LinearItem[]; | ||
export declare const getItemsLinearly: <T, C extends string>(rootItem: TreeItemIndex, viewState: IndividualTreeViewState<C>, items: Record<TreeItemIndex, TreeItem<T>>, depth?: number) => LinearItem[]; |
import * as React from 'react'; | ||
import { TreeContextProps, TreeProps, TreeRef } from '../types'; | ||
export declare const useTree: () => TreeContextProps; | ||
export declare const Tree: <T = any>(p: TreeProps<T> & { | ||
export declare const Tree: <T = any>(p: TreeProps<T, never> & { | ||
ref?: React.Ref<TreeRef<T>> | undefined; | ||
}) => React.ReactElement; |
@@ -1,1 +0,1 @@ | ||
export declare const useViewState: () => import("..").IndividualTreeViewState; | ||
export declare const useViewState: () => import("..").IndividualTreeViewState<never>; |
@@ -8,2 +8,5 @@ import { TreeItem } from '../types'; | ||
arrowProps: HTMLProps<HTMLElement>; | ||
viewStateFlags: { | ||
[key: string]: boolean; | ||
}; | ||
isSelected?: boolean | undefined; | ||
@@ -10,0 +13,0 @@ isExpanded?: boolean | undefined; |
@@ -161,6 +161,14 @@ var __assign = (this && this.__assign) || function () { | ||
}; | ||
var viewStateFlags = !viewState | ||
? {} | ||
: Object.entries(viewState).reduce(function (acc, _a) { | ||
var key = _a[0], value = _a[1]; | ||
acc[key] = Array.isArray(value) ? value.includes(item.index) : value === item.index; | ||
return acc; | ||
}, {}); | ||
return __assign(__assign(__assign({}, actions), renderFlags), { interactiveElementProps: interactiveElementProps, | ||
itemContainerWithChildrenProps: itemContainerWithChildrenProps, | ||
itemContainerWithoutChildrenProps: itemContainerWithoutChildrenProps, | ||
arrowProps: arrowProps }); | ||
arrowProps: arrowProps, | ||
viewStateFlags: viewStateFlags }); | ||
}, [ | ||
@@ -167,0 +175,0 @@ item, |
@@ -43,3 +43,3 @@ import React, { FormHTMLAttributes, HTMLProps, InputHTMLAttributes, Ref } from 'react'; | ||
} | ||
export interface TreeItemRenderContext extends TreeItemActions, TreeItemRenderFlags { | ||
export interface TreeItemRenderContext<C extends string = never> extends TreeItemActions, TreeItemRenderFlags { | ||
interactiveElementProps: HTMLProps<any>; | ||
@@ -49,2 +49,5 @@ itemContainerWithoutChildrenProps: HTMLProps<any>; | ||
arrowProps: HTMLProps<any>; | ||
viewStateFlags: { | ||
[collection in C]: boolean; | ||
}; | ||
} | ||
@@ -59,3 +62,3 @@ export interface TreeInformation extends TreeConfiguration { | ||
} | ||
export interface TreeRenderProps<T = any> { | ||
export interface TreeRenderProps<T = any, C extends string = never> { | ||
renderItem?: (props: { | ||
@@ -67,3 +70,3 @@ item: TreeItem<T>; | ||
arrow: React.ReactNode; | ||
context: TreeItemRenderContext; | ||
context: TreeItemRenderContext<C>; | ||
info: TreeInformation; | ||
@@ -74,3 +77,3 @@ }) => React.ReactElement | null; | ||
item: TreeItem<T>; | ||
context: TreeItemRenderContext; | ||
context: TreeItemRenderContext<C>; | ||
info: TreeInformation; | ||
@@ -80,3 +83,3 @@ }) => React.ReactElement | null | string; | ||
item: TreeItem<T>; | ||
context: TreeItemRenderContext; | ||
context: TreeItemRenderContext<C>; | ||
info: TreeInformation; | ||
@@ -121,3 +124,3 @@ }) => React.ReactElement | null; | ||
} | ||
export declare type AllTreeRenderProps<T = any> = Required<TreeRenderProps<T>>; | ||
export declare type AllTreeRenderProps<T = any, C extends string = never> = Required<TreeRenderProps<T, C>>; | ||
export declare enum InteractionMode { | ||
@@ -128,3 +131,3 @@ DoubleClickItemToExpand = "double-click-item-to-expand", | ||
} | ||
export interface InteractionManager { | ||
export interface InteractionManager<C extends string = never> { | ||
mode: InteractionMode | string; | ||
@@ -134,6 +137,6 @@ extends?: InteractionMode; | ||
/** See https://github.com/lukasbach/react-complex-tree/issues/48 */ | ||
__unsafeViewState?: IndividualTreeViewState) => HTMLProps<HTMLElement>; | ||
__unsafeViewState?: IndividualTreeViewState<C>) => HTMLProps<HTMLElement>; | ||
} | ||
export interface TreeCapabilities<T = any> { | ||
defaultInteractionMode?: InteractionMode | InteractionManager; | ||
export interface TreeCapabilities<T = any, C extends string = never> { | ||
defaultInteractionMode?: InteractionMode | InteractionManager<C>; | ||
canDragAndDrop?: boolean; | ||
@@ -153,3 +156,3 @@ canDropOnItemWithChildren?: boolean; | ||
} | ||
export interface IndividualTreeViewState { | ||
export declare type IndividualTreeViewState<C extends string> = { | ||
selectedItems?: TreeItemIndex[]; | ||
@@ -159,6 +162,8 @@ expandedItems?: TreeItemIndex[]; | ||
focusedItem?: TreeItemIndex; | ||
} & { | ||
[c in C]: TreeItemIndex | TreeItemIndex[] | undefined; | ||
}; | ||
export interface TreeViewState<C extends string> { | ||
[treeId: string]: IndividualTreeViewState<C> | undefined; | ||
} | ||
export interface TreeViewState { | ||
[treeId: string]: IndividualTreeViewState | undefined; | ||
} | ||
export interface ExplicitDataSource<T = any> { | ||
@@ -205,8 +210,8 @@ items: Record<TreeItemIndex, TreeItem<T>>; | ||
export declare type TreeEnvironmentActionsContextProps = TreeEnvironmentChangeActions; | ||
export interface TreeEnvironmentRef<T = any> extends TreeEnvironmentChangeActions, Omit<TreeEnvironmentConfiguration<T>, keyof TreeChangeHandlers> { | ||
export interface TreeEnvironmentRef<T = any, C extends string = never> extends TreeEnvironmentChangeActions, Omit<TreeEnvironmentConfiguration<T, C>, keyof TreeChangeHandlers> { | ||
treeEnvironmentContext: TreeEnvironmentContextProps; | ||
dragAndDropContext: DragAndDropContextProps; | ||
} | ||
export interface TreeEnvironmentConfiguration<T = any> extends TreeRenderProps<T>, TreeCapabilities<T>, TreeChangeHandlers<T>, ExplicitDataSource<T> { | ||
viewState: TreeViewState; | ||
export interface TreeEnvironmentConfiguration<T = any, C extends string = never> extends TreeRenderProps<T, C>, TreeCapabilities<T>, TreeChangeHandlers<T>, ExplicitDataSource<T> { | ||
viewState: TreeViewState<C>; | ||
keyboardBindings?: KeyboardBindings; | ||
@@ -216,3 +221,3 @@ liveDescriptors?: LiveDescriptors; | ||
} | ||
export interface TreeEnvironmentContextProps<T = any> extends Omit<TreeEnvironmentConfiguration<T>, keyof TreeRenderProps>, AllTreeRenderProps<T> { | ||
export interface TreeEnvironmentContextProps<T = any, C extends string = never> extends Omit<TreeEnvironmentConfiguration<T>, keyof TreeRenderProps>, AllTreeRenderProps<T, C> { | ||
registerTree: (tree: TreeConfiguration) => void; | ||
@@ -263,7 +268,7 @@ unregisterTree: (treeId: string) => void; | ||
} | ||
export interface ControlledTreeEnvironmentProps<T = any> extends TreeEnvironmentConfiguration<T> { | ||
export interface ControlledTreeEnvironmentProps<T = any, C extends string = never> extends TreeEnvironmentConfiguration<T, C> { | ||
children?: JSX.Element | JSX.Element[] | null; | ||
} | ||
export interface UncontrolledTreeEnvironmentProps<T = any> extends TreeRenderProps<T>, TreeCapabilities, ImplicitDataSource<T>, TreeChangeHandlers<T> { | ||
viewState: TreeViewState; | ||
export interface UncontrolledTreeEnvironmentProps<T = any, C extends string = never> extends TreeRenderProps<T, C>, TreeCapabilities, ImplicitDataSource<T>, TreeChangeHandlers<T> { | ||
viewState: TreeViewState<C>; | ||
keyboardBindings?: KeyboardBindings; | ||
@@ -280,3 +285,3 @@ liveDescriptors?: LiveDescriptors; | ||
} | ||
export interface TreeProps<T = any> extends TreeConfiguration, Partial<TreeRenderProps<T>> { | ||
export interface TreeProps<T = any, C extends string = never> extends TreeConfiguration, Partial<TreeRenderProps<T, C>> { | ||
} | ||
@@ -283,0 +288,0 @@ export interface TreeContextProps extends TreeConfiguration { |
import * as React from 'react'; | ||
import { TreeEnvironmentRef, UncontrolledTreeEnvironmentProps } from '../types'; | ||
export declare const UncontrolledTreeEnvironment: <T = any>(p: UncontrolledTreeEnvironmentProps<T> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T>> | undefined; | ||
export declare const UncontrolledTreeEnvironment: <T = any, C extends string = never>(p: UncontrolledTreeEnvironmentProps<T, C> & { | ||
ref?: React.Ref<TreeEnvironmentRef<T, C>> | undefined; | ||
}) => React.ReactElement; |
{ | ||
"name": "react-complex-tree", | ||
"version": "1.1.5", | ||
"version": "1.1.6", | ||
"main": "lib/cjs/index.js", | ||
@@ -57,3 +57,3 @@ "module": "lib/esm/index.js", | ||
}, | ||
"gitHead": "a6aa58f9392ac659b04c275a8e00af9a63df7328" | ||
"gitHead": "beab519f98052e6afa17fd931ba6f822d3f2fc86" | ||
} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
971464
11406