diff --git a/packages/devextreme-angular/src/ui/tree-view/index.ts b/packages/devextreme-angular/src/ui/tree-view/index.ts index 55e087ca0d8b..7720702111dc 100644 --- a/packages/devextreme-angular/src/ui/tree-view/index.ts +++ b/packages/devextreme-angular/src/ui/tree-view/index.ts @@ -24,7 +24,7 @@ import { export { ExplicitTypes } from 'devextreme/ui/tree_view'; import DataSource from 'devextreme/data/data_source'; -import { dxTreeViewNode, dxTreeViewItem, TreeViewExpandEvent, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, ItemCollapsedEvent, ItemContextMenuEvent, ItemExpandedEvent, ItemHoldEvent, ItemRenderedEvent, ItemSelectionChangedEvent, OptionChangedEvent, SelectAllValueChangedEvent, SelectionChangedEvent, TreeViewCheckBoxMode } from 'devextreme/ui/tree_view'; +import { dxTreeViewNode, dxTreeViewItem, DisabledNodeSelectionMode, TreeViewExpandEvent, ContentReadyEvent, DisposingEvent, InitializedEvent, ItemClickEvent, ItemCollapsedEvent, ItemContextMenuEvent, ItemExpandedEvent, ItemHoldEvent, ItemRenderedEvent, ItemSelectionChangedEvent, OptionChangedEvent, SelectAllValueChangedEvent, SelectionChangedEvent, TreeViewCheckBoxMode } from 'devextreme/ui/tree_view'; import { DataSourceOptions } from 'devextreme/data/data_source'; import { Store } from 'devextreme/data/store'; import { DataStructure, ScrollDirection, SearchMode, SingleOrMultiple } from 'devextreme/common'; @@ -207,6 +207,19 @@ export class DxTreeViewComponent extends DxComponent im } + /** + * [descr:dxTreeViewOptions.disabledNodeSelectionMode] + + */ + @Input() + get disabledNodeSelectionMode(): DisabledNodeSelectionMode { + return this._getOption('disabledNodeSelectionMode'); + } + set disabledNodeSelectionMode(value: DisabledNodeSelectionMode) { + this._setOption('disabledNodeSelectionMode', value); + } + + /** * [descr:HierarchicalCollectionWidgetOptions.displayExpr] @@ -880,6 +893,13 @@ export class DxTreeViewComponent extends DxComponent im */ @Output() disabledExprChange: EventEmitter; + /** + + * This member supports the internal infrastructure and is not intended to be used directly from your code. + + */ + @Output() disabledNodeSelectionModeChange: EventEmitter; + /** * This member supports the internal infrastructure and is not intended to be used directly from your code. @@ -1188,6 +1208,7 @@ export class DxTreeViewComponent extends DxComponent im { emit: 'dataStructureChange' }, { emit: 'disabledChange' }, { emit: 'disabledExprChange' }, + { emit: 'disabledNodeSelectionModeChange' }, { emit: 'displayExprChange' }, { emit: 'elementAttrChange' }, { emit: 'expandAllEnabledChange' }, diff --git a/packages/devextreme-vue/src/tree-view.ts b/packages/devextreme-vue/src/tree-view.ts index 89b9c4b8a3a7..24dbb49d8b32 100644 --- a/packages/devextreme-vue/src/tree-view.ts +++ b/packages/devextreme-vue/src/tree-view.ts @@ -7,6 +7,7 @@ import DataSource from "devextreme/data/data_source"; import { dxTreeViewNode, dxTreeViewItem, + DisabledNodeSelectionMode, TreeViewExpandEvent, ContentReadyEvent, DisposingEvent, @@ -85,6 +86,7 @@ type AccessibleOptions = Pick, disabled: Boolean, disabledExpr: [Function, String] as PropType<((() => void)) | string>, + disabledNodeSelectionMode: String as PropType, displayExpr: [Function, String] as PropType<(((item: any) => string)) | string>, elementAttr: Object as PropType>, expandAllEnabled: Boolean, @@ -219,6 +222,7 @@ const componentConfig = { "update:dataStructure": null, "update:disabled": null, "update:disabledExpr": null, + "update:disabledNodeSelectionMode": null, "update:displayExpr": null, "update:elementAttr": null, "update:expandAllEnabled": null, diff --git a/packages/devextreme/js/ui/tree_view.d.ts b/packages/devextreme/js/ui/tree_view.d.ts index ff1d962df10b..5bfda6255d2c 100644 --- a/packages/devextreme/js/ui/tree_view.d.ts +++ b/packages/devextreme/js/ui/tree_view.d.ts @@ -68,6 +68,8 @@ export { export type TreeViewCheckBoxMode = 'none' | 'normal' | 'selectAll'; /** @public */ export type TreeViewExpandEvent = 'dblclick' | 'click'; +/** @public */ +export type DisabledNodeSelectionMode = 'recursiveAndAll' | 'never'; /** * @docid _ui_tree_view_ContentReadyEvent @@ -210,6 +212,12 @@ export interface dxTreeViewOptions * @public */ dataStructure?: DataStructure; + /** + * @docid + * @default 'recursiveAndAll' + * @public + */ + disabledNodeSelectionMode?: DisabledNodeSelectionMode; /** * @docid * @default false diff --git a/packages/devextreme/js/ui/tree_view_types.d.ts b/packages/devextreme/js/ui/tree_view_types.d.ts index ee4353234ec6..016fc01208ec 100644 --- a/packages/devextreme/js/ui/tree_view_types.d.ts +++ b/packages/devextreme/js/ui/tree_view_types.d.ts @@ -4,6 +4,7 @@ export { ScrollDirection, TreeViewCheckBoxMode, TreeViewExpandEvent, + DisabledNodeSelectionMode, ContentReadyEvent, DisposingEvent, InitializedEvent, diff --git a/packages/devextreme/ts/dx.all.d.ts b/packages/devextreme/ts/dx.all.d.ts index e2e3986a799a..2e66e0428fc6 100644 --- a/packages/devextreme/ts/dx.all.d.ts +++ b/packages/devextreme/ts/dx.all.d.ts @@ -32303,6 +32303,7 @@ declare module DevExpress.ui { TItem extends ItemLike = any, TKey = any > = DevExpress.common.core.events.EventInfo>; + export type DisabledNodeSelectionMode = 'recursiveAndAll' | 'never'; /** * [descr:_ui_tree_view_DisposingEvent] */ @@ -32594,6 +32595,10 @@ declare module DevExpress.ui { * [descr:dxTreeViewOptions.dataStructure] */ dataStructure?: DevExpress.common.DataStructure; + /** + * [descr:dxTreeViewOptions.disabledNodeSelectionMode] + */ + disabledNodeSelectionMode?: DevExpress.ui.dxTreeView.DisabledNodeSelectionMode; /** * [descr:dxTreeViewOptions.expandAllEnabled] */