@progress/kendo-vue-treeview 5.3.0-dev.202409130647 → 5.3.0-develop.1

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 (161) hide show
  1. package/README.md +26 -35
  2. package/TreeView.js +8 -0
  3. package/TreeView.mjs +294 -0
  4. package/TreeViewDragAnalyzer.js +8 -0
  5. package/TreeViewDragAnalyzer.mjs +74 -0
  6. package/TreeViewDragClue.js +8 -0
  7. package/TreeViewDragClue.mjs +56 -0
  8. package/TreeViewItem.js +8 -0
  9. package/TreeViewItem.mjs +271 -0
  10. package/dist/cdn/js/kendo-vue-treeview.js +8 -1
  11. package/handleTreeViewCheckChange.js +8 -0
  12. package/handleTreeViewCheckChange.mjs +64 -0
  13. package/index.d.mts +950 -0
  14. package/index.d.ts +950 -0
  15. package/index.js +8 -0
  16. package/index.mjs +23 -0
  17. package/moveTreeViewItem.js +8 -0
  18. package/moveTreeViewItem.mjs +45 -0
  19. package/package-metadata.js +8 -0
  20. package/package-metadata.mjs +18 -0
  21. package/package.json +25 -46
  22. package/processTreeViewItems.js +8 -0
  23. package/processTreeViewItems.mjs +90 -0
  24. package/utils/FieldsService.js +8 -0
  25. package/utils/FieldsService.mjs +59 -0
  26. package/utils/SortedPublicItemIds.js +8 -0
  27. package/utils/SortedPublicItemIds.mjs +26 -0
  28. package/utils/consts.js +8 -0
  29. package/utils/consts.mjs +20 -0
  30. package/utils/getItemIdUponKeyboardNavigation.js +8 -0
  31. package/utils/getItemIdUponKeyboardNavigation.mjs +65 -0
  32. package/utils/itemIdUtils.js +8 -0
  33. package/utils/itemIdUtils.mjs +82 -0
  34. package/utils/itemUtils.js +8 -0
  35. package/utils/itemUtils.mjs +140 -0
  36. package/utils/misc.js +8 -0
  37. package/utils/misc.mjs +21 -0
  38. package/dist/es/ItemRenderProps.d.ts +0 -13
  39. package/dist/es/ItemRenderProps.js +0 -2
  40. package/dist/es/TreeView.d.ts +0 -116
  41. package/dist/es/TreeView.js +0 -450
  42. package/dist/es/TreeViewDragAnalyzer.d.ts +0 -63
  43. package/dist/es/TreeViewDragAnalyzer.js +0 -111
  44. package/dist/es/TreeViewDragClue.d.ts +0 -78
  45. package/dist/es/TreeViewDragClue.js +0 -116
  46. package/dist/es/TreeViewItem.d.ts +0 -85
  47. package/dist/es/TreeViewItem.js +0 -415
  48. package/dist/es/TreeViewOperationDescriptors.d.ts +0 -76
  49. package/dist/es/TreeViewOperationDescriptors.js +0 -2
  50. package/dist/es/TreeViewProps.d.ts +0 -126
  51. package/dist/es/TreeViewProps.js +0 -1
  52. package/dist/es/additionalTypes.ts +0 -21
  53. package/dist/es/events.d.ts +0 -143
  54. package/dist/es/events.js +0 -2
  55. package/dist/es/handleTreeViewCheckChange.d.ts +0 -49
  56. package/dist/es/handleTreeViewCheckChange.js +0 -177
  57. package/dist/es/main.d.ts +0 -12
  58. package/dist/es/main.js +0 -8
  59. package/dist/es/moveTreeViewItem.d.ts +0 -46
  60. package/dist/es/moveTreeViewItem.js +0 -93
  61. package/dist/es/package-metadata.d.ts +0 -5
  62. package/dist/es/package-metadata.js +0 -11
  63. package/dist/es/processTreeViewItems.d.ts +0 -24
  64. package/dist/es/processTreeViewItems.js +0 -139
  65. package/dist/es/utils/FieldsService.d.ts +0 -26
  66. package/dist/es/utils/FieldsService.js +0 -50
  67. package/dist/es/utils/SortedPublicItemIds.d.ts +0 -8
  68. package/dist/es/utils/SortedPublicItemIds.js +0 -24
  69. package/dist/es/utils/consts.d.ts +0 -40
  70. package/dist/es/utils/consts.js +0 -40
  71. package/dist/es/utils/getItemIdUponKeyboardNavigation.d.ts +0 -5
  72. package/dist/es/utils/getItemIdUponKeyboardNavigation.js +0 -77
  73. package/dist/es/utils/itemIdUtils.d.ts +0 -60
  74. package/dist/es/utils/itemIdUtils.js +0 -117
  75. package/dist/es/utils/itemUtils.d.ts +0 -45
  76. package/dist/es/utils/itemUtils.js +0 -191
  77. package/dist/es/utils/misc.d.ts +0 -9
  78. package/dist/es/utils/misc.js +0 -17
  79. package/dist/esm/ItemRenderProps.d.ts +0 -13
  80. package/dist/esm/ItemRenderProps.js +0 -2
  81. package/dist/esm/TreeView.d.ts +0 -116
  82. package/dist/esm/TreeView.js +0 -450
  83. package/dist/esm/TreeViewDragAnalyzer.d.ts +0 -63
  84. package/dist/esm/TreeViewDragAnalyzer.js +0 -111
  85. package/dist/esm/TreeViewDragClue.d.ts +0 -78
  86. package/dist/esm/TreeViewDragClue.js +0 -116
  87. package/dist/esm/TreeViewItem.d.ts +0 -85
  88. package/dist/esm/TreeViewItem.js +0 -415
  89. package/dist/esm/TreeViewOperationDescriptors.d.ts +0 -76
  90. package/dist/esm/TreeViewOperationDescriptors.js +0 -2
  91. package/dist/esm/TreeViewProps.d.ts +0 -126
  92. package/dist/esm/TreeViewProps.js +0 -1
  93. package/dist/esm/additionalTypes.ts +0 -21
  94. package/dist/esm/events.d.ts +0 -143
  95. package/dist/esm/events.js +0 -2
  96. package/dist/esm/handleTreeViewCheckChange.d.ts +0 -49
  97. package/dist/esm/handleTreeViewCheckChange.js +0 -177
  98. package/dist/esm/main.d.ts +0 -12
  99. package/dist/esm/main.js +0 -8
  100. package/dist/esm/moveTreeViewItem.d.ts +0 -46
  101. package/dist/esm/moveTreeViewItem.js +0 -93
  102. package/dist/esm/package-metadata.d.ts +0 -5
  103. package/dist/esm/package-metadata.js +0 -11
  104. package/dist/esm/package.json +0 -3
  105. package/dist/esm/processTreeViewItems.d.ts +0 -24
  106. package/dist/esm/processTreeViewItems.js +0 -139
  107. package/dist/esm/utils/FieldsService.d.ts +0 -26
  108. package/dist/esm/utils/FieldsService.js +0 -50
  109. package/dist/esm/utils/SortedPublicItemIds.d.ts +0 -8
  110. package/dist/esm/utils/SortedPublicItemIds.js +0 -24
  111. package/dist/esm/utils/consts.d.ts +0 -40
  112. package/dist/esm/utils/consts.js +0 -40
  113. package/dist/esm/utils/getItemIdUponKeyboardNavigation.d.ts +0 -5
  114. package/dist/esm/utils/getItemIdUponKeyboardNavigation.js +0 -77
  115. package/dist/esm/utils/itemIdUtils.d.ts +0 -60
  116. package/dist/esm/utils/itemIdUtils.js +0 -117
  117. package/dist/esm/utils/itemUtils.d.ts +0 -45
  118. package/dist/esm/utils/itemUtils.js +0 -191
  119. package/dist/esm/utils/misc.d.ts +0 -9
  120. package/dist/esm/utils/misc.js +0 -17
  121. package/dist/npm/ItemRenderProps.d.ts +0 -13
  122. package/dist/npm/ItemRenderProps.js +0 -3
  123. package/dist/npm/TreeView.d.ts +0 -116
  124. package/dist/npm/TreeView.js +0 -457
  125. package/dist/npm/TreeViewDragAnalyzer.d.ts +0 -63
  126. package/dist/npm/TreeViewDragAnalyzer.js +0 -114
  127. package/dist/npm/TreeViewDragClue.d.ts +0 -78
  128. package/dist/npm/TreeViewDragClue.js +0 -123
  129. package/dist/npm/TreeViewItem.d.ts +0 -85
  130. package/dist/npm/TreeViewItem.js +0 -422
  131. package/dist/npm/TreeViewOperationDescriptors.d.ts +0 -76
  132. package/dist/npm/TreeViewOperationDescriptors.js +0 -3
  133. package/dist/npm/TreeViewProps.d.ts +0 -126
  134. package/dist/npm/TreeViewProps.js +0 -2
  135. package/dist/npm/additionalTypes.ts +0 -21
  136. package/dist/npm/events.d.ts +0 -143
  137. package/dist/npm/events.js +0 -3
  138. package/dist/npm/handleTreeViewCheckChange.d.ts +0 -49
  139. package/dist/npm/handleTreeViewCheckChange.js +0 -181
  140. package/dist/npm/main.d.ts +0 -12
  141. package/dist/npm/main.js +0 -17
  142. package/dist/npm/moveTreeViewItem.d.ts +0 -46
  143. package/dist/npm/moveTreeViewItem.js +0 -93
  144. package/dist/npm/package-metadata.d.ts +0 -5
  145. package/dist/npm/package-metadata.js +0 -14
  146. package/dist/npm/processTreeViewItems.d.ts +0 -24
  147. package/dist/npm/processTreeViewItems.js +0 -142
  148. package/dist/npm/utils/FieldsService.d.ts +0 -26
  149. package/dist/npm/utils/FieldsService.js +0 -52
  150. package/dist/npm/utils/SortedPublicItemIds.d.ts +0 -8
  151. package/dist/npm/utils/SortedPublicItemIds.js +0 -26
  152. package/dist/npm/utils/consts.d.ts +0 -40
  153. package/dist/npm/utils/consts.js +0 -43
  154. package/dist/npm/utils/getItemIdUponKeyboardNavigation.d.ts +0 -5
  155. package/dist/npm/utils/getItemIdUponKeyboardNavigation.js +0 -80
  156. package/dist/npm/utils/itemIdUtils.d.ts +0 -60
  157. package/dist/npm/utils/itemIdUtils.js +0 -132
  158. package/dist/npm/utils/itemUtils.d.ts +0 -45
  159. package/dist/npm/utils/itemUtils.js +0 -205
  160. package/dist/npm/utils/misc.d.ts +0 -9
  161. package/dist/npm/utils/misc.js +0 -22
