@progress/kendo-vue-treeview 3.2.2-dev.202204181420

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 (87) hide show
  1. package/LICENSE.md +11 -0
  2. package/NOTICE.txt +86 -0
  3. package/README.md +53 -0
  4. package/dist/cdn/js/kendo-vue-treeview.js +1 -0
  5. package/dist/es/ItemRenderProps.d.ts +13 -0
  6. package/dist/es/ItemRenderProps.js +1 -0
  7. package/dist/es/TreeView.d.ts +45 -0
  8. package/dist/es/TreeView.js +359 -0
  9. package/dist/es/TreeViewDragAnalyzer.d.ts +135 -0
  10. package/dist/es/TreeViewDragAnalyzer.js +184 -0
  11. package/dist/es/TreeViewDragClue.d.ts +135 -0
  12. package/dist/es/TreeViewDragClue.js +78 -0
  13. package/dist/es/TreeViewItem.d.ts +69 -0
  14. package/dist/es/TreeViewItem.js +359 -0
  15. package/dist/es/TreeViewOperationDescriptors.d.ts +76 -0
  16. package/dist/es/TreeViewOperationDescriptors.js +1 -0
  17. package/dist/es/TreeViewProps.d.ts +122 -0
  18. package/dist/es/TreeViewProps.js +0 -0
  19. package/dist/es/additionalTypes.ts +9 -0
  20. package/dist/es/events.d.ts +135 -0
  21. package/dist/es/events.js +0 -0
  22. package/dist/es/handleTreeViewCheckChange.d.ts +67 -0
  23. package/dist/es/handleTreeViewCheckChange.js +195 -0
  24. package/dist/es/main.d.ts +12 -0
  25. package/dist/es/main.js +8 -0
  26. package/dist/es/moveTreeViewItem.d.ts +109 -0
  27. package/dist/es/moveTreeViewItem.js +156 -0
  28. package/dist/es/package-metadata.d.ts +5 -0
  29. package/dist/es/package-metadata.js +11 -0
  30. package/dist/es/processTreeViewItems.d.ts +51 -0
  31. package/dist/es/processTreeViewItems.js +166 -0
  32. package/dist/es/utils/FieldsService.d.ts +26 -0
  33. package/dist/es/utils/FieldsService.js +50 -0
  34. package/dist/es/utils/SortedPublicItemIds.d.ts +8 -0
  35. package/dist/es/utils/SortedPublicItemIds.js +26 -0
  36. package/dist/es/utils/consts.d.ts +40 -0
  37. package/dist/es/utils/consts.js +40 -0
  38. package/dist/es/utils/getItemIdUponKeyboardNavigation.d.ts +5 -0
  39. package/dist/es/utils/getItemIdUponKeyboardNavigation.js +77 -0
  40. package/dist/es/utils/itemIdUtils.d.ts +60 -0
  41. package/dist/es/utils/itemIdUtils.js +117 -0
  42. package/dist/es/utils/itemUtils.d.ts +45 -0
  43. package/dist/es/utils/itemUtils.js +191 -0
  44. package/dist/es/utils/misc.d.ts +9 -0
  45. package/dist/es/utils/misc.js +17 -0
  46. package/dist/npm/ItemRenderProps.d.ts +13 -0
  47. package/dist/npm/ItemRenderProps.js +3 -0
  48. package/dist/npm/TreeView.d.ts +45 -0
  49. package/dist/npm/TreeView.js +376 -0
  50. package/dist/npm/TreeViewDragAnalyzer.d.ts +135 -0
  51. package/dist/npm/TreeViewDragAnalyzer.js +186 -0
  52. package/dist/npm/TreeViewDragClue.d.ts +135 -0
  53. package/dist/npm/TreeViewDragClue.js +88 -0
  54. package/dist/npm/TreeViewItem.d.ts +69 -0
  55. package/dist/npm/TreeViewItem.js +373 -0
  56. package/dist/npm/TreeViewOperationDescriptors.d.ts +76 -0
  57. package/dist/npm/TreeViewOperationDescriptors.js +3 -0
  58. package/dist/npm/TreeViewProps.d.ts +122 -0
  59. package/dist/npm/TreeViewProps.js +2 -0
  60. package/dist/npm/additionalTypes.ts +9 -0
  61. package/dist/npm/events.d.ts +135 -0
  62. package/dist/npm/events.js +2 -0
  63. package/dist/npm/handleTreeViewCheckChange.d.ts +67 -0
  64. package/dist/npm/handleTreeViewCheckChange.js +199 -0
  65. package/dist/npm/main.d.ts +12 -0
  66. package/dist/npm/main.js +17 -0
  67. package/dist/npm/moveTreeViewItem.d.ts +109 -0
  68. package/dist/npm/moveTreeViewItem.js +159 -0
  69. package/dist/npm/package-metadata.d.ts +5 -0
  70. package/dist/npm/package-metadata.js +14 -0
  71. package/dist/npm/processTreeViewItems.d.ts +51 -0
  72. package/dist/npm/processTreeViewItems.js +169 -0
  73. package/dist/npm/utils/FieldsService.d.ts +26 -0
  74. package/dist/npm/utils/FieldsService.js +52 -0
  75. package/dist/npm/utils/SortedPublicItemIds.d.ts +8 -0
  76. package/dist/npm/utils/SortedPublicItemIds.js +28 -0
  77. package/dist/npm/utils/consts.d.ts +40 -0
  78. package/dist/npm/utils/consts.js +43 -0
  79. package/dist/npm/utils/getItemIdUponKeyboardNavigation.d.ts +5 -0
  80. package/dist/npm/utils/getItemIdUponKeyboardNavigation.js +80 -0
  81. package/dist/npm/utils/itemIdUtils.d.ts +60 -0
  82. package/dist/npm/utils/itemIdUtils.js +132 -0
  83. package/dist/npm/utils/itemUtils.d.ts +45 -0
  84. package/dist/npm/utils/itemUtils.js +205 -0
  85. package/dist/npm/utils/misc.d.ts +9 -0
  86. package/dist/npm/utils/misc.js +22 -0
  87. package/package.json +56 -0
