@progress/kendo-react-treeview 6.1.1 → 7.0.0-develop.2

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.
Files changed (70) hide show
  1. package/{dist/es/ItemRenderProps.d.ts → ItemRenderProps.d.ts} +4 -0
  2. package/LICENSE.md +1 -1
  3. package/{dist/npm/TreeView.d.ts → TreeView.d.ts} +5 -1
  4. package/{dist/es/TreeViewDragAnalyzer.d.ts → TreeViewDragAnalyzer.d.ts} +5 -1
  5. package/{dist/npm/TreeViewDragClue.d.ts → TreeViewDragClue.d.ts} +5 -1
  6. package/{dist/npm/TreeViewItem.d.ts → TreeViewItem.d.ts} +5 -1
  7. package/{dist/es/TreeViewOperationDescriptors.d.ts → TreeViewOperationDescriptors.d.ts} +4 -0
  8. package/{dist/es/TreeViewProps.d.ts → TreeViewProps.d.ts} +4 -0
  9. package/dist/cdn/js/kendo-react-treeview.js +5 -1
  10. package/{dist/es/events.d.ts → events.d.ts} +4 -1
  11. package/{dist/npm/handleTreeViewCheckChange.d.ts → handleTreeViewCheckChange.d.ts} +4 -0
  12. package/{dist/es/main.d.ts → index.d.ts} +9 -5
  13. package/index.js +5 -0
  14. package/index.mjs +745 -0
  15. package/{dist/npm/moveTreeViewItem.d.ts → moveTreeViewItem.d.ts} +4 -0
  16. package/package-metadata.d.ts +9 -0
  17. package/package.json +28 -37
  18. package/{dist/es/processTreeViewItems.d.ts → processTreeViewItems.d.ts} +4 -0
  19. package/{dist/npm/utils → utils}/consts.d.ts +4 -0
  20. package/utils/getItemIdUponKeyboardNavigation.d.ts +9 -0
  21. package/about.md +0 -3
  22. package/dist/es/ItemRenderProps.js +0 -2
  23. package/dist/es/TreeView.d.ts +0 -124
  24. package/dist/es/TreeView.js +0 -334
  25. package/dist/es/TreeViewDragAnalyzer.js +0 -186
  26. package/dist/es/TreeViewDragClue.d.ts +0 -144
  27. package/dist/es/TreeViewDragClue.js +0 -171
  28. package/dist/es/TreeViewItem.d.ts +0 -96
  29. package/dist/es/TreeViewItem.js +0 -255
  30. package/dist/es/TreeViewOperationDescriptors.js +0 -2
  31. package/dist/es/TreeViewProps.js +0 -1
  32. package/dist/es/events.js +0 -1
  33. package/dist/es/handleTreeViewCheckChange.d.ts +0 -69
  34. package/dist/es/handleTreeViewCheckChange.js +0 -193
  35. package/dist/es/main.js +0 -10
  36. package/dist/es/moveTreeViewItem.d.ts +0 -109
  37. package/dist/es/moveTreeViewItem.js +0 -155
  38. package/dist/es/package-metadata.d.ts +0 -5
  39. package/dist/es/package-metadata.js +0 -11
  40. package/dist/es/processTreeViewItems.js +0 -163
  41. package/dist/es/utils/consts.d.ts +0 -40
  42. package/dist/es/utils/consts.js +0 -40
  43. package/dist/es/utils/getItemIdUponKeyboardNavigation.d.ts +0 -5
  44. package/dist/es/utils/getItemIdUponKeyboardNavigation.js +0 -76
  45. package/dist/npm/ItemRenderProps.d.ts +0 -13
  46. package/dist/npm/ItemRenderProps.js +0 -3
  47. package/dist/npm/TreeView.js +0 -337
  48. package/dist/npm/TreeViewDragAnalyzer.d.ts +0 -135
  49. package/dist/npm/TreeViewDragAnalyzer.js +0 -189
  50. package/dist/npm/TreeViewDragClue.js +0 -174
  51. package/dist/npm/TreeViewItem.js +0 -258
  52. package/dist/npm/TreeViewOperationDescriptors.d.ts +0 -76
  53. package/dist/npm/TreeViewOperationDescriptors.js +0 -3
  54. package/dist/npm/TreeViewProps.d.ts +0 -137
  55. package/dist/npm/TreeViewProps.js +0 -2
  56. package/dist/npm/events.d.ts +0 -159
  57. package/dist/npm/events.js +0 -2
  58. package/dist/npm/handleTreeViewCheckChange.js +0 -197
  59. package/dist/npm/main.d.ts +0 -14
  60. package/dist/npm/main.js +0 -21
  61. package/dist/npm/moveTreeViewItem.js +0 -159
  62. package/dist/npm/package-metadata.d.ts +0 -5
  63. package/dist/npm/package-metadata.js +0 -14
  64. package/dist/npm/processTreeViewItems.d.ts +0 -51
  65. package/dist/npm/processTreeViewItems.js +0 -167
  66. package/dist/npm/utils/consts.js +0 -43
  67. package/dist/npm/utils/getItemIdUponKeyboardNavigation.d.ts +0 -5
  68. package/dist/npm/utils/getItemIdUponKeyboardNavigation.js +0 -79
  69. package/dist/systemjs/kendo-react-treeview.js +0 -1
  70. package/e2e-next/basic.tests.ts +0 -24
