@progress/kendo-vue-treeview 8.0.3-develop.2 → 8.0.3-develop.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ /**
9
+ * The props of the ItemRender component ([see example]({% slug rendering_treeview %})).
10
+ */
11
+ export interface ItemRenderProps {
12
+ /**
13
+ * The item that is rendered.
14
+ */
15
+ item: any;
16
+ /**
17
+ * The hierarchical index of the item. The indices are zero-based. The first root item has a `0` (zero) index. If the first root item has children, the first child acquires a `0_0` index and the second acquires a `0_1` index.
18
+ */
19
+ itemHierarchicalIndex: string;
20
+ }
package/TreeView.d.ts ADDED
@@ -0,0 +1,241 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { PropType } from 'vue';
9
+ /**
10
+ *
11
+ *
12
+ * Represents the [Kendo UI for Vue Native TreeView component]({% slug overview_treeview %}).
13
+ *
14
+ * ```jsx
15
+ * <template>
16
+ * <div>
17
+ * <TreeView :dataItems="tree" />
18
+ * </div>
19
+ * </template>
20
+ *
21
+ * <script>
22
+ * import { TreeView } from '@progress/kendo-vue-treeview';
23
+ *
24
+ * export default {
25
+ * components: {
26
+ * TreeView,
27
+ * },
28
+ * data() {
29
+ * return {
30
+ * tree: [
31
+ * {
32
+ * text: 'Furniture',
33
+ * expanded: true,
34
+ * items: [
35
+ * {
36
+ * text: 'Tables & Chairs',
37
+ * },
38
+ * {
39
+ * text: 'Sofas',
40
+ * },
41
+ * {
42
+ * text: 'Occasional Furniture',
43
+ * },
44
+ * ],
45
+ * },
46
+ * {
47
+ * text: 'Decor',
48
+ * expanded: true,
49
+ * items: [
50
+ * {
51
+ * text: 'Bed Linen',
52
+ * },
53
+ * {
54
+ * text: 'Curtains & Blinds',
55
+ * },
56
+ * {
57
+ * text: 'Carpets',
58
+ * },
59
+ * ],
60
+ * },
61
+ * ],
62
+ * };
63
+ * },
64
+ * };
65
+ * </script>
66
+ * ```
67
+ *
68
+ *
69
+ *
70
+ * ### props <span class='code'>Readonly&lt;[TreeViewProps]({% slug api_treeview_treeviewprops %})&gt;</span>
71
+ * The props of the TreeView component.
72
+ *
73
+ * ### guid <span class='code'>string</span>
74
+ * Returns the `guid` which is associated with the TreeView.
75
+ */
76
+ declare const TreeView: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
77
+ dataItems: PropType<any[]>;
78
+ animate: {
79
+ type: PropType<boolean>;
80
+ default: boolean;
81
+ };
82
+ id: PropType<string>;
83
+ draggable: PropType<boolean>;
84
+ tabIndex: PropType<number>;
85
+ focusIdField: PropType<string>;
86
+ getFocusHierarchicalIndex: PropType<(itemId: any) => string>;
87
+ expandField: {
88
+ type: PropType<string>;
89
+ default: string;
90
+ };
91
+ selectField: {
92
+ type: PropType<string>;
93
+ default: string;
94
+ };
95
+ childrenField: {
96
+ type: PropType<string>;
97
+ default: string;
98
+ };
99
+ hasChildrenField: {
100
+ type: PropType<string>;
101
+ default: string;
102
+ };
103
+ expandIcons: PropType<boolean>;
104
+ checkboxes: PropType<boolean>;
105
+ textField: {
106
+ type: PropType<string>;
107
+ default: string;
108
+ };
109
+ disableField: {
110
+ type: PropType<string>;
111
+ default: string;
112
+ };
113
+ checkField: {
114
+ type: PropType<string>;
115
+ default: string;
116
+ };
117
+ checkIndeterminateField: {
118
+ type: PropType<string>;
119
+ default: string;
120
+ };
121
+ item: PropType<any>;
122
+ ariaMultiSelectable: PropType<string | boolean>;
123
+ ariaLabel: PropType<string>;
124
+ ariaLabelledby: PropType<string>;
125
+ size: {
126
+ type: PropType<"small" | "medium" | "large">;
127
+ validator: (value: string) => boolean;
128
+ };
129
+ }>, {}, {
130
+ currentRtl: boolean;
131
+ focusedItemId: any;
132
+ focusedItemPublicId: any;
133
+ tabbableItemId: string;
134
+ }, {
135
+ treeGuid(): string;
136
+ }, {
137
+ onFocusDomElNeeded(domItem: any): void;
138
+ onCheckChange(event: any, item: any, itemId: string): void;
139
+ onExpandChange(event: any, item: any, itemId: string): void;
140
+ onPress(_event: any, item: any, itemId: string): void;
141
+ onDrag(event: any, item: any, itemId: string): void;
142
+ onRelease(event: any, item: any, itemId: string): void;
143
+ onItemClick(event: any, item: any, itemId: string): void;
144
+ onFocus(e: any): void;
145
+ onBlur(e: any): void;
146
+ onKeyDown(event: any): void;
147
+ dispatchEventsOnKeyDown(event: any, focusedItem: any): void;
148
+ setFocus(focusedItemId?: string): void;
149
+ getFocusedItem(): any;
150
+ getItemById(itemId: string): any;
151
+ dispatchCheckChange(dispatchedEvent: any, item: any, itemId: string): void;
152
+ dispatchExpandChange(dispatchedEvent: any, item: any, itemId: string): void;
153
+ dispatchItemClick(dispatchedEvent: any, item: any, itemId: string): void;
154
+ refocusDueToFocusIdField(): void;
155
+ focusDomItem(domItem: any): void;
156
+ guid(): string;
157
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
158
+ blur: any;
159
+ focus: any;
160
+ itemdragstart: any;
161
+ itemdragover: any;
162
+ itemdragend: any;
163
+ keydown: any;
164
+ itemclick: any;
165
+ expandchange: any;
166
+ checkchange: any;
167
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
168
+ dataItems: PropType<any[]>;
169
+ animate: {
170
+ type: PropType<boolean>;
171
+ default: boolean;
172
+ };
173
+ id: PropType<string>;
174
+ draggable: PropType<boolean>;
175
+ tabIndex: PropType<number>;
176
+ focusIdField: PropType<string>;
177
+ getFocusHierarchicalIndex: PropType<(itemId: any) => string>;
178
+ expandField: {
179
+ type: PropType<string>;
180
+ default: string;
181
+ };
182
+ selectField: {
183
+ type: PropType<string>;
184
+ default: string;
185
+ };
186
+ childrenField: {
187
+ type: PropType<string>;
188
+ default: string;
189
+ };
190
+ hasChildrenField: {
191
+ type: PropType<string>;
192
+ default: string;
193
+ };
194
+ expandIcons: PropType<boolean>;
195
+ checkboxes: PropType<boolean>;
196
+ textField: {
197
+ type: PropType<string>;
198
+ default: string;
199
+ };
200
+ disableField: {
201
+ type: PropType<string>;
202
+ default: string;
203
+ };
204
+ checkField: {
205
+ type: PropType<string>;
206
+ default: string;
207
+ };
208
+ checkIndeterminateField: {
209
+ type: PropType<string>;
210
+ default: string;
211
+ };
212
+ item: PropType<any>;
213
+ ariaMultiSelectable: PropType<string | boolean>;
214
+ ariaLabel: PropType<string>;
215
+ ariaLabelledby: PropType<string>;
216
+ size: {
217
+ type: PropType<"small" | "medium" | "large">;
218
+ validator: (value: string) => boolean;
219
+ };
220
+ }>> & Readonly<{
221
+ onBlur?: (...args: any[] | unknown[]) => any;
222
+ onFocus?: (...args: any[] | unknown[]) => any;
223
+ onKeydown?: (...args: any[] | unknown[]) => any;
224
+ onItemdragstart?: (...args: any[] | unknown[]) => any;
225
+ onItemdragover?: (...args: any[] | unknown[]) => any;
226
+ onItemdragend?: (...args: any[] | unknown[]) => any;
227
+ onItemclick?: (...args: any[] | unknown[]) => any;
228
+ onExpandchange?: (...args: any[] | unknown[]) => any;
229
+ onCheckchange?: (...args: any[] | unknown[]) => any;
230
+ }>, {
231
+ animate: boolean;
232
+ checkIndeterminateField: string;
233
+ expandField: string;
234
+ selectField: string;
235
+ childrenField: string;
236
+ hasChildrenField: string;
237
+ textField: string;
238
+ disableField: string;
239
+ checkField: string;
240
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
241
+ export { TreeView };
package/TreeView.mjs CHANGED
@@ -8,7 +8,7 @@
8
8
  import { defineComponent as r, createVNode as o } from "vue";
9
9
  import { Keys as d, canUseDOM as h, classNames as u, kendoThemeMaps as m, templateRendering as I, getListeners as p, validatePackage as f, guid as g, isRtl as b } from "@progress/kendo-vue-common";
10
10
  import F from "./utils/getItemIdUponKeyboardNavigation.mjs";
11
- import { resolveItemId as E, isEnabledAndAllParentsEnabled as C, hasChildren as k } from "./utils/itemUtils.mjs";
11
+ import { resolveItemId as E, hasChildren as C, isEnabledAndAllParentsEnabled as k } from "./utils/itemUtils.mjs";
12
12
  import { TreeViewItem as S } from "./TreeViewItem.mjs";
13
13
  import { getItemById as x, ZERO_LEVEL_ZERO_NODE_ID as y } from "./utils/itemIdUtils.mjs";
14
14
  import D from "./utils/FieldsService.mjs";
@@ -229,8 +229,8 @@ const {
229
229
  this.$emit("keydown", e);
230
230
  },
231
231
  dispatchEventsOnKeyDown(e, t) {
232
- const i = () => C(this.focusedItemId, this.dataItems, this.fieldsSvc), s = this.fieldsSvc.disabled(t);
233
- e.keyCode === d.left && this.fieldsSvc.expanded(t) && i() ? this.dispatchExpandChange(e, t, this.focusedItemId) : e.keyCode === d.right && !this.fieldsSvc.expanded(t) && (this.fieldsSvc.hasChildren(t) || k(t, this.$props.childrenField)) && i() ? this.dispatchExpandChange(e, t, this.focusedItemId) : e.keyCode === d.enter && !s ? this.dispatchItemClick(e, t, this.focusedItemId) : e.keyCode === d.space && !s && (e.preventDefault(), this.dispatchCheckChange(e, t, this.focusedItemId));
232
+ const i = () => k(this.focusedItemId, this.dataItems, this.fieldsSvc), s = this.fieldsSvc.disabled(t);
233
+ e.keyCode === d.left && this.fieldsSvc.expanded(t) && i() ? this.dispatchExpandChange(e, t, this.focusedItemId) : e.keyCode === d.right && !this.fieldsSvc.expanded(t) && (this.fieldsSvc.hasChildren(t) || C(t, this.$props.childrenField)) && i() ? this.dispatchExpandChange(e, t, this.focusedItemId) : e.keyCode === d.enter && !s ? this.dispatchItemClick(e, t, this.focusedItemId) : e.keyCode === d.space && !s && (e.preventDefault(), this.dispatchCheckChange(e, t, this.focusedItemId));
234
234
  },
235
235
  setFocus(e) {
236
236
  if (e)
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { TreeViewItemDragOverEvent, TreeViewItemDragEndEvent } from './events';
9
+ /**
10
+ * A class which provides an API for analyzing the `drag` events
11
+ * of the TreeView.
12
+ *
13
+ * {% meta height:400 %}
14
+ * {% embed_file drag/single/main.vue preview %}
15
+ * {% embed_file drag/single/main.js %}
16
+ * {% endmeta %}
17
+ *
18
+ * ### destinationMeta <span class='code'>{ itemHierarchicalIndex: string; treeViewGuid: string; }</span>
19
+ * Returns an object which contains:
20
+ * * The `itemHierarchicalIndex` of the destination item (the item below the dragged item) and
21
+ * * The `guid` of the destination TreeView (the TreeView which renders the destination item).
22
+ *
23
+ * ### isDropAllowed <span class='code'>boolean</span>
24
+ * Returns `true` if dropping is allowed. Otherwise, returns `false`.
25
+ */
26
+ declare class TreeViewDragAnalyzer {
27
+ private event;
28
+ private itemId;
29
+ private treeViewGuid;
30
+ private initialized;
31
+ private destDomNodeWithMeta;
32
+ private destItemId;
33
+ private destTreeViewGuid;
34
+ /**
35
+ * @param event - The event that will be analyzed.
36
+ */
37
+ constructor(event: TreeViewItemDragOverEvent | TreeViewItemDragEndEvent);
38
+ /**
39
+ * The method which initializes the analyzer.
40
+ * Invoke the method before you call any other methods.
41
+ *
42
+ * @returns - The analyzer object of the `drag` event.
43
+ */
44
+ init(): this;
45
+ /**
46
+ * Returns `true` if dropping is allowed. Otherwise, returns `false`.
47
+ */
48
+ get isDropAllowed(): boolean;
49
+ /**
50
+ * Returns an object which contains:
51
+ * * The `itemHierarchicalIndex` of the destination item (the item below the dragged item) and
52
+ * * The `guid` of the destination TreeView (the TreeView which renders the destination item).
53
+ */
54
+ get destinationMeta(): {
55
+ itemHierarchicalIndex: string;
56
+ treeViewGuid: string;
57
+ };
58
+ /**
59
+ * Returns the specific drop operation.
60
+ *
61
+ * @returns - The following values are returned:
62
+ * * `before`&mdash;Indicates that the dragged item is positioned at the beginning of the destination item.
63
+ * * `after`&mdash;Indicates that the dragged item is positioned at the end of the destination item.
64
+ * * `child`&mdash;Indicates that the dragged item is positioned in the middle of the destination item.
65
+ * * `undefined`&mdash;Indicates that dropping is not allowed.
66
+ */
67
+ getDropOperation(): "child" | "before" | "after";
68
+ private setDestimationMeta;
69
+ }
70
+ export { TreeViewDragAnalyzer };
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ /**
9
+ * Represents the Kendo UI for Vue Native TreeViewDragClue component which renders a clue when an item is dragged.
10
+ *
11
+ * {% meta height:400 %}
12
+ * {% embed_file drag/single/main.vue preview %}
13
+ * {% embed_file drag/single/main.js %}
14
+ * {% endmeta %}
15
+ *
16
+ * ## Methods
17
+ *
18
+ * ### hide
19
+ * Hides the TreeViewDragClue component.
20
+ *
21
+ * ### show
22
+ * Displays the TreeViewDragClue component.
23
+ *
24
+ * #### Parameters
25
+ * ##### top <span class='code'>number</span>
26
+ * The `top` CSS position of the component.
27
+ *
28
+ * ##### left <span class='code'>number</span>
29
+ * The `left` CSS position of the component.
30
+ *
31
+ * ##### text <span class='code'>string</span>
32
+ * The text of the component.
33
+ *
34
+ * ##### operationClassName <span class='code'>string</span>
35
+ * The CSS class name which is related to the specific drop operation.
36
+ */
37
+ declare const TreeViewDragClue: import('vue').DefineComponent<{}, {}, {
38
+ visible: boolean;
39
+ top: number;
40
+ left: number;
41
+ text: string;
42
+ operationIconName: string;
43
+ operationSvg: import('@progress/kendo-svg-icons').SVGIcon;
44
+ }, {}, {
45
+ show(top: number, left: number, text: string, operationIconName: string | object): void;
46
+ hide(): void;
47
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
48
+ export { TreeViewDragClue };
@@ -0,0 +1,127 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { default as FieldsService } from './utils/FieldsService';
9
+ import { PropType } from 'vue';
10
+ /**
11
+ * @hidden
12
+ */
13
+ export interface TreeViewItemProps {
14
+ item: any;
15
+ itemId: string;
16
+ treeGuid: string;
17
+ animate: boolean;
18
+ focusedItemId?: string;
19
+ tabbableItemId: string;
20
+ fieldsService: FieldsService;
21
+ itemUI?: any;
22
+ ariaMultiSelectable: boolean;
23
+ onItemClick?: any;
24
+ expandIcons?: boolean;
25
+ onExpandChange?: any;
26
+ onCheckChange?: any;
27
+ checkboxes?: boolean;
28
+ onFocusDomElNeeded?: any;
29
+ draggable?: boolean;
30
+ onPress?: any;
31
+ onDrag?: any;
32
+ onRelease?: any;
33
+ size?: 'small' | 'medium' | 'large';
34
+ /**
35
+ * Currently for internal usage only! Replicates the current behavior which disables all children
36
+ * if the parent is disabled, which was previously achieved only though the kendo-themes,
37
+ * but due to rendering changes had to be replicated programmatically!
38
+ *
39
+ * @hidden
40
+ */
41
+ disabled?: boolean;
42
+ ariaLevel: number;
43
+ isRtl?: boolean;
44
+ }
45
+ /**
46
+ * @hidden
47
+ */
48
+ declare const TreeViewItem: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
49
+ item: PropType<any>;
50
+ itemId: PropType<string>;
51
+ treeGuid: PropType<string>;
52
+ animate: PropType<boolean>;
53
+ focusedItemId: PropType<string>;
54
+ tabbableItemId: PropType<string>;
55
+ fieldsService: PropType<FieldsService>;
56
+ itemUI: PropType<any>;
57
+ ariaMultiSelectable: PropType<boolean>;
58
+ expandIcons: PropType<boolean>;
59
+ checkboxes: PropType<boolean>;
60
+ onFocusDomElNeeded: PropType<any>;
61
+ draggable: PropType<boolean>;
62
+ isRtl: PropType<boolean>;
63
+ size: {
64
+ type: PropType<"small" | "medium" | "large">;
65
+ validator: (value: string) => boolean;
66
+ };
67
+ disabled: PropType<boolean>;
68
+ ariaLevel: PropType<number>;
69
+ onItemClick: PropType<any>;
70
+ onExpandChange: PropType<any>;
71
+ onCheckChange: PropType<any>;
72
+ onPress: PropType<any>;
73
+ onDrag: PropType<any>;
74
+ onRelease: PropType<any>;
75
+ onFocusdomelneeded: PropType<any>;
76
+ }>, {}, {
77
+ isMounted: boolean;
78
+ }, {
79
+ fieldsSvc(): any;
80
+ currentTabIndex(): number;
81
+ ariaExpanded(): boolean | undefined;
82
+ ariaChecked(): string | boolean | undefined;
83
+ ariaSelected(): boolean | undefined;
84
+ computedDisabled(): any;
85
+ }, {
86
+ handleItemContentClick(e: any): void;
87
+ handleCheckChange(e: any, subItem: any, subItemId: string): void;
88
+ handleExpandChange(e: any, subItem: any, subItemId: string): void;
89
+ handleItemClick(e: any, subItem: any, subItemId: string): void;
90
+ handlePress(e: any, subItem: any, subItemId: string): void;
91
+ handleDrag(e: any, subItem: any, subItemId: string): void;
92
+ handleRelease(e: any, subItem: any, subItemId: string): void;
93
+ handleFocusDomElNeeded(e: any): void;
94
+ getIconClassName(): "loading" | "chevron-down" | "chevron-left" | "chevron-right";
95
+ getIconSVG(): import('@progress/kendo-svg-icons').SVGIcon;
96
+ getContentClassName(): string;
97
+ assignDraggableMeta(element: any): void;
98
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
99
+ item: PropType<any>;
100
+ itemId: PropType<string>;
101
+ treeGuid: PropType<string>;
102
+ animate: PropType<boolean>;
103
+ focusedItemId: PropType<string>;
104
+ tabbableItemId: PropType<string>;
105
+ fieldsService: PropType<FieldsService>;
106
+ itemUI: PropType<any>;
107
+ ariaMultiSelectable: PropType<boolean>;
108
+ expandIcons: PropType<boolean>;
109
+ checkboxes: PropType<boolean>;
110
+ onFocusDomElNeeded: PropType<any>;
111
+ draggable: PropType<boolean>;
112
+ isRtl: PropType<boolean>;
113
+ size: {
114
+ type: PropType<"small" | "medium" | "large">;
115
+ validator: (value: string) => boolean;
116
+ };
117
+ disabled: PropType<boolean>;
118
+ ariaLevel: PropType<number>;
119
+ onItemClick: PropType<any>;
120
+ onExpandChange: PropType<any>;
121
+ onCheckChange: PropType<any>;
122
+ onPress: PropType<any>;
123
+ onDrag: PropType<any>;
124
+ onRelease: PropType<any>;
125
+ onFocusdomelneeded: PropType<any>;
126
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
127
+ export { TreeViewItem };
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ /**
9
+ * The descriptors of the data operations which are applied to the TreeView component.
10
+ */
11
+ export interface TreeViewOperationDescriptors {
12
+ /**
13
+ * The hierarchical indices of the items to which the expand operation will be applied, or the descriptor of the operation.
14
+ */
15
+ expand?: string[] | TreeViewOperationDescriptor;
16
+ /**
17
+ * The hierarchical indices of the items to which the select operation will be applied, or the descriptor of the operation.
18
+ */
19
+ select?: string[] | TreeViewOperationDescriptor;
20
+ /**
21
+ * The hierarchical indices of the items to which the check operation will be applied, or the descriptor of the operation.
22
+ */
23
+ check?: string[] | TreeViewCheckDescriptor;
24
+ /**
25
+ * When the operations are applied, the corresponding items and their parents are cloned.
26
+ * For performance reasons, TreeView items are cloned only once.
27
+ * The name of the field which provides a Boolean representation of whether an item is already cloned.
28
+ * Defaults to `cloned`.
29
+ */
30
+ cloneField?: string;
31
+ /**
32
+ * The expand field of the item.
33
+ */
34
+ expandField?: string;
35
+ /**
36
+ * The select field of the item.
37
+ */
38
+ selectField?: string;
39
+ /**
40
+ * The check field of the item.
41
+ */
42
+ checkField?: string;
43
+ /**
44
+ * The children field of the item.
45
+ */
46
+ childrenField?: string;
47
+ }
48
+ /**
49
+ * The descriptor which is used for expanding, selecting, and checking.
50
+ */
51
+ export interface TreeViewOperationDescriptor {
52
+ /**
53
+ * The IDs of the items to which the operation will be applied. By default, the TreeView applies the hierarchical indices of the items. These indices are zero-based. The first root item has a `0` (zero) index. If the first root item has children, the first child acquires a `0_0` index and the second acquires a `0_1` index.
54
+ */
55
+ ids?: any[];
56
+ /**
57
+ * The name of the field which will provide a Boolean representation for the operation state of the item.
58
+ *
59
+ * The default fields are:
60
+ * * `expanded`&mdash;Indicates that an item is expanded.
61
+ * * `selected`&mdash;Indicates that an item is selected.
62
+ * * `checked`&mdash;Indicates that an item is checked.
63
+ */
64
+ operationField?: string;
65
+ /**
66
+ * The name of the field which will uniquely describe an item as an alternative to its hierarchical index.
67
+ */
68
+ idField?: string;
69
+ }
70
+ /**
71
+ * The descriptor which is used for checking.
72
+ */
73
+ export interface TreeViewCheckDescriptor extends TreeViewOperationDescriptor {
74
+ /**
75
+ * Determines if a parent item will have an indeterminate state when not all its children are checked.
76
+ */
77
+ applyCheckIndeterminate?: boolean;
78
+ /**
79
+ * The name of the field which will provide a Boolean representation for the indeterminate state of a parent item.
80
+ * Defaults to `checkIndeterminate`.
81
+ */
82
+ checkIndeterminateField?: string;
83
+ }