@@ -0,0 +1,40 @@
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';
@@ -0,0 +1,5 @@
1
+ import FieldsService from './FieldsService';
2
+ /**
3
+ * @hidden
4
+ */
5
+ export default function getItemIdUponKeyboardNavigation(item: any, itemId: string, items: any[], keyCode: number, fieldsSvc: FieldsService): any;
@@ -0,0 +1,77 @@
1
+ import { Keys } from '@progress/kendo-vue-common';
2
+ import * as idUtils from './itemIdUtils';
3
+ import { isItemExpandedAndWithChildren, isEnabledAndAllParentsEnabled } from './itemUtils';
4
+ /**
5
+ * @hidden
6
+ */
7
+ export default function getItemIdUponKeyboardNavigation(item, itemId, items, keyCode, fieldsSvc) {
8
+ switch (keyCode) {
9
+ case Keys.left:
10
+ return getIdUponLeftKey();
11
+ case Keys.right:
12
+ return getIdUponRightKey();
13
+ case Keys.up:
14
+ return getIdUponUpKey();
15
+ case Keys.down:
16
+ return getIdUponDownKey();
17
+ case Keys.home:
18
+ return idUtils.ZERO_LEVEL_ZERO_NODE_ID;
19
+ case Keys.end:
20
+ return getIdUponEndKey();
21
+ default:
22
+ return itemId;
23
+ }
24
+ function getIdUponLeftKey() {
25
+ return idUtils.isIdZeroLevel(itemId)
26
+ // For expanded disabled items, navigate directly to the parent.
27
+ // Collapse cannot happen because an event is not fired to the client.
28
+ || (fieldsSvc.expanded(item) && isEnabledAndAllParentsEnabled(itemId, items, fieldsSvc)) ?
29
+ itemId : idUtils.getDirectParentId(itemId);
30
+ }
31
+ function getIdUponRightKey() {
32
+ return isItemExpandedAndWithChildren(item, fieldsSvc) ? idUtils.getFirstChildId(itemId) : itemId;
33
+ }
34
+ function getIdUponUpKey() {
35
+ var index = Number(idUtils.getShortId(itemId));
36
+ var parentId = idUtils.getDirectParentId(itemId);
37
+ return index ? getLastNotOpenedChildId(idUtils.createId(index - 1, parentId), items, fieldsSvc) :
38
+ idUtils.isIdZeroLevel(itemId) ? itemId : parentId;
39
+ }
40
+ function getIdUponDownKey() {
41
+ if (isItemExpandedAndWithChildren(item, fieldsSvc)) {
42
+ return idUtils.getFirstChildId(itemId);
43
+ }
44
+ else {
45
+ return getNextItemId(itemId, items, fieldsSvc) || itemId;
46
+ }
47
+ }
48
+ function getIdUponEndKey() {
49
+ var result = (items.length - 1).toString();
50
+ var currentItem = items[items.length - 1];
51
+ var children;
52
+ while (isItemExpandedAndWithChildren(currentItem, fieldsSvc)) {
53
+ children = currentItem[fieldsSvc.getChildrenField()];
54
+ result = idUtils.createId(children.length - 1, result);
55
+ currentItem = children[children.length - 1];
56
+ }
57
+ return result;
58
+ }
59
+ }
60
+ function getNextItemId(itemId, items, fieldsSvc) {
61
+ var parentId = idUtils.getDirectParentId(itemId);
62
+ var parent = parentId ? idUtils.getItemById(parentId, items, fieldsSvc.getChildrenField()) : undefined;
63
+ var siblings = parent ? parent[fieldsSvc.getChildrenField()] : items;
64
+ var index = Number(idUtils.getShortId(itemId));
65
+ return index < siblings.length - 1 ?
66
+ idUtils.createId(index + 1, parentId) :
67
+ parent ? getNextItemId(parentId, items, fieldsSvc) : undefined;
68
+ }
69
+ function getLastNotOpenedChildId(itemId, items, fieldsSvc) {
70
+ var item = idUtils.getItemById(itemId, items, fieldsSvc.getChildrenField());
71
+ if (isItemExpandedAndWithChildren(item, fieldsSvc)) {
72
+ return getLastNotOpenedChildId(idUtils.createId(item[fieldsSvc.getChildrenField()].length - 1, itemId), items, fieldsSvc);
73
+ }
74
+ else {
75
+ return itemId;
76
+ }
77
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @hidden
3
+ */
4
+ export declare const EMPTY_ID = "";
5
+ /**
6
+ * @hidden
7
+ */
8
+ export declare const ZERO_LEVEL_ZERO_NODE_ID = "0";
9
+ /**
10
+ * @hidden
11
+ */
12
+ export declare const SEPARATOR = "_";
13
+ /**
14
+ * @hidden
15
+ */
16
+ export declare function getItemById(itemId: string, items: any, childrenField: string): any;
17
+ /**
18
+ * @hidden
19
+ */
20
+ export declare function getRootParentId(itemId: string): string;
21
+ /**
22
+ * @hidden
23
+ */
24
+ export declare function getIdWithoutRootParentId(itemId: string): string;
25
+ /**
26
+ * @hidden
27
+ */
28
+ export declare function getFirstChildId(itemId: string): string;
29
+ /**
30
+ * @hidden
31
+ */
32
+ export declare function createId(childId: string | number, parentId?: string): string;
33
+ /**
34
+ * @hidden
35
+ */
36
+ export declare function getDirectParentId(itemId: string): string;
37
+ /**
38
+ * @hidden
39
+ */
40
+ export declare function isIdEmptyOrZeroLevel(itemId: string): boolean;
41
+ /**
42
+ * @hidden
43
+ */
44
+ export declare function isIdZeroLevel(itemId: string): boolean;
45
+ /**
46
+ * @hidden
47
+ */
48
+ export declare function getAllShortIds(itemId: string): string[];
49
+ /**
50
+ * @hidden
51
+ */
52
+ export declare function getShortId(itemId: string): string;
53
+ /**
54
+ * @hidden
55
+ */
56
+ export declare function isItemFirstFromSiblings(itemId: string): boolean;
57
+ /**
58
+ * @hidden
59
+ */
60
+ export declare function getDecrementedItemIdAfterRemoval(removedItemId: string, itemId: string): string;
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @hidden
3
+ */
4
+ export var EMPTY_ID = '';
5
+ /**
6
+ * @hidden
7
+ */
8
+ export var ZERO_LEVEL_ZERO_NODE_ID = '0';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export var SEPARATOR = '_';
13
+ /**
14
+ * @hidden
15
+ */
16
+ export function getItemById(itemId, items, childrenField) {
17
+ if (isIdZeroLevel(itemId)) {
18
+ return items[Number(itemId)];
19
+ }
20
+ else {
21
+ var rootParentItem = items[Number(getRootParentId(itemId))];
22
+ var subItems = (rootParentItem && rootParentItem[childrenField]) || [];
23
+ return subItems.length ?
24
+ getItemById(getIdWithoutRootParentId(itemId), subItems, childrenField) : undefined;
25
+ }
26
+ }
27
+ /**
28
+ * @hidden
29
+ */
30
+ export function getRootParentId(itemId) {
31
+ return isIdEmptyOrZeroLevel(itemId) ? itemId : itemId.split(SEPARATOR)[0];
32
+ }
33
+ /**
34
+ * @hidden
35
+ */
36
+ export function getIdWithoutRootParentId(itemId) {
37
+ if (isIdEmptyOrZeroLevel(itemId)) {
38
+ return itemId;
39
+ }
40
+ else {
41
+ var firstSeparatorIndex = itemId.indexOf(SEPARATOR);
42
+ return itemId.substring(firstSeparatorIndex + 1);
43
+ }
44
+ }
45
+ /**
46
+ * @hidden
47
+ */
48
+ export function getFirstChildId(itemId) {
49
+ return createId('0', itemId);
50
+ }
51
+ /**
52
+ * @hidden
53
+ */
54
+ export function createId(childId, parentId) {
55
+ childId = childId.toString();
56
+ return parentId ? parentId + SEPARATOR + childId : childId;
57
+ }
58
+ /**
59
+ * @hidden
60
+ */
61
+ export function getDirectParentId(itemId) {
62
+ var lastSeparatorIndex = itemId.lastIndexOf(SEPARATOR);
63
+ return lastSeparatorIndex < 0 ? EMPTY_ID : itemId.substring(0, lastSeparatorIndex);
64
+ }
65
+ /**
66
+ * @hidden
67
+ */
68
+ export function isIdEmptyOrZeroLevel(itemId) {
69
+ return itemId === EMPTY_ID || itemId.indexOf(SEPARATOR) < 0;
70
+ }
71
+ /**
72
+ * @hidden
73
+ */
74
+ export function isIdZeroLevel(itemId) {
75
+ return itemId !== EMPTY_ID && itemId.indexOf(SEPARATOR) < 0;
76
+ }
77
+ /**
78
+ * @hidden
79
+ */
80
+ export function getAllShortIds(itemId) {
81
+ return itemId.split(SEPARATOR);
82
+ }
83
+ /**
84
+ * @hidden
85
+ */
86
+ export function getShortId(itemId) {
87
+ var lastSeparatorIndex = itemId.lastIndexOf(SEPARATOR);
88
+ return lastSeparatorIndex < 0 ? itemId : itemId.substring(lastSeparatorIndex + 1);
89
+ }
90
+ /**
91
+ * @hidden
92
+ */
93
+ export function isItemFirstFromSiblings(itemId) {
94
+ return getShortId(itemId) === ZERO_LEVEL_ZERO_NODE_ID;
95
+ }
96
+ /**
97
+ * @hidden
98
+ */
99
+ export function getDecrementedItemIdAfterRemoval(removedItemId, itemId) {
100
+ var preservedItemId = itemId;
101
+ removedItemId = 'r' + SEPARATOR + removedItemId;
102
+ itemId = 'r' + SEPARATOR + itemId;
103
+ var itemSharedPath = getDirectParentId(removedItemId) + SEPARATOR;
104
+ if (itemId.startsWith(itemSharedPath)) {
105
+ var itemNotSharedPath = itemId.substring(itemSharedPath.length);
106
+ if (itemNotSharedPath) {
107
+ var siblingShortId = getRootParentId(itemNotSharedPath);
108
+ if (Number(getShortId(removedItemId)) < Number(siblingShortId)) {
109
+ var decrementedId = itemSharedPath +
110
+ (Number(siblingShortId) - 1).toString() +
111
+ itemNotSharedPath.substring(siblingShortId.length);
112
+ return getIdWithoutRootParentId(decrementedId);
113
+ }
114
+ }
115
+ }
116
+ return preservedItemId;
117
+ }
@@ -0,0 +1,45 @@
1
+ import FieldsService from './FieldsService';
2
+ /**
3
+ * @hidden
4
+ */
5
+ export declare function hasChildren(item: any, childrenField: string): boolean;
6
+ /**
7
+ * @hidden
8
+ */
9
+ export declare function isItemExpandedAndWithChildren(item: any, fieldsSvc: FieldsService): boolean;
10
+ /**
11
+ * @hidden
12
+ */
13
+ export declare function resolveItemId(publicId: any, idField: string, items: any[], childrenField: string): string;
14
+ /**
15
+ * @hidden
16
+ */
17
+ export declare function resolveItemsIds(publicIds: any[], idField: string, items: any[], childrenField: string): string[];
18
+ /**
19
+ * @hidden
20
+ */
21
+ export declare function updateItem(items: any[], itemId: string, update: (item: any) => void, cloneField: string, childrenField: string): any[];
22
+ /**
23
+ * @hidden
24
+ */
25
+ export declare function isEnabledAndAllParentsEnabled(itemId: string, items: any, fieldsSvc: FieldsService): any;
26
+ /**
27
+ * @hidden
28
+ */
29
+ export declare function getAllDirectIndirectChildrenIds(item: any, itemId: string, childrenField: string, idField: string | undefined): any[];
30
+ /**
31
+ * @hidden
32
+ */
33
+ export declare function areAllDirectChildrenChecked(item: any, itemId: any, idField: string | undefined, childrenField: string, check: string[]): any;
34
+ /**
35
+ * @hidden
36
+ */
37
+ export declare function getAllParents(itemId: string, childrenField: string, items: any[]): any[];
38
+ /**
39
+ * @hidden
40
+ */
41
+ export declare function removeItem(itemId: string, childrenField: string, items: any[]): any[];
42
+ /**
43
+ * @hidden
44
+ */
45
+ export declare function addItem(item: any, operation: 'before' | 'after' | 'child', childrenField: string, targetItemId: string, items: any[]): any[];
@@ -0,0 +1,191 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { EMPTY_ID, isIdZeroLevel, createId, getRootParentId, getIdWithoutRootParentId, getAllShortIds } from './itemIdUtils';
13
+ import SortedPublicItemIds from './SortedPublicItemIds';
14
+ import { getNestedValue } from './misc';
15
+ /**
16
+ * @hidden
17
+ */
18
+ export function hasChildren(item, childrenField) {
19
+ var children = getNestedValue(childrenField, item);
20
+ return Boolean(children && children.length);
21
+ }
22
+ /**
23
+ * @hidden
24
+ */
25
+ export function isItemExpandedAndWithChildren(item, fieldsSvc) {
26
+ return fieldsSvc.expanded(item) && hasChildren(item, fieldsSvc.getChildrenField());
27
+ }
28
+ /**
29
+ * @hidden
30
+ */
31
+ export function resolveItemId(publicId, idField, items, childrenField) {
32
+ var resolvedIds = resolveItemsIds([publicId], idField, items, childrenField);
33
+ return resolvedIds.length ? resolvedIds[0] : undefined;
34
+ }
35
+ /**
36
+ * @hidden
37
+ */
38
+ export function resolveItemsIds(publicIds, idField, items, childrenField) {
39
+ var result = [];
40
+ var sortedIds = new SortedPublicItemIds();
41
+ sortedIds.init(publicIds);
42
+ resolveItemsIdsHelper(sortedIds, idField, items, EMPTY_ID, result, childrenField);
43
+ return result;
44
+ }
45
+ /**
46
+ * @hidden
47
+ */
48
+ export function updateItem(items, itemId, update, cloneField, childrenField) {
49
+ var _a;
50
+ var itemIndex = Number(getRootParentId(itemId));
51
+ if (itemIndex >= items.length) {
52
+ return items;
53
+ }
54
+ var result = items;
55
+ var item = items[itemIndex];
56
+ // Clone the item before updating it.
57
+ if (!item[cloneField]) {
58
+ result = items.slice();
59
+ item = result[itemIndex] = Object.assign({}, item, (_a = {}, _a[cloneField] = true, _a));
60
+ }
61
+ // Directly update the item.
62
+ if (isIdZeroLevel(itemId)) {
63
+ update(item);
64
+ }
65
+ else if (item[childrenField]) {
66
+ item[childrenField] = updateItem(item[childrenField], getIdWithoutRootParentId(itemId), update, cloneField, childrenField);
67
+ }
68
+ return result;
69
+ }
70
+ /**
71
+ * @hidden
72
+ */
73
+ export function isEnabledAndAllParentsEnabled(itemId, items, fieldsSvc) {
74
+ var ids = getAllShortIds(itemId);
75
+ var currentItems = items;
76
+ for (var i = 0; i < ids.length; i++) {
77
+ var currentItem = currentItems[Number(ids[i])];
78
+ if (fieldsSvc.disabled(currentItem)) {
79
+ return false;
80
+ }
81
+ else {
82
+ currentItems = currentItem[fieldsSvc.getChildrenField()];
83
+ }
84
+ }
85
+ return true;
86
+ }
87
+ /**
88
+ * @hidden
89
+ */
90
+ export function getAllDirectIndirectChildrenIds(item, itemId, childrenField, idField) {
91
+ return idField ? getChildrenPublicIds(item) : getChildrenHierarchicalIndices(item, itemId);
92
+ function getChildrenHierarchicalIndices(startItem, startItemId) {
93
+ var result = [];
94
+ var children = startItem[childrenField] || [];
95
+ for (var i = 0; i < children.length; i++) {
96
+ var id = createId(i, startItemId);
97
+ result.push(id);
98
+ result = result.concat(getChildrenHierarchicalIndices(children[i], id));
99
+ }
100
+ return result;
101
+ }
102
+ function getChildrenPublicIds(startItem) {
103
+ var result = [];
104
+ var children = startItem[childrenField] || [];
105
+ for (var i = 0; i < children.length; i++) {
106
+ result.push(getNestedValue(idField, children[i]));
107
+ result = result.concat(getChildrenPublicIds(children[i]));
108
+ }
109
+ return result;
110
+ }
111
+ }
112
+ /**
113
+ * @hidden
114
+ */
115
+ export function areAllDirectChildrenChecked(item, itemId, idField, childrenField, check) {
116
+ var children = item[childrenField] || [];
117
+ return children.every(function (child, index) {
118
+ return check.indexOf(idField ? getNestedValue(idField, child) : createId(index, itemId)) > -1;
119
+ });
120
+ }
121
+ /**
122
+ * @hidden
123
+ */
124
+ export function getAllParents(itemId, childrenField, items) {
125
+ var result = [];
126
+ var ids = getAllShortIds(itemId);
127
+ var currentItems = items;
128
+ for (var i = 0; i < ids.length - 1; i++) {
129
+ if (!currentItems) {
130
+ break;
131
+ }
132
+ var currentItem = currentItems[Number(ids[i])];
133
+ result.push(currentItem);
134
+ currentItems = currentItem[childrenField];
135
+ }
136
+ return result;
137
+ }
138
+ /**
139
+ * @hidden
140
+ */
141
+ export function removeItem(itemId, childrenField, items) {
142
+ var result = items.slice();
143
+ if (isIdZeroLevel(itemId)) {
144
+ result.splice(Number(itemId), 1);
145
+ }
146
+ else {
147
+ var rootParentIndex = Number(getRootParentId(itemId));
148
+ var rootParent = result[rootParentIndex] = __assign({}, result[rootParentIndex]);
149
+ rootParent[childrenField] = removeItem(getIdWithoutRootParentId(itemId), childrenField, rootParent[childrenField]);
150
+ }
151
+ return result;
152
+ }
153
+ /**
154
+ * @hidden
155
+ */
156
+ export function addItem(item, operation, childrenField, targetItemId, items) {
157
+ var result = items.slice();
158
+ if (isIdZeroLevel(targetItemId)) {
159
+ if (operation === 'child') {
160
+ var targetItem = result[Number(targetItemId)] = __assign({}, result[Number(targetItemId)]);
161
+ if (targetItem[childrenField]) {
162
+ targetItem[childrenField] = targetItem[childrenField].slice();
163
+ targetItem[childrenField].push(item);
164
+ }
165
+ else {
166
+ targetItem[childrenField] = [item];
167
+ }
168
+ }
169
+ else {
170
+ result.splice(Number(targetItemId) + (operation === 'after' ? 1 : 0), 0, item);
171
+ }
172
+ }
173
+ else {
174
+ var rootParentIndex = Number(getRootParentId(targetItemId));
175
+ var rootParent = result[rootParentIndex] = __assign({}, result[rootParentIndex]);
176
+ rootParent[childrenField] = addItem(item, operation, childrenField, getIdWithoutRootParentId(targetItemId), rootParent[childrenField]);
177
+ }
178
+ return result;
179
+ }
180
+ function resolveItemsIdsHelper(publicItemIds, idField, items, parentItemId, resolvedIds, childrenField) {
181
+ for (var i = 0; i < items.length; i++) {
182
+ var item = items[i];
183
+ var id = createId(i, parentItemId);
184
+ if (publicItemIds.hasId(getNestedValue(idField, item))) {
185
+ resolvedIds.push(id);
186
+ }
187
+ if (hasChildren(item, childrenField)) {
188
+ resolveItemsIdsHelper(publicItemIds, idField, getNestedValue(childrenField, item), id, resolvedIds, childrenField);
189
+ }
190
+ }
191
+ }
@@ -0,0 +1,9 @@
1
+ import { TreeViewOperationDescriptor } from '../TreeViewOperationDescriptors';
2
+ /**
3
+ * @hidden
4
+ */
5
+ export declare function getNestedValue(fieldName: string | undefined, dataItem: any): any;
6
+ /**
7
+ * @hidden
8
+ */
9
+ export declare function isArray(operation: string[] | TreeViewOperationDescriptor): operation is any[];
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @hidden
3
+ */
4
+ export function getNestedValue(fieldName, dataItem) {
5
+ var path = (fieldName || '').split('.');
6
+ var data = dataItem;
7
+ path.forEach(function (p) {
8
+ data = data ? data[p] : undefined;
9
+ });
10
+ return data;
11
+ }
12
+ /**
13
+ * @hidden
14
+ */
15
+ export function isArray(operation) {
16
+ return operation.length !== undefined;
17
+ }
@@ -0,0 +1,13 @@
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
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* eslint-disable max-len */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,45 @@
1
+ import { DefineComponent } from './additionalTypes';
2
+ import { RecordPropsDefinition, ComponentOptions } from 'vue/types/options';
3
+ declare type DefaultData<V> = object | ((this: V) => {});
4
+ declare type DefaultMethods<V> = {
5
+ [key: string]: (this: V, ...args: any[]) => any;
6
+ };
7
+ import { TreeViewProps } from './TreeViewProps';
8
+ import FieldsService from './utils/FieldsService';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export interface TreeViewState {
13
+ blurRequest: any;
14
+ fieldsSvc: FieldsService;
15
+ treeGuid: string;
16
+ allowExplicitFocus: boolean;
17
+ }
18
+ /**
19
+ * @hidden
20
+ */
21
+ export interface TreeViewComputed {
22
+ [key: string]: any;
23
+ }
24
+ /**
25
+ * @hidden
26
+ */
27
+ export interface TreeViewMethods {
28
+ [key: string]: any;
29
+ }
30
+ /**
31
+ * @hidden
32
+ */
33
+ export interface TreeViewData {
34
+ focusedItemId?: string;
35
+ focusedItemPublicId?: any;
36
+ tabbableItemId?: string;
37
+ }
38
+ /**
39
+ * @hidden
40
+ */
41
+ export interface TreeViewAll extends Vue, TreeViewMethods, TreeViewData, TreeViewComputed, TreeViewState {
42
+ }
43
+ declare let TreeViewVue2: ComponentOptions<TreeViewAll, DefaultData<TreeViewData>, DefaultMethods<TreeViewAll>, TreeViewComputed, RecordPropsDefinition<TreeViewProps>>;
44
+ declare const TreeView: DefineComponent<TreeViewProps, any, TreeViewData, TreeViewComputed, TreeViewMethods, {}, {}, {}, string, TreeViewProps, TreeViewProps, {}>;
45
+ export { TreeView, TreeViewVue2 };