@@ -1,155 +0,0 @@
1
- import { addItem, removeItem, treeIdUtils } from '@progress/kendo-react-common';
2
- import { CHILDREN_FIELD } from './utils/consts';
3
- /**
4
- * A helper function which moves a TreeView item in an immutable way.
5
- *
6
- * @param sourceItemHierarchicalIndex - The hierarchical index of the item that will be moved.
7
- * @param sourceData - The tree which contains the item that will be moved.
8
- * @param operation - The specific move operation.
9
- *
10
- * The available options are:
11
- * * `before`—Indicates that the source item will become the previous sibling of the target item.
12
- * * `after`—Indicates that the source item will become the next sibling of the target item.
13
- * * `child`—Indicates that the source item will become a child of the target item.
14
- * @param targetItemHierarchicalIndex - The hierarchical index of the item next to which the source item will be moved.
15
- * @param targetData - The tree which contains the target item.
16
- * If the argument is skipped, then the move operation will be executed within the same tree.
17
- * Setting the `sourceData` and `targetData` arguments to the same tree is also supported.
18
- * @param childrenField - The field that points to the dataItem sub items. Defaults to `items`.
19
- * @returns - The updated copies of the `sourceData` and `targetData` input arguments.
20
- * If `targetData` is not passed, then only the updated copy of the `sourceData` will be returned.
21
- *
22
- * @example
23
- * ```jsx
24
- * class App extends React.Component {
25
- * dragClue;
26
- * state = { tree };
27
- *
28
- * render() {
29
- * return (
30
- * <div>
31
- * <TreeView data={this.state.tree} draggable={true}
32
- * onItemDragOver={this.onItemDragOver} onItemDragEnd={this.onItemDragEnd} />
33
- * <TreeViewDragClue ref={dragClue => this.dragClue = dragClue} />
34
- * </div>
35
- * );
36
- * }
37
- *
38
- * onItemDragOver = (event) => {
39
- * this.dragClue.show(event.pageY + 10, event.pageX, event.item.text, this.getClueClassName(event));
40
- * }
41
- * onItemDragEnd = (event) => {
42
- * this.dragClue.hide();
43
- * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();
44
- *
45
- * if (eventAnalyzer.isDropAllowed) {
46
- * const updatedTree = moveTreeViewItem(
47
- * event.itemHierarchicalIndex,
48
- * this.state.tree,
49
- * eventAnalyzer.getDropOperation(),
50
- * eventAnalyzer.destinationMeta.itemHierarchicalIndex,
51
- * );
52
- *
53
- * this.setState({ tree: updatedTree });
54
- * }
55
- * }
56
- * getClueClassName(event) {
57
- * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();
58
- * const itemIndex = eventAnalyzer.destinationMeta.itemHierarchicalIndex;
59
- *
60
- * if (eventAnalyzer.isDropAllowed) {
61
- * switch (eventAnalyzer.getDropOperation()) {
62
- * case 'child':
63
- * return 'k-i-plus';
64
- * case 'before':
65
- * return itemIndex === '0' || itemIndex.endsWith(`${SEPARATOR}0`) ?
66
- * 'k-i-insert-up' : 'k-i-insert-middle';
67
- * case 'after':
68
- * const siblings = getSiblings(itemIndex, this.state.tree);
69
- * const lastIndex = Number(itemIndex.split(SEPARATOR).pop());
70
- *
71
- * return lastIndex < siblings.length - 1 ? 'k-i-insert-middle' : 'k-i-insert-down';
72
- * default:
73
- * break;
74
- * }
75
- * }
76
- *
77
- * return 'k-i-cancel';
78
- * }
79
- * }
80
- *
81
- * function getSiblings(itemIndex, data) {
82
- * let result = data;
83
- *
84
- * const indices = itemIndex.split(SEPARATOR).map(index => Number(index));
85
- * for (let i = 0; i < indices.length - 1; i++) {
86
- * result = result[indices[i]].items;
87
- * }
88
- *
89
- * return result;
90
- * }
91
- *
92
- * const SEPARATOR = '_';
93
- * const tree = [{
94
- * text: 'Furniture', expanded: true, items: [
95
- * { text: 'Tables & Chairs', expanded: true },
96
- * { text: 'Sofas', expanded: true },
97
- * { text: 'Occasional Furniture', expanded: true }]
98
- * }, {
99
- * text: 'Decor', expanded: true, items: [
100
- * { text: 'Bed Linen', expanded: true },
101
- * { text: 'Curtains & Blinds', expanded: true },
102
- * { text: 'Carpets', expanded: true }]
103
- * }];
104
- *
105
- * ReactDOM.render(<App />, document.querySelector('my-app'));
106
- * ```
107
- */
108
- export function moveTreeViewItem(sourceItemHierarchicalIndex, sourceData, operation, targetItemHierarchicalIndex, targetData, childrenField) {
109
- var subItemsField = childrenField || CHILDREN_FIELD;
110
- if (!validateInput()) {
111
- return prepareInputDataForReturn();
112
- }
113
- var sourceItem = treeIdUtils.getItemById(sourceItemHierarchicalIndex, sourceData, subItemsField);
114
- if (!sourceItem) {
115
- return prepareInputDataForReturn();
116
- }
117
- // The source and the target tree are the same.
118
- if (!targetData || targetData === sourceData) {
119
- if (!validateNoCircularReference()) {
120
- return prepareInputDataForReturn();
121
- }
122
- var updatedSourceData = removeItem(sourceItemHierarchicalIndex, subItemsField, sourceData);
123
- var resultData = addItem(sourceItem, operation, subItemsField, treeIdUtils.getDecrementedItemIdAfterRemoval(sourceItemHierarchicalIndex, targetItemHierarchicalIndex), updatedSourceData);
124
- // A simpler output is explicitly returned when the source and the target tree are
125
- // the same, that is, the targetData argument is skipped.
126
- return targetData ? { sourceData: resultData, targetData: resultData } : resultData;
127
- }
128
- else {
129
- var updatedSource = removeItem(sourceItemHierarchicalIndex, subItemsField, sourceData);
130
- var updatedTarget = addItem(sourceItem, operation, subItemsField, targetItemHierarchicalIndex, targetData);
131
- return { sourceData: updatedSource, targetData: updatedTarget };
132
- }
133
- function prepareInputDataForReturn() {
134
- return targetData ? { sourceData: sourceData, targetData: targetData } : sourceData;
135
- }
136
- function validateNoCircularReference() {
137
- return !"".concat(targetItemHierarchicalIndex, "_").startsWith("".concat(sourceItemHierarchicalIndex, "_"));
138
- }
139
- function validateInput() {
140
- if (!sourceData || !sourceData.length ||
141
- !sourceItemHierarchicalIndex || !targetItemHierarchicalIndex) {
142
- return false;
143
- }
144
- if (targetData && !targetData.length) {
145
- // Dropping over an empty tree is not supported.
146
- return false;
147
- }
148
- // Validate that the target item exists.
149
- var data = !targetData || targetData === sourceData ? sourceData : targetData;
150
- if (!treeIdUtils.getItemById(targetItemHierarchicalIndex, data, subItemsField)) {
151
- return false;
152
- }
153
- return true;
154
- }
155
- }
@@ -1,5 +0,0 @@
1
- import { PackageMetadata } from '@progress/kendo-licensing';
2
- /**
3
- * @hidden
4
- */
5
- export declare const packageMetadata: PackageMetadata;
@@ -1,11 +0,0 @@
1
- /**
2
- * @hidden
3
- */
4
- export var packageMetadata = {
5
- name: '@progress/kendo-react-treeview',
6
- productName: 'KendoReact',
7
- productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
8
- publishDate: 1700064084,
9
- version: '',
10
- licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'
11
- };
@@ -1,163 +0,0 @@
1
- /* eslint-disable max-len */
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- import { updateItem, resolveItemsIds, getNestedValue, isArray } from '@progress/kendo-react-common';
14
- import { EXPAND_FIELD, SELECT_FIELD, CHECK_FIELD, CHECK_INDETERMINATE_FIELD, CHILDREN_FIELD } from './utils/consts';
15
- /**
16
- * A helper function which applies the specified operation descriptors to the data.
17
- * * [Expanding and collapsing items]({% slug expansion_ways_treeview %}#toc-using-a-helper-function)
18
- * * [Selecting and deselecting items]({% slug selection_ways_treeview %}#toc-using-a-helper-function)
19
- * * [Checking and unchecking items]({% slug check_helper_funcs_treeview %})
20
- *
21
- * @param data - The data that will be processed.
22
- * @param operations - The operation descriptors that will be applied to the data.
23
- * @returns - The processed copy of the input data.
24
- *
25
- * @example
26
- * ```jsx
27
- * class App extends React.Component {
28
- * state = { items: tree, expand: [], select: [], check: [] };
29
- * render() {
30
- * const { expand, select, check } = this.state;
31
- * return (
32
- * <TreeView
33
- * data={processTreeViewItems(this.state.items, { expand, select, check })}
34
- * expandIcons={true} onExpandChange={this.onExpandChange} checkboxes={true}
35
- * onCheckChange={event => this.setState({ check: [ event.itemHierarchicalIndex ] })}
36
- * onItemClick={event => this.setState({ select: [ event.itemHierarchicalIndex ] })}
37
- * />
38
- * );
39
- * }
40
- * onExpandChange = (event) => {
41
- * let expand = this.state.expand.slice();
42
- * const index = expand.indexOf(event.itemHierarchicalIndex);
43
- * index === -1 ? expand.push(event.itemHierarchicalIndex) : expand.splice(index, 1);
44
- * this.setState({ expand });
45
- * }
46
- * }
47
- *
48
- * const tree = [{
49
- * text: 'Item1',
50
- * items: [
51
- * { text: 'Item1.1' },
52
- * { text: 'Item1.2' },
53
- * { text: 'Item1.3', items: [{ text: 'Item1.3.1' }] }]
54
- * }, {
55
- * text: 'Item2', disabled: true,
56
- * items: [{ text: 'Item2.1' }, { text: 'Item2.2' }, { text: 'Item2.3' }]
57
- * }, {
58
- * text: 'Item3'
59
- * }];
60
- *
61
- * ReactDOM.render(<App />, document.querySelector('my-app'));
62
- * ```
63
- */
64
- export function processTreeViewItems(data, operations) {
65
- if (!data || !data.length) {
66
- return [];
67
- }
68
- var result = data;
69
- var cloneField = operations.cloneField || 'cloned';
70
- var expandField = operations.expandField || EXPAND_FIELD;
71
- var selectField = operations.selectField || SELECT_FIELD;
72
- var checkField = operations.checkField || CHECK_FIELD;
73
- var childrenField = operations.childrenField || CHILDREN_FIELD;
74
- result = handleOperation(result, expandField, operations.expand, cloneField, childrenField);
75
- result = handleOperation(result, selectField, operations.select, cloneField, childrenField);
76
- result = handleOperation(result, checkField, operations.check, cloneField, childrenField);
77
- applyCheckIndeterminate(result, childrenField, operations.check);
78
- return result;
79
- }
80
- function handleOperation(items, defaultField, operation, cloneField, childrenField) {
81
- if (operation) {
82
- var _a = parseOperation(operation, defaultField), ids = _a.ids, field = _a.field;
83
- var indices = !isArray(operation) && operation.idField ? resolveItemsIds(ids, operation.idField, items, childrenField) : ids;
84
- return raiseFlags(items, indices, field, cloneField, childrenField);
85
- }
86
- else {
87
- return items;
88
- }
89
- }
90
- function parseOperation(operation, defaultField) {
91
- var ids;
92
- var field;
93
- if (isArray(operation)) {
94
- ids = operation;
95
- field = defaultField;
96
- }
97
- else {
98
- ids = operation.ids || [];
99
- field = operation.operationField || defaultField;
100
- }
101
- return { ids: ids, field: field };
102
- }
103
- function raiseFlags(items, indices, field, cloneField, childrenField) {
104
- var result = items;
105
- indices.forEach(function (itemIndex) {
106
- result = updateItem(result, itemIndex, function (item) { return raiseNestedFlag(field, item); }, cloneField, childrenField);
107
- });
108
- return result;
109
- }
110
- function raiseNestedFlag(fieldName, dataItem) {
111
- var fields = (fieldName || '').split('.');
112
- var item = dataItem;
113
- for (var index = 0; index < fields.length; index++) {
114
- var field = fields[index];
115
- if (index === fields.length - 1) {
116
- item[field] = true;
117
- }
118
- else if (item[field] !== undefined) {
119
- item[field] = __assign({}, item[field]);
120
- item = item[field];
121
- }
122
- else {
123
- return;
124
- }
125
- }
126
- }
127
- function applyCheckIndeterminate(items, childrenField, check) {
128
- if (check && !isArray(check) && check.applyCheckIndeterminate) {
129
- var checkField = parseOperation(check, CHECK_FIELD).field;
130
- var checkIndeterminateField = check.checkIndeterminateField || CHECK_INDETERMINATE_FIELD;
131
- for (var i = 0; i < items.length; i++) {
132
- var item = items[i];
133
- var subItems = item[childrenField];
134
- if (subItems) {
135
- applyCheckIndeterminateHelper(subItems, getNestedValue(checkField, item) ? [] : [item], childrenField, checkField, checkIndeterminateField);
136
- }
137
- }
138
- }
139
- }
140
- function applyCheckIndeterminateHelper(data, parents, childrenField, checkField, checkIndeterminateField) {
141
- // The updates will be direct because the corresponding items
142
- // are already cloned because of their checked children.
143
- var parentsAlreadyUpdated = false;
144
- for (var i = 0; i < data.length; i++) {
145
- var item = data[i];
146
- if (getNestedValue(checkField, item)) {
147
- if (!parentsAlreadyUpdated) {
148
- for (var j = 0; j < parents.length; j++) {
149
- raiseNestedFlag(checkIndeterminateField, parents[j]);
150
- }
151
- }
152
- parentsAlreadyUpdated = true;
153
- if (item[childrenField]) {
154
- applyCheckIndeterminateHelper(item[childrenField], [], childrenField, checkField, checkIndeterminateField);
155
- }
156
- }
157
- else {
158
- if (item[childrenField]) {
159
- applyCheckIndeterminateHelper(item[childrenField], parentsAlreadyUpdated ? [item] : parents.concat([item]), childrenField, checkField, checkIndeterminateField);
160
- }
161
- }
162
- }
163
- }
@@ -1,40 +0,0 @@
1
- /**
2
- * @hidden
3
- */
4
- export declare const EXPAND_FIELD = "expanded";
5
- /**
6
- * @hidden
7
- */
8
- export declare const TEXT_FIELD = "text";
9
- /**
10
- * @hidden
11
- */
12
- export declare const DISABLED_FIELD = "disabled";
13
- /**
14
- * @hidden
15
- */
16
- export declare const CHILDREN_FIELD = "items";
17
- /**
18
- * @hidden
19
- */
20
- export declare const HAS_CHILDREN_FIELD = "hasChildren";
21
- /**
22
- * @hidden
23
- */
24
- export declare const SELECT_FIELD = "selected";
25
- /**
26
- * @hidden
27
- */
28
- export declare const CHECK_FIELD = "checked";
29
- /**
30
- * @hidden
31
- */
32
- export declare const CHECK_INDETERMINATE_FIELD = "checkIndeterminate";
33
- /**
34
- * @hidden
35
- */
36
- export declare const DOM_KENDO_ITEM_ID_FIELD = "_kendoItemId";
37
- /**
38
- * @hidden
39
- */
40
- export declare const DOM_KENDO_TREEVIEW_GUID_FIELD = "_kendoTreeViewGuid";
@@ -1,40 +0,0 @@
1
- /**
2
- * @hidden
3
- */
4
- export var EXPAND_FIELD = 'expanded';
5
- /**
6
- * @hidden
7
- */
8
- export var TEXT_FIELD = 'text';
9
- /**
10
- * @hidden
11
- */
12
- export var DISABLED_FIELD = 'disabled';
13
- /**
14
- * @hidden
15
- */
16
- export var CHILDREN_FIELD = 'items';
17
- /**
18
- * @hidden
19
- */
20
- export var HAS_CHILDREN_FIELD = 'hasChildren';
21
- /**
22
- * @hidden
23
- */
24
- export var SELECT_FIELD = 'selected';
25
- /**
26
- * @hidden
27
- */
28
- export var CHECK_FIELD = 'checked';
29
- /**
30
- * @hidden
31
- */
32
- export var CHECK_INDETERMINATE_FIELD = 'checkIndeterminate';
33
- /**
34
- * @hidden
35
- */
36
- export var DOM_KENDO_ITEM_ID_FIELD = '_kendoItemId';
37
- /**
38
- * @hidden
39
- */
40
- export var DOM_KENDO_TREEVIEW_GUID_FIELD = '_kendoTreeViewGuid';
@@ -1,5 +0,0 @@
1
- import { TreeFieldsService } from '@progress/kendo-react-common';
2
- /**
3
- * @hidden
4
- */
5
- export default function getItemIdUponKeyboardNavigation(item: any, itemId: string, items: any[], keyCode: number, fieldsSvc: TreeFieldsService): any;
@@ -1,76 +0,0 @@
1
- import { Keys } from '@progress/kendo-react-common';
2
- import { isItemExpandedAndWithChildren, isEnabledAndAllParentsEnabled, treeIdUtils } from '@progress/kendo-react-common';
3
- /**
4
- * @hidden
5
- */
6
- export default function getItemIdUponKeyboardNavigation(item, itemId, items, keyCode, fieldsSvc) {
7
- switch (keyCode) {
8
- case Keys.left:
9
- return getIdUponLeftKey();
10
- case Keys.right:
11
- return getIdUponRightKey();
12
- case Keys.up:
13
- return getIdUponUpKey();
14
- case Keys.down:
15
- return getIdUponDownKey();
16
- case Keys.home:
17
- return treeIdUtils.ZERO_LEVEL_ZERO_NODE_ID;
18
- case Keys.end:
19
- return getIdUponEndKey();
20
- default:
21
- return itemId;
22
- }
23
- function getIdUponLeftKey() {
24
- return treeIdUtils.isIdZeroLevel(itemId)
25
- // For expanded disabled items, navigate directly to the parent.
26
- // Collapse cannot happen because an event is not fired to the client.
27
- || (fieldsSvc.expanded(item) && isEnabledAndAllParentsEnabled(itemId, items, fieldsSvc)) ?
28
- itemId : treeIdUtils.getDirectParentId(itemId);
29
- }
30
- function getIdUponRightKey() {
31
- return isItemExpandedAndWithChildren(item, fieldsSvc) ? treeIdUtils.getFirstChildId(itemId) : itemId;
32
- }
33
- function getIdUponUpKey() {
34
- var index = Number(treeIdUtils.getShortId(itemId));
35
- var parentId = treeIdUtils.getDirectParentId(itemId);
36
- return index ? getLastNotOpenedChildId(treeIdUtils.createId(index - 1, parentId), items, fieldsSvc) :
37
- treeIdUtils.isIdZeroLevel(itemId) ? itemId : parentId;
38
- }
39
- function getIdUponDownKey() {
40
- if (isItemExpandedAndWithChildren(item, fieldsSvc)) {
41
- return treeIdUtils.getFirstChildId(itemId);
42
- }
43
- else {
44
- return getNextItemId(itemId, items, fieldsSvc) || itemId;
45
- }
46
- }
47
- function getIdUponEndKey() {
48
- var result = (items.length - 1).toString();
49
- var currentItem = items[items.length - 1];
50
- var children;
51
- while (isItemExpandedAndWithChildren(currentItem, fieldsSvc)) {
52
- children = currentItem[fieldsSvc.getChildrenField()];
53
- result = treeIdUtils.createId(children.length - 1, result);
54
- currentItem = children[children.length - 1];
55
- }
56
- return result;
57
- }
58
- }
59
- function getNextItemId(itemId, items, fieldsSvc) {
60
- var parentId = treeIdUtils.getDirectParentId(itemId);
61
- var parent = parentId ? treeIdUtils.getItemById(parentId, items, fieldsSvc.getChildrenField()) : undefined;
62
- var siblings = parent ? parent[fieldsSvc.getChildrenField()] : items;
63
- var index = Number(treeIdUtils.getShortId(itemId));
64
- return index < siblings.length - 1 ?
65
- treeIdUtils.createId(index + 1, parentId) :
66
- parent ? getNextItemId(parentId, items, fieldsSvc) : undefined;
67
- }
68
- function getLastNotOpenedChildId(itemId, items, fieldsSvc) {
69
- var item = treeIdUtils.getItemById(itemId, items, fieldsSvc.getChildrenField());
70
- if (isItemExpandedAndWithChildren(item, fieldsSvc)) {
71
- return getLastNotOpenedChildId(treeIdUtils.createId(item[fieldsSvc.getChildrenField()].length - 1, itemId), items, fieldsSvc);
72
- }
73
- else {
74
- return itemId;
75
- }
76
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * The props of the ItemRender component ([see example]({% slug rendering_treeview %})).
3
- */
4
- export interface ItemRenderProps {
5
- /**
6
- * The item that is rendered.
7
- */
8
- item: any;
9
- /**
10
- * 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.
11
- */
12
- itemHierarchicalIndex: string;
13
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- /* eslint-disable max-len */
3
- Object.defineProperty(exports, "__esModule", { value: true });