diff --git a/packages/devextreme-angular/src/ui/tree-view/index.ts b/packages/devextreme-angular/src/ui/tree-view/index.ts index 1531af369808..21dc9c2e8313 100644 --- a/packages/devextreme-angular/src/ui/tree-view/index.ts +++ b/packages/devextreme-angular/src/ui/tree-view/index.ts @@ -75,8 +75,8 @@ import { DxiTreeViewItemComponent } from 'devextreme-angular/ui/tree-view/nested IterableDifferHelper ] }) -export class DxTreeViewComponent extends DxComponent implements OnDestroy, OnChanges, DoCheck { - instance: DxTreeView = null; +export class DxTreeViewComponent extends DxComponent implements OnDestroy, OnChanges, DoCheck { + instance: DxTreeView = null; /** * [descr:WidgetOptions.accessKey] diff --git a/packages/devextreme-react/src/tree-view.ts b/packages/devextreme-react/src/tree-view.ts index dc532165d7f7..d054114c652c 100644 --- a/packages/devextreme-react/src/tree-view.ts +++ b/packages/devextreme-react/src/tree-view.ts @@ -19,34 +19,34 @@ type ReplaceFieldTypes = { [P in keyof TSource]: P extends keyof TReplacement ? TReplacement[P] : TSource[P]; } -type ITreeViewOptionsNarrowedEvents = { - onContentReady?: ((e: ContentReadyEvent) => void); - onDisposing?: ((e: DisposingEvent) => void); - onInitialized?: ((e: InitializedEvent) => void); - onItemClick?: ((e: ItemClickEvent) => void); - onItemCollapsed?: ((e: ItemCollapsedEvent) => void); - onItemContextMenu?: ((e: ItemContextMenuEvent) => void); - onItemExpanded?: ((e: ItemExpandedEvent) => void); - onItemHold?: ((e: ItemHoldEvent) => void); - onItemRendered?: ((e: ItemRenderedEvent) => void); - onSelectAllValueChanged?: ((e: SelectAllValueChangedEvent) => void); +type ITreeViewOptionsNarrowedEvents = { + onContentReady?: ((e: ContentReadyEvent) => void); + onDisposing?: ((e: DisposingEvent) => void); + onInitialized?: ((e: InitializedEvent) => void); + onItemClick?: ((e: ItemClickEvent) => void); + onItemCollapsed?: ((e: ItemCollapsedEvent) => void); + onItemContextMenu?: ((e: ItemContextMenuEvent) => void); + onItemExpanded?: ((e: ItemExpandedEvent) => void); + onItemHold?: ((e: ItemHoldEvent) => void); + onItemRendered?: ((e: ItemRenderedEvent) => void); + onSelectAllValueChanged?: ((e: SelectAllValueChangedEvent) => void); } -type ITreeViewOptions = React.PropsWithChildren, ITreeViewOptionsNarrowedEvents> & IHtmlOptions & { - dataSource?: Properties["dataSource"]; +type ITreeViewOptions = React.PropsWithChildren, ITreeViewOptionsNarrowedEvents> & IHtmlOptions & { + dataSource?: Properties["dataSource"]; itemRender?: (...params: any) => React.ReactNode; itemComponent?: React.ComponentType; defaultItems?: Array; onItemsChange?: (value: Array) => void; }> -interface TreeViewRef { - instance: () => dxTreeView; +interface TreeViewRef { + instance: () => dxTreeView; } const TreeView = memo( forwardRef( - (props: React.PropsWithChildren>, ref: ForwardedRef>) => { + (props: React.PropsWithChildren>, ref: ForwardedRef>) => { const baseRef = useRef(null); useImperativeHandle(ref, () => ( @@ -78,7 +78,7 @@ const TreeView = memo( ]), []); return ( - React.createElement(BaseComponent>>, { + React.createElement(BaseComponent>>, { WidgetClass: dxTreeView, ref: baseRef, subscribableOptions, @@ -91,7 +91,7 @@ const TreeView = memo( ); }, ), -) as (props: React.PropsWithChildren> & { ref?: Ref> }) => ReactElement | null; +) as (props: React.PropsWithChildren> & { ref?: Ref> }) => ReactElement | null; // owners: diff --git a/packages/devextreme/js/__internal/grids/new/grid_core/inferno_wrappers/tree_view.ts b/packages/devextreme/js/__internal/grids/new/grid_core/inferno_wrappers/tree_view.ts index 508677403c4c..180abc9bb0f9 100644 --- a/packages/devextreme/js/__internal/grids/new/grid_core/inferno_wrappers/tree_view.ts +++ b/packages/devextreme/js/__internal/grids/new/grid_core/inferno_wrappers/tree_view.ts @@ -4,7 +4,12 @@ import dxTreeView from '@js/ui/tree_view'; import { InfernoWrapper } from './widget_wrapper'; -export class TreeView extends InfernoWrapper { +export class TreeView< + TItem extends TreeViewItemProperties = TreeViewItemProperties, +> extends InfernoWrapper< + TreeViewProperties, + dxTreeView +> { protected getComponentFabric(): typeof dxTreeView { return dxTreeView; } @@ -29,15 +34,15 @@ export class TreeView extends InfernoWrapper { prevProps: TreeViewProperties, props: TreeViewProperties, ): boolean { - const oldItems = (prevProps.items ?? []).map(({ selected, ...restProps }) => restProps); - const newItems = (props.items ?? []).map(({ selected, ...restProps }) => restProps); + const oldItems = (prevProps.items ?? []).map(({ selected, ...restProps }: TItem) => restProps); + const newItems = (props.items ?? []).map(({ selected, ...restProps }: TItem) => restProps); const onlySelectionChanged = equalByValue(oldItems, newItems); return onlySelectionChanged; } - private updateSelection(items: TreeViewItemProperties[]): void { + private updateSelection(items: TItem[]): void { const treeView = this.component; if (!treeView) { diff --git a/packages/devextreme/js/ui/tree_view.d.ts b/packages/devextreme/js/ui/tree_view.d.ts index 42b837686222..9d5f26b45d9c 100644 --- a/packages/devextreme/js/ui/tree_view.d.ts +++ b/packages/devextreme/js/ui/tree_view.d.ts @@ -34,16 +34,18 @@ import { import dxScrollable from './scroll_view/ui.scrollable'; +type ItemLike = string | Item | any; + /** * @docid _ui_tree_view_ItemInfo * @hidden */ -export interface ItemInfo { +export interface ItemInfo { /** * @docid _ui_tree_view_ItemInfo.itemData * @type object */ - readonly itemData?: Item; + readonly itemData?: TItem; /** @docid _ui_tree_view_ItemInfo.itemElement */ readonly itemElement?: DxElement; /** @docid _ui_tree_view_ItemInfo.itemIndex */ @@ -52,7 +54,7 @@ export interface ItemInfo { * @docid _ui_tree_view_ItemInfo.node * @type dxTreeViewNode */ - readonly node?: Node; + readonly node?: Node; } export { @@ -72,7 +74,7 @@ export type TreeViewExpandEvent = 'dblclick' | 'click'; * @type object * @inherits EventInfo */ -export type ContentReadyEvent = EventInfo>; +export type ContentReadyEvent = EventInfo>; /** * @docid _ui_tree_view_DisposingEvent @@ -80,7 +82,7 @@ export type ContentReadyEvent = EventInfo>; * @type object * @inherits EventInfo */ -export type DisposingEvent = EventInfo>; +export type DisposingEvent = EventInfo>; /** * @docid _ui_tree_view_InitializedEvent @@ -88,7 +90,7 @@ export type DisposingEvent = EventInfo>; * @type object * @inherits InitializedEventInfo */ -export type InitializedEvent = InitializedEventInfo>; +export type InitializedEvent = InitializedEventInfo>; /** * @docid _ui_tree_view_ItemClickEvent @@ -96,7 +98,7 @@ export type InitializedEvent = InitializedEventInfo * @type object * @inherits NativeEventInfo,_ui_tree_view_ItemInfo */ -export type ItemClickEvent = NativeEventInfo, KeyboardEvent | MouseEvent | PointerEvent> & ItemInfo; +export type ItemClickEvent = NativeEventInfo, KeyboardEvent | MouseEvent | PointerEvent> & ItemInfo; /** * @docid _ui_tree_view_ItemCollapsedEvent @@ -104,7 +106,7 @@ export type ItemClickEvent = NativeEventInfo, Keybo * @type object * @inherits NativeEventInfo,_ui_tree_view_ItemInfo */ -export type ItemCollapsedEvent = NativeEventInfo, MouseEvent | PointerEvent> & ItemInfo; +export type ItemCollapsedEvent = NativeEventInfo, MouseEvent | PointerEvent> & ItemInfo; /** * @docid _ui_tree_view_ItemContextMenuEvent @@ -112,7 +114,7 @@ export type ItemCollapsedEvent = NativeEventInfo, M * @type object * @inherits NativeEventInfo,_ui_tree_view_ItemInfo */ -export type ItemContextMenuEvent = NativeEventInfo, MouseEvent | PointerEvent | TouchEvent> & ItemInfo; +export type ItemContextMenuEvent = NativeEventInfo, MouseEvent | PointerEvent | TouchEvent> & ItemInfo; /** * @docid _ui_tree_view_ItemExpandedEvent @@ -120,7 +122,7 @@ export type ItemContextMenuEvent = NativeEventInfo, * @type object * @inherits NativeEventInfo,_ui_tree_view_ItemInfo */ -export type ItemExpandedEvent = NativeEventInfo, MouseEvent | PointerEvent> & ItemInfo; +export type ItemExpandedEvent = NativeEventInfo, MouseEvent | PointerEvent> & ItemInfo; /** * @docid _ui_tree_view_ItemHoldEvent @@ -128,7 +130,7 @@ export type ItemExpandedEvent = NativeEventInfo, Mo * @type object * @inherits NativeEventInfo,_ui_tree_view_ItemInfo */ -export type ItemHoldEvent = NativeEventInfo, MouseEvent | PointerEvent | TouchEvent> & ItemInfo; +export type ItemHoldEvent = NativeEventInfo, MouseEvent | PointerEvent | TouchEvent> & ItemInfo; /** * @docid _ui_tree_view_ItemRenderedEvent @@ -136,7 +138,7 @@ export type ItemHoldEvent = NativeEventInfo, MouseE * @type object * @inherits EventInfo,_ui_tree_view_ItemInfo */ -export type ItemRenderedEvent = EventInfo> & ItemInfo; +export type ItemRenderedEvent = EventInfo> & ItemInfo; /** * @docid _ui_tree_view_ItemSelectionChangedEvent @@ -144,7 +146,7 @@ export type ItemRenderedEvent = EventInfo> & ItemIn * @type object * @inherits EventInfo,_ui_tree_view_ItemInfo */ -export type ItemSelectionChangedEvent = EventInfo> & ItemInfo; +export type ItemSelectionChangedEvent = EventInfo> & ItemInfo; /** * @docid _ui_tree_view_OptionChangedEvent @@ -152,7 +154,7 @@ export type ItemSelectionChangedEvent = EventInfo> * @type object * @inherits EventInfo,ChangedOptionInfo */ -export type OptionChangedEvent = EventInfo> & ChangedOptionInfo; +export type OptionChangedEvent = EventInfo> & ChangedOptionInfo; /** * @docid _ui_tree_view_SelectAllValueChangedEvent @@ -160,7 +162,7 @@ export type OptionChangedEvent = EventInfo> & Chang * @type object * @inherits EventInfo */ -export type SelectAllValueChangedEvent = EventInfo> & { +export type SelectAllValueChangedEvent = EventInfo> & { /** @docid _ui_tree_view_SelectAllValueChangedEvent.value */ readonly value?: boolean | undefined; }; @@ -171,7 +173,7 @@ export type SelectAllValueChangedEvent = EventInfo> * @type object * @inherits EventInfo */ -export type SelectionChangedEvent = EventInfo>; +export type SelectionChangedEvent = EventInfo>; /** * @deprecated use Properties instead @@ -179,8 +181,8 @@ export type SelectionChangedEvent = EventInfo>; * @public * @docid */ -export interface dxTreeViewOptions - extends Omit, dxTreeViewItem, TKey>, 'dataSource'>, SearchBoxMixinOptions { +export interface dxTreeViewOptions + extends Omit, TItem, TKey>, 'dataSource'>, SearchBoxMixinOptions { /** * @docid * @default true @@ -193,14 +195,14 @@ export interface dxTreeViewOptions * @type_function_return Promise|Array * @public */ - createChildren?: ((parentNode: Node) => PromiseLike | Array); + createChildren?: ((parentNode: Node) => PromiseLike | Array); /** * @docid * @type string | Array | Store | DataSource | DataSourceOptions | null * @default null * @public */ - dataSource?: DataSourceLike | null; + dataSource?: DataSourceLike | null; /** * @docid * @default 'tree' @@ -243,7 +245,7 @@ export interface dxTreeViewOptions * @type Array * @public */ - items?: Array; + items?: Array; /** * @docid * @default null @@ -252,7 +254,7 @@ export interface dxTreeViewOptions * @action * @public */ - onItemClick?: ((e: ItemClickEvent) => void); + onItemClick?: ((e: ItemClickEvent) => void); /** * @docid * @default null @@ -260,7 +262,7 @@ export interface dxTreeViewOptions * @action * @public */ - onItemCollapsed?: ((e: ItemCollapsedEvent) => void); + onItemCollapsed?: ((e: ItemCollapsedEvent) => void); /** * @docid * @default null @@ -268,7 +270,7 @@ export interface dxTreeViewOptions * @action * @public */ - onItemContextMenu?: ((e: ItemContextMenuEvent) => void); + onItemContextMenu?: ((e: ItemContextMenuEvent) => void); /** * @docid * @default null @@ -276,7 +278,7 @@ export interface dxTreeViewOptions * @action * @public */ - onItemExpanded?: ((e: ItemExpandedEvent) => void); + onItemExpanded?: ((e: ItemExpandedEvent) => void); /** * @docid * @default null @@ -284,7 +286,7 @@ export interface dxTreeViewOptions * @action * @public */ - onItemHold?: ((e: ItemHoldEvent) => void); + onItemHold?: ((e: ItemHoldEvent) => void); /** * @docid * @default null @@ -292,7 +294,7 @@ export interface dxTreeViewOptions * @action * @public */ - onItemRendered?: ((e: ItemRenderedEvent) => void); + onItemRendered?: ((e: ItemRenderedEvent) => void); /** * @docid * @default null @@ -300,7 +302,7 @@ export interface dxTreeViewOptions * @action * @public */ - onItemSelectionChanged?: ((e: ItemSelectionChangedEvent) => void); + onItemSelectionChanged?: ((e: ItemSelectionChangedEvent) => void); /** * @docid * @default null @@ -308,7 +310,7 @@ export interface dxTreeViewOptions * @action * @public */ - onSelectAllValueChanged?: ((e: SelectAllValueChangedEvent) => void); + onSelectAllValueChanged?: ((e: SelectAllValueChangedEvent) => void); /** * @docid * @default null @@ -317,7 +319,7 @@ export interface dxTreeViewOptions * @public * @override */ - onSelectionChanged?: ((e: SelectionChangedEvent) => void); + onSelectionChanged?: ((e: SelectionChangedEvent) => void); /** * @docid * @default 'parentId' @@ -399,8 +401,8 @@ export interface dxTreeViewOptions * @namespace DevExpress.ui * @public */ -export default class dxTreeView - extends HierarchicalCollectionWidget, dxTreeViewItem, TKey> { +export default class dxTreeView + extends HierarchicalCollectionWidget, TItem, TKey> { /** * @docid * @publicName collapseAll() @@ -411,11 +413,10 @@ export default class dxTreeView * @docid * @publicName collapseItem(itemData) * @param1 itemData:dxTreeViewItem - * @param1_field items:Array * @return Promise * @public */ - collapseItem(itemData: Item): DxPromise; + collapseItem(itemData: TItem): DxPromise; /** * @docid * @publicName collapseItem(itemElement) @@ -440,11 +441,10 @@ export default class dxTreeView * @docid * @publicName expandItem(itemData) * @param1 itemData:dxTreeViewItem - * @param1_field items:Array * @return Promise * @public */ - expandItem(itemData: Item): DxPromise; + expandItem(itemData: TItem): DxPromise; /** * @docid * @publicName expandItem(itemElement) @@ -465,14 +465,14 @@ export default class dxTreeView * @public * @return Array */ - getNodes(): Array>; + getNodes(): Array>; /** * @docid * @publicName getSelectedNodes() * @public * @return Array */ - getSelectedNodes(): Array>; + getSelectedNodes(): Array>; /** * @docid * @publicName getSelectedNodeKeys() @@ -496,10 +496,9 @@ export default class dxTreeView * @docid * @publicName selectItem(itemData) * @param1 itemData:dxTreeViewItem - * @param1_field items:Array * @public */ - selectItem(itemData: Item): boolean; + selectItem(itemData: TItem): boolean; /** * @docid * @publicName selectItem(itemElement) @@ -522,10 +521,9 @@ export default class dxTreeView * @docid * @publicName unselectItem(itemData) * @param1 itemData:dxTreeViewItem - * @param1_field items:Array * @public */ - unselectItem(itemData: Item): boolean; + unselectItem(itemData: TItem): boolean; /** * @docid * @publicName unselectItem(itemElement) @@ -549,11 +547,10 @@ export default class dxTreeView * @docid * @publicName scrollToItem(itemData) * @param1 itemData:dxTreeViewItem - * @param1_field items:Array * @return Promise * @public */ - scrollToItem(itemData: Item): DxPromise; + scrollToItem(itemData: TItem): DxPromise; /** * @docid * @publicName scrollToItem(itemElement) @@ -621,8 +618,6 @@ export interface dxTreeViewItem extends CollectionWidgetItem { * @public */ selected?: boolean; - - [key: string]: any; } /** @@ -630,7 +625,7 @@ export interface dxTreeViewItem extends CollectionWidgetItem { * @docid dxTreeViewNode * @type object */ -export type Node = dxTreeViewNode; +export type Node = dxTreeViewNode; /** * @docid @@ -638,13 +633,13 @@ export type Node = dxTreeViewNode; * @type object * @namespace DevExpress.ui */ -export interface dxTreeViewNode { +export interface dxTreeViewNode { /** * @docid * @public * @type Array; */ - children?: Array>; + children?: Array>; /** * @docid * @public @@ -660,7 +655,7 @@ export interface dxTreeViewNode { * @public * @type dxTreeViewItem */ - itemData?: Item; + itemData?: TItem; /** * @docid * @public @@ -671,7 +666,7 @@ export interface dxTreeViewNode { * @public * @type dxTreeViewNode */ - parent?: dxTreeViewNode; + parent?: dxTreeViewNode; /** * @docid * @public @@ -688,29 +683,29 @@ export interface dxTreeViewNode { export type Scrollable = Omit; /** @public */ -export type ExplicitTypes = { - Properties: Properties; - Node: Node; - ContentReadyEvent: ContentReadyEvent; - DisposingEvent: DisposingEvent; - InitializedEvent: InitializedEvent; - ItemClickEvent: ItemClickEvent; - ItemCollapsedEvent: ItemCollapsedEvent; - ItemContextMenuEvent: ItemContextMenuEvent; - ItemExpandedEvent: ItemExpandedEvent; - ItemHoldEvent: ItemHoldEvent; - ItemRenderedEvent: ItemRenderedEvent; - ItemSelectionChangedEvent: ItemSelectionChangedEvent; - OptionChangedEvent: OptionChangedEvent; - SelectAllValueChangedEvent: SelectAllValueChangedEvent; - SelectionChangedEvent: SelectionChangedEvent; +export type ExplicitTypes = { + Properties: Properties; + Node: Node; + ContentReadyEvent: ContentReadyEvent; + DisposingEvent: DisposingEvent; + InitializedEvent: InitializedEvent; + ItemClickEvent: ItemClickEvent; + ItemCollapsedEvent: ItemCollapsedEvent; + ItemContextMenuEvent: ItemContextMenuEvent; + ItemExpandedEvent: ItemExpandedEvent; + ItemHoldEvent: ItemHoldEvent; + ItemRenderedEvent: ItemRenderedEvent; + ItemSelectionChangedEvent: ItemSelectionChangedEvent; + OptionChangedEvent: OptionChangedEvent; + SelectAllValueChangedEvent: SelectAllValueChangedEvent; + SelectionChangedEvent: SelectionChangedEvent; }; /** @public */ -export type Properties = dxTreeViewOptions; +export type Properties = dxTreeViewOptions; /** @deprecated use Properties instead */ -export type Options = Properties; +export type Options = Properties; /// #DEBUG // eslint-disable-next-line import/first diff --git a/packages/devextreme/ts/dx.all.d.ts b/packages/devextreme/ts/dx.all.d.ts index 16c4b9cff3c0..1aa640d702b7 100644 --- a/packages/devextreme/ts/dx.all.d.ts +++ b/packages/devextreme/ts/dx.all.d.ts @@ -31550,9 +31550,12 @@ declare module DevExpress.ui { /** * [descr:dxTreeView] */ - export class dxTreeView extends HierarchicalCollectionWidget< - dxTreeViewOptions, - dxTreeViewItem, + export class dxTreeView< + TItem extends DevExpress.ui.dxTreeView.ItemLike = any, + TKey = any + > extends HierarchicalCollectionWidget< + dxTreeViewOptions, + TItem, TKey > { /** @@ -31562,9 +31565,7 @@ declare module DevExpress.ui { /** * [descr:dxTreeView.collapseItem(itemData)] */ - collapseItem( - itemData: DevExpress.ui.dxTreeView.Item - ): DevExpress.core.utils.DxPromise; + collapseItem(itemData: TItem): DevExpress.core.utils.DxPromise; /** * [descr:dxTreeView.collapseItem(itemElement)] */ @@ -31580,9 +31581,7 @@ declare module DevExpress.ui { /** * [descr:dxTreeView.expandItem(itemData)] */ - expandItem( - itemData: DevExpress.ui.dxTreeView.Item - ): DevExpress.core.utils.DxPromise; + expandItem(itemData: TItem): DevExpress.core.utils.DxPromise; /** * [descr:dxTreeView.expandItem(itemElement)] */ @@ -31594,11 +31593,11 @@ declare module DevExpress.ui { /** * [descr:dxTreeView.getNodes()] */ - getNodes(): Array>; + getNodes(): Array>; /** * [descr:dxTreeView.getSelectedNodes()] */ - getSelectedNodes(): Array>; + getSelectedNodes(): Array>; /** * [descr:dxTreeView.getSelectedNodeKeys()] */ @@ -31614,7 +31613,7 @@ declare module DevExpress.ui { /** * [descr:dxTreeView.selectItem(itemData)] */ - selectItem(itemData: DevExpress.ui.dxTreeView.Item): boolean; + selectItem(itemData: TItem): boolean; /** * [descr:dxTreeView.selectItem(itemElement)] */ @@ -31630,7 +31629,7 @@ declare module DevExpress.ui { /** * [descr:dxTreeView.unselectItem(itemData)] */ - unselectItem(itemData: DevExpress.ui.dxTreeView.Item): boolean; + unselectItem(itemData: TItem): boolean; /** * [descr:dxTreeView.unselectItem(itemElement)] */ @@ -31646,9 +31645,7 @@ declare module DevExpress.ui { /** * [descr:dxTreeView.scrollToItem(itemData)] */ - scrollToItem( - itemData: DevExpress.ui.dxTreeView.Item - ): DevExpress.core.utils.DxPromise; + scrollToItem(itemData: TItem): DevExpress.core.utils.DxPromise; /** * [descr:dxTreeView.scrollToItem(itemElement)] */ @@ -31662,89 +31659,107 @@ declare module DevExpress.ui { /** * [descr:_ui_tree_view_ContentReadyEvent] */ - export type ContentReadyEvent = - DevExpress.common.core.events.EventInfo>; + export type ContentReadyEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.EventInfo>; /** * [descr:_ui_tree_view_DisposingEvent] */ - export type DisposingEvent = - DevExpress.common.core.events.EventInfo>; - export type ExplicitTypes = { - Properties: Properties; - Node: Node; - ContentReadyEvent: ContentReadyEvent; - DisposingEvent: DisposingEvent; - InitializedEvent: InitializedEvent; - ItemClickEvent: ItemClickEvent; - ItemCollapsedEvent: ItemCollapsedEvent; - ItemContextMenuEvent: ItemContextMenuEvent; - ItemExpandedEvent: ItemExpandedEvent; - ItemHoldEvent: ItemHoldEvent; - ItemRenderedEvent: ItemRenderedEvent; - ItemSelectionChangedEvent: ItemSelectionChangedEvent; - OptionChangedEvent: OptionChangedEvent; - SelectAllValueChangedEvent: SelectAllValueChangedEvent; - SelectionChangedEvent: SelectionChangedEvent; + export type DisposingEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.EventInfo>; + export type ExplicitTypes = { + Properties: Properties; + Node: Node; + ContentReadyEvent: ContentReadyEvent; + DisposingEvent: DisposingEvent; + InitializedEvent: InitializedEvent; + ItemClickEvent: ItemClickEvent; + ItemCollapsedEvent: ItemCollapsedEvent; + ItemContextMenuEvent: ItemContextMenuEvent; + ItemExpandedEvent: ItemExpandedEvent; + ItemHoldEvent: ItemHoldEvent; + ItemRenderedEvent: ItemRenderedEvent; + ItemSelectionChangedEvent: ItemSelectionChangedEvent; + OptionChangedEvent: OptionChangedEvent; + SelectAllValueChangedEvent: SelectAllValueChangedEvent; + SelectionChangedEvent: SelectionChangedEvent; }; /** * [descr:_ui_tree_view_InitializedEvent] */ - export type InitializedEvent = - DevExpress.common.core.events.InitializedEventInfo>; + export type InitializedEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.InitializedEventInfo< + dxTreeView + >; /** * [descr:_ui_tree_view_ItemClickEvent] */ - export type ItemClickEvent = - DevExpress.common.core.events.NativeEventInfo< - dxTreeView, - KeyboardEvent | MouseEvent | PointerEvent - > & - ItemInfo; + export type ItemClickEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.NativeEventInfo< + dxTreeView, + KeyboardEvent | MouseEvent | PointerEvent + > & + ItemInfo; /** * [descr:_ui_tree_view_ItemCollapsedEvent] */ - export type ItemCollapsedEvent = - DevExpress.common.core.events.NativeEventInfo< - dxTreeView, - MouseEvent | PointerEvent - > & - ItemInfo; + export type ItemCollapsedEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.NativeEventInfo< + dxTreeView, + MouseEvent | PointerEvent + > & + ItemInfo; /** * [descr:_ui_tree_view_ItemContextMenuEvent] */ - export type ItemContextMenuEvent = - DevExpress.common.core.events.NativeEventInfo< - dxTreeView, - MouseEvent | PointerEvent | TouchEvent - > & - ItemInfo; + export type ItemContextMenuEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.NativeEventInfo< + dxTreeView, + MouseEvent | PointerEvent | TouchEvent + > & + ItemInfo; /** * [descr:_ui_tree_view_ItemExpandedEvent] */ - export type ItemExpandedEvent = - DevExpress.common.core.events.NativeEventInfo< - dxTreeView, - MouseEvent | PointerEvent - > & - ItemInfo; + export type ItemExpandedEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.NativeEventInfo< + dxTreeView, + MouseEvent | PointerEvent + > & + ItemInfo; /** * [descr:_ui_tree_view_ItemHoldEvent] */ - export type ItemHoldEvent = - DevExpress.common.core.events.NativeEventInfo< - dxTreeView, - MouseEvent | PointerEvent | TouchEvent - > & - ItemInfo; + export type ItemHoldEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.NativeEventInfo< + dxTreeView, + MouseEvent | PointerEvent | TouchEvent + > & + ItemInfo; /** * [descr:_ui_tree_view_ItemInfo] * @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution. */ - export interface ItemInfo { + export interface ItemInfo { /** * [descr:_ui_tree_view_ItemInfo.itemData] */ - readonly itemData?: Item; + readonly itemData?: TItem; /** * [descr:_ui_tree_view_ItemInfo.itemElement] */ @@ -31756,31 +31771,47 @@ declare module DevExpress.ui { /** * [descr:_ui_tree_view_ItemInfo.node] */ - readonly node?: Node; + readonly node?: Node; } + /** + * @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution. + */ + type ItemLike = string | Item | any; /** * [descr:_ui_tree_view_ItemRenderedEvent] */ - export type ItemRenderedEvent = - DevExpress.common.core.events.EventInfo> & - ItemInfo; + export type ItemRenderedEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.EventInfo> & + ItemInfo; /** * [descr:_ui_tree_view_ItemSelectionChangedEvent] */ - export type ItemSelectionChangedEvent = - DevExpress.common.core.events.EventInfo> & - ItemInfo; + export type ItemSelectionChangedEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.EventInfo> & + ItemInfo; /** * [descr:dxTreeViewNode] */ - export type Node = dxTreeViewNode; + export type Node = dxTreeViewNode< + TItem, + TKey + >; /** * [descr:_ui_tree_view_OptionChangedEvent] */ - export type OptionChangedEvent = - DevExpress.common.core.events.EventInfo> & - DevExpress.common.core.events.ChangedOptionInfo; - export type Properties = dxTreeViewOptions; + export type OptionChangedEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.EventInfo> & + DevExpress.common.core.events.ChangedOptionInfo; + export type Properties< + TItem extends ItemLike = any, + TKey = any + > = dxTreeViewOptions; export type Scrollable = Omit< dxScrollable, | '_templateManager' @@ -31794,18 +31825,22 @@ declare module DevExpress.ui { /** * [descr:_ui_tree_view_SelectAllValueChangedEvent] */ - export type SelectAllValueChangedEvent = - DevExpress.common.core.events.EventInfo> & { - /** - * [descr:_ui_tree_view_SelectAllValueChangedEvent.value] - */ - readonly value?: boolean | undefined; - }; + export type SelectAllValueChangedEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.EventInfo> & { + /** + * [descr:_ui_tree_view_SelectAllValueChangedEvent.value] + */ + readonly value?: boolean | undefined; + }; /** * [descr:_ui_tree_view_SelectionChangedEvent] */ - export type SelectionChangedEvent = - DevExpress.common.core.events.EventInfo>; + export type SelectionChangedEvent< + TItem extends ItemLike = any, + TKey = any + > = DevExpress.common.core.events.EventInfo>; export type TreeViewCheckBoxMode = 'none' | 'normal' | 'selectAll'; export type TreeViewExpandEvent = 'dblclick' | 'click'; } @@ -31842,19 +31877,20 @@ declare module DevExpress.ui { * [descr:dxTreeViewItem.selected] */ selected?: boolean; - - [key: string]: any; } /** * [descr:dxTreeViewNode] * @deprecated [depNote:dxTreeViewNode] * @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution. */ - export interface dxTreeViewNode { + export interface dxTreeViewNode< + TItem extends DevExpress.ui.dxTreeView.ItemLike = any, + TKey = any + > { /** * [descr:dxTreeViewNode.children] */ - children?: Array>; + children?: Array>; /** * [descr:dxTreeViewNode.disabled] */ @@ -31866,7 +31902,7 @@ declare module DevExpress.ui { /** * [descr:dxTreeViewNode.itemData] */ - itemData?: DevExpress.ui.dxTreeView.Item; + itemData?: TItem; /** * [descr:dxTreeViewNode.key] */ @@ -31874,7 +31910,7 @@ declare module DevExpress.ui { /** * [descr:dxTreeViewNode.parent] */ - parent?: dxTreeViewNode; + parent?: dxTreeViewNode; /** * [descr:dxTreeViewNode.selected] */ @@ -31888,11 +31924,13 @@ declare module DevExpress.ui { * [descr:dxTreeViewOptions] * @deprecated [depNote:dxTreeViewOptions] */ - export interface dxTreeViewOptions - extends Omit< + export interface dxTreeViewOptions< + TItem extends DevExpress.ui.dxTreeView.ItemLike = any, + TKey = any + > extends Omit< HierarchicalCollectionWidgetOptions< - dxTreeView, - dxTreeViewItem, + dxTreeView, + TItem, TKey >, 'dataSource' @@ -31906,15 +31944,12 @@ declare module DevExpress.ui { * [descr:dxTreeViewOptions.createChildren] */ createChildren?: ( - parentNode: DevExpress.ui.dxTreeView.Node + parentNode: DevExpress.ui.dxTreeView.Node ) => PromiseLike | Array; /** * [descr:dxTreeViewOptions.dataSource] */ - dataSource?: DevExpress.data.DataSourceLike< - DevExpress.ui.dxTreeView.Item, - TKey - > | null; + dataSource?: DevExpress.data.DataSourceLike | null; /** * [descr:dxTreeViewOptions.dataStructure] */ @@ -31942,56 +31977,60 @@ declare module DevExpress.ui { /** * [descr:dxTreeViewOptions.items] */ - items?: Array; + items?: Array; /** * [descr:dxTreeViewOptions.onItemClick] */ - onItemClick?: (e: DevExpress.ui.dxTreeView.ItemClickEvent) => void; + onItemClick?: ( + e: DevExpress.ui.dxTreeView.ItemClickEvent + ) => void; /** * [descr:dxTreeViewOptions.onItemCollapsed] */ onItemCollapsed?: ( - e: DevExpress.ui.dxTreeView.ItemCollapsedEvent + e: DevExpress.ui.dxTreeView.ItemCollapsedEvent ) => void; /** * [descr:dxTreeViewOptions.onItemContextMenu] */ onItemContextMenu?: ( - e: DevExpress.ui.dxTreeView.ItemContextMenuEvent + e: DevExpress.ui.dxTreeView.ItemContextMenuEvent ) => void; /** * [descr:dxTreeViewOptions.onItemExpanded] */ onItemExpanded?: ( - e: DevExpress.ui.dxTreeView.ItemExpandedEvent + e: DevExpress.ui.dxTreeView.ItemExpandedEvent ) => void; /** * [descr:dxTreeViewOptions.onItemHold] */ - onItemHold?: (e: DevExpress.ui.dxTreeView.ItemHoldEvent) => void; + onItemHold?: ( + e: DevExpress.ui.dxTreeView.ItemHoldEvent + ) => void; /** * [descr:dxTreeViewOptions.onItemRendered] */ onItemRendered?: ( - e: DevExpress.ui.dxTreeView.ItemRenderedEvent + e: DevExpress.ui.dxTreeView.ItemRenderedEvent ) => void; /** * [descr:dxTreeViewOptions.onItemSelectionChanged] */ onItemSelectionChanged?: ( - e: DevExpress.ui.dxTreeView.ItemSelectionChangedEvent + e: DevExpress.ui.dxTreeView.ItemSelectionChangedEvent ) => void; /** * [descr:dxTreeViewOptions.onSelectAllValueChanged] */ onSelectAllValueChanged?: ( - e: DevExpress.ui.dxTreeView.SelectAllValueChangedEvent + e: DevExpress.ui.dxTreeView.SelectAllValueChangedEvent ) => void; /** * [descr:dxTreeViewOptions.onSelectionChanged] */ onSelectionChanged?: ( - e: DevExpress.ui.dxTreeView.SelectionChangedEvent + e: DevExpress.ui.dxTreeView.SelectionChangedEvent ) => void; /** * [descr:dxTreeViewOptions.parentIdExpr]