@@ -0,0 +1,271 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 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 { defineComponent as f, h as I, createVNode as s, isVNode as b } from "vue";
9
+ import { guid as g, getRef as l, getTemplate as k, classNames as d, Draggable as x, Icon as v, setRef as $, kendoThemeMaps as S } from "@progress/kendo-vue-common";
10
+ import { createId as C } from "./utils/itemIdUtils.mjs";
11
+ import { hasChildren as a, isItemExpandedAndWithChildren as E } from "./utils/itemUtils.mjs";
12
+ import { Reveal as D } from "@progress/kendo-vue-animation";
13
+ import { DOM_KENDO_ITEM_ID_FIELD as o, DOM_KENDO_TREEVIEW_GUID_FIELD as F } from "./utils/consts.mjs";
14
+ import { caretAltDownIcon as R, caretAltLeftIcon as M, caretAltRightIcon as _ } from "@progress/kendo-svg-icons";
15
+ function c(e) {
16
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !b(e);
17
+ }
18
+ const {
19
+ sizeMap: N
20
+ } = S, w = /* @__PURE__ */ f({
21
+ name: "KendoTreeViewItem",
22
+ props: {
23
+ item: Object,
24
+ itemId: String,
25
+ treeGuid: String,
26
+ animate: Boolean,
27
+ focusedItemId: String,
28
+ tabbableItemId: String,
29
+ fieldsService: Object,
30
+ itemUI: Object,
31
+ ariaMultiSelectable: Boolean,
32
+ expandIcons: Boolean,
33
+ checkboxes: Boolean,
34
+ onFocusDomElNeeded: Object,
35
+ draggable: Boolean,
36
+ isRtl: Boolean,
37
+ size: {
38
+ type: String,
39
+ default: "medium",
40
+ validator: function(e) {
41
+ return [null, "small", "medium", "large"].includes(e);
42
+ }
43
+ },
44
+ disabled: Boolean,
45
+ ariaLevel: Number,
46
+ onItemClick: Function,
47
+ onExpandChange: Function,
48
+ onCheckChange: Function,
49
+ onPress: Function,
50
+ onDrag: Function,
51
+ onRelease: Function,
52
+ onFocusdomelneeded: Function
53
+ },
54
+ computed: {
55
+ fieldsSvc() {
56
+ return this.$props.fieldsService;
57
+ },
58
+ currentTabIndex() {
59
+ return (this.$props.focusedItemId || this.$props.tabbableItemId) === this.itemId ? 0 : -1;
60
+ },
61
+ ariaExpanded() {
62
+ return this.fieldsSvc.hasChildren(this.item) || a(this.item, this.fieldsSvc.getChildrenField()) ? !!this.fieldsSvc.expanded(this.item) : void 0;
63
+ },
64
+ ariaChecked() {
65
+ if (this.$props.checkboxes)
66
+ return this.fieldsSvc.checked(this.item) ? "true" : this.fieldsSvc.checkIndeterminate(this.item) ? "mixed" : "false";
67
+ },
68
+ ariaSelected() {
69
+ return this.fieldsSvc.selected(this.item) ? !0 : this.$props.ariaMultiSelectable ? this.computedDisabled ? void 0 : !1 : void 0;
70
+ },
71
+ computedDisabled() {
72
+ const e = this.fieldsSvc.disabled(this.item);
73
+ return e !== void 0 ? e : this.disabled;
74
+ }
75
+ },
76
+ created() {
77
+ this.itemGuid = g(), this.prevFocusedItemId = this.focusedItemId, this.prevFieldsService = this.fieldsService, this.prevItem = this.item;
78
+ },
79
+ data() {
80
+ return {
81
+ isMounted: !1
82
+ };
83
+ },
84
+ watch: {
85
+ focusedItemId: function(e, t) {
86
+ this.prevFocusedItemId = t;
87
+ },
88
+ fieldsService: function(e, t) {
89
+ this.prevFieldsService = t;
90
+ },
91
+ item: function(e, t) {
92
+ this.prevItem = t;
93
+ }
94
+ },
95
+ mounted() {
96
+ const e = this.$props.focusedItemId, t = this.itemId;
97
+ e && e === t && this.$emit("focusDomElNeeded", this.$el), this.checkboxElement = l(this, "checkboxElement"), this.checkboxElement && (this.checkboxElement.indeterminate = this.fieldsSvc.checkIndeterminate(this.item)), this.assignDraggableMeta(this.$refs.treemid), this.isMounted = !0;
98
+ },
99
+ updated() {
100
+ const e = this.$props.focusedItemId;
101
+ if (e && e !== this.prevFocusedItemId && e === this.itemId && this.$emit("focusdomelneeded", this.$el), this.checkboxElement = l(this, "checkboxElement"), this.checkboxElement) {
102
+ const t = this.fieldsSvc.checkIndeterminate(this.item);
103
+ t !== this.prevFieldsService.checkIndeterminate(this.prevItem) && (this.checkboxElement.indeterminate = t);
104
+ }
105
+ this.assignDraggableMeta(this.$refs.treemid);
106
+ },
107
+ render() {
108
+ let e, t;
109
+ const i = function() {
110
+ return E(this.item, this.fieldsSvc) ? s("ul", {
111
+ class: "k-treeview-group",
112
+ role: "group"
113
+ }, [this.fieldsSvc.children(this.item).map(function(n, r) {
114
+ return s(w, {
115
+ item: n,
116
+ itemId: C(r, this.itemId),
117
+ treeGuid: this.$props.treeGuid,
118
+ animate: this.$props.animate,
119
+ focusedItemId: this.$props.focusedItemId,
120
+ tabbableItemId: this.$props.tabbableItemId,
121
+ fieldsService: this.$props.fieldsService,
122
+ itemUI: this.$props.itemUI,
123
+ checkboxes: this.$props.checkboxes,
124
+ ariaMultiSelectable: this.$props.ariaMultiSelectable,
125
+ ariaLevel: this.$props.ariaLevel + 1,
126
+ onItemClick: this.handleItemClick,
127
+ onFocusdomelneeded: this.handleFocusDomElNeeded,
128
+ draggable: this.$props.draggable,
129
+ onPress: this.handlePress,
130
+ onDrag: this.handleDrag,
131
+ onRelease: this.handleRelease,
132
+ expandIcons: this.$props.expandIcons,
133
+ onExpandChange: this.handleExpandChange,
134
+ onCheckChange: this.handleCheckChange,
135
+ key: r,
136
+ size: this.$props.size,
137
+ disabled: this.computedDisabled,
138
+ isRtl: this.$props.isRtl
139
+ }, null);
140
+ }, this)]) : void 0;
141
+ }, m = function() {
142
+ return this.$props.expandIcons && // If it is explicitly said that the item has children (even not loaded yet)
143
+ // or if the item actually has children, then render the icon.
144
+ (this.fieldsSvc.hasChildren(this.item) || a(this.item, this.fieldsSvc.getChildrenField())) && s("span", {
145
+ class: d("k-treeview-toggle", {
146
+ "k-disabled": this.computedDisabled
147
+ })
148
+ }, [s(v, {
149
+ name: this.getIconClassName(),
150
+ icon: this.getIconSVG(),
151
+ onClick: this.handleExpandChange
152
+ }, null)]);
153
+ }, p = function() {
154
+ if (this.$props.checkboxes) {
155
+ const n = this.$props.size;
156
+ return s("div", {
157
+ class: "k-checkbox-wrap",
158
+ role: "presentation"
159
+ }, [s("input", {
160
+ type: "checkbox",
161
+ class: d("k-checkbox k-rounded-md", {
162
+ [`k-checkbox-${N[n] || n}`]: n,
163
+ "k-disabled": this.computedDisabled
164
+ }),
165
+ "aria-label": this.item.text,
166
+ checked: !!this.fieldsSvc.checked(this.item),
167
+ id: this.itemGuid,
168
+ tabindex: -1,
169
+ onChange: this.handleCheckChange,
170
+ ref: $(this, "checkboxElement")
171
+ }, null), s("label", {
172
+ class: "k-checkbox-label",
173
+ for: this.itemGuid
174
+ }, null)]);
175
+ } else
176
+ return;
177
+ }, u = k.call(this, {
178
+ h: I,
179
+ template: this.$props.itemUI,
180
+ defaultRendering: this.fieldsSvc.text(this.item),
181
+ additionalProps: {
182
+ item: this.item,
183
+ itemHierarchicalIndex: this.itemId
184
+ }
185
+ }), h = function() {
186
+ return s("span", {
187
+ class: this.getContentClassName(),
188
+ style: {
189
+ touchAction: "none"
190
+ },
191
+ onClick: this.handleItemClick
192
+ }, [s("span", {
193
+ class: "k-treeview-leaf-text"
194
+ }, [u])]);
195
+ };
196
+ return s("li", {
197
+ class: d("k-treeview-item"),
198
+ tabindex: this.currentTabIndex,
199
+ role: "treeitem",
200
+ "aria-level": this.$props.ariaLevel,
201
+ "aria-expanded": this.ariaExpanded,
202
+ "aria-selected": this.ariaSelected,
203
+ "aria-checked": this.ariaChecked,
204
+ "aria-disabled": this.computedDisabled ? !0 : void 0
205
+ }, [s("div", {
206
+ class: "k-treeview-mid",
207
+ ref: "treemid"
208
+ }, [m.call(this), p.call(this), this.$props.draggable ? s(x, {
209
+ onPress: (n) => this.handlePress(n),
210
+ onDrag: (n) => this.handleDrag(n),
211
+ onRelease: (n) => this.handleRelease(n)
212
+ }, c(e = h.call(this)) ? e : {
213
+ default: () => [e]
214
+ }) : h.call(this)]), this.$props.animate && this.isMounted ? s(D, {
215
+ appear: this.ariaExpanded,
216
+ transitionEnterDuration: 200,
217
+ transitionExitDuration: 200,
218
+ key: this.itemGuid + "_animation",
219
+ style: {
220
+ display: "block"
221
+ }
222
+ }, c(t = i.call(this)) ? t : {
223
+ default: () => [t]
224
+ }) : i.call(this)]);
225
+ },
226
+ methods: {
227
+ handleCheckChange(e, t, i) {
228
+ this.$emit("checkChange", e, t || this.item, i || this.itemId);
229
+ },
230
+ handleExpandChange(e, t, i) {
231
+ this.$emit("expandChange", e, t || this.item, i || this.itemId);
232
+ },
233
+ handleItemClick(e, t, i) {
234
+ this.$emit("itemClick", e, t || this.item, i || this.itemId);
235
+ },
236
+ handlePress(e, t, i) {
237
+ this.$emit("press", e, t || {
238
+ ...this.item
239
+ }, i || this.itemId);
240
+ },
241
+ handleDrag(e, t, i) {
242
+ this.$emit("drag", e, t || this.item, i || this.itemId);
243
+ },
244
+ handleRelease(e, t, i) {
245
+ this.$emit("release", e, t || this.item, i || this.itemId);
246
+ },
247
+ handleFocusDomElNeeded(e) {
248
+ this.$emit("focusdomelneeded", e);
249
+ },
250
+ getIconClassName() {
251
+ const e = this.fieldsSvc.expanded(this.item);
252
+ return e && !a(this.item, this.fieldsSvc.getChildrenField()) ? "loading" : e ? "caret-alt-down" : this.$props.isRtl ? "caret-alt-left" : "caret-alt-right";
253
+ },
254
+ getIconSVG() {
255
+ return this.fieldsSvc.expanded(this.item) ? R : this.$props.isRtl ? M : _;
256
+ },
257
+ getContentClassName() {
258
+ return d("k-treeview-leaf", {
259
+ "k-focus": this.$props.focusedItemId === this.itemId,
260
+ "k-selected": this.fieldsSvc.selected(this.item),
261
+ "k-disabled": this.computedDisabled
262
+ });
263
+ },
264
+ assignDraggableMeta(e) {
265
+ e && !e[o] && (e[o] = this.$props.itemId, e[F] = this.$props.treeGuid);
266
+ }
267
+ }
268
+ });
269
+ export {
270
+ w as TreeViewItem
271
+ };