@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,135 @@
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
+ /**
8
+ * Represents the props of the KendoReact TreeViewDragClue component.
9
+ */
10
+ export interface TreeViewDragClueProps {
11
+ }
12
+ /**
13
+ * Represents the KendoReact TreeViewDragClue component which renders a clue when an item is dragged.
14
+ *
15
+ * @example
16
+ * ```jsx
17
+ * class App extends React.Component {
18
+ * dragClue;
19
+ * state = { tree };
20
+ *
21
+ * render() {
22
+ * return (
23
+ * <div>
24
+ * <TreeView data={this.state.tree} draggable={true}
25
+ * onItemDragOver={this.onItemDragOver} onItemDragEnd={this.onItemDragEnd} />
26
+ * <TreeViewDragClue ref={dragClue => this.dragClue = dragClue} />
27
+ * </div>
28
+ * );
29
+ * }
30
+ *
31
+ * onItemDragOver = (event) => {
32
+ * this.dragClue.show(event.pageY + 10, event.pageX, event.item.text, this.getClueClassName(event));
33
+ * }
34
+ * onItemDragEnd = (event) => {
35
+ * this.dragClue.hide();
36
+ * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();
37
+ *
38
+ * if (eventAnalyzer.isDropAllowed) {
39
+ * const updatedTree = moveTreeViewItem(
40
+ * event.itemHierarchicalIndex,
41
+ * this.state.tree,
42
+ * eventAnalyzer.getDropOperation(),
43
+ * eventAnalyzer.destinationMeta.itemHierarchicalIndex,
44
+ * );
45
+ *
46
+ * this.setState({ tree: updatedTree });
47
+ * }
48
+ * }
49
+ * getClueClassName(event) {
50
+ * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();
51
+ * const itemIndex = eventAnalyzer.destinationMeta.itemHierarchicalIndex;
52
+ *
53
+ * if (eventAnalyzer.isDropAllowed) {
54
+ * switch (eventAnalyzer.getDropOperation()) {
55
+ * case 'child':
56
+ * return 'k-i-plus';
57
+ * case 'before':
58
+ * return itemIndex === '0' || itemIndex.endsWith(`${SEPARATOR}0`) ?
59
+ * 'k-i-insert-up' : 'k-i-insert-middle';
60
+ * case 'after':
61
+ * const siblings = getSiblings(itemIndex, this.state.tree);
62
+ * const lastIndex = Number(itemIndex.split(SEPARATOR).pop());
63
+ *
64
+ * return lastIndex < siblings.length - 1 ? 'k-i-insert-middle' : 'k-i-insert-down';
65
+ * default:
66
+ * break;
67
+ * }
68
+ * }
69
+ *
70
+ * return 'k-i-cancel';
71
+ * }
72
+ * }
73
+ *
74
+ * function getSiblings(itemIndex, data) {
75
+ * let result = data;
76
+ *
77
+ * const indices = itemIndex.split(SEPARATOR).map(index => Number(index));
78
+ * for (let i = 0; i < indices.length - 1; i++) {
79
+ * result = result[indices[i]].items;
80
+ * }
81
+ *
82
+ * return result;
83
+ * }
84
+ *
85
+ * const SEPARATOR = '_';
86
+ * const tree = [{
87
+ * text: 'Furniture', expanded: true, items: [
88
+ * { text: 'Tables & Chairs', expanded: true },
89
+ * { text: 'Sofas', expanded: true },
90
+ * { text: 'Occasional Furniture', expanded: true }]
91
+ * }, {
92
+ * text: 'Decor', expanded: true, items: [
93
+ * { text: 'Bed Linen', expanded: true },
94
+ * { text: 'Curtains & Blinds', expanded: true },
95
+ * { text: 'Carpets', expanded: true }]
96
+ * }];
97
+ *
98
+ * ReactDOM.render(<App />, document.querySelector('my-app'));
99
+ * ```
100
+ */
101
+ /**
102
+ * @hidden
103
+ */
104
+ export interface TreeViewDragClueState {
105
+ }
106
+ /**
107
+ * @hidden
108
+ */
109
+ export interface TreeViewDragClueComputed {
110
+ [key: string]: any;
111
+ }
112
+ /**
113
+ * @hidden
114
+ */
115
+ export interface TreeViewDragClueMethods {
116
+ [key: string]: any;
117
+ }
118
+ /**
119
+ * @hidden
120
+ */
121
+ export interface TreeViewDragClueData {
122
+ visible?: boolean;
123
+ top?: number;
124
+ left?: number;
125
+ text?: string;
126
+ operationClassName?: string;
127
+ }
128
+ /**
129
+ * @hidden
130
+ */
131
+ export interface TreeViewDragClueAll extends Vue, TreeViewDragClueMethods, TreeViewDragClueData, TreeViewDragClueComputed, TreeViewDragClueState {
132
+ }
133
+ declare let TreeViewDragClueVue2: ComponentOptions<TreeViewDragClueAll, DefaultData<TreeViewDragClueData>, DefaultMethods<TreeViewDragClueAll>, TreeViewDragClueComputed, RecordPropsDefinition<TreeViewDragClueProps>>;
134
+ declare const TreeViewDragClue: DefineComponent<TreeViewDragClueProps, any, TreeViewDragClueData, TreeViewDragClueComputed, TreeViewDragClueMethods, {}, {}, {}, string, TreeViewDragClueProps, TreeViewDragClueProps, {}>;
135
+ export { TreeViewDragClue, TreeViewDragClueVue2 };
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ var __assign = undefined && undefined.__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+
8
+ for (var p in s) {
9
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
10
+ }
11
+ }
12
+
13
+ return t;
14
+ };
15
+
16
+ return __assign.apply(this, arguments);
17
+ };
18
+
19
+ Object.defineProperty(exports, "__esModule", {
20
+ value: true
21
+ });
22
+ exports.TreeViewDragClueVue2 = exports.TreeViewDragClue = void 0; // @ts-ignore
23
+
24
+ var Vue = require("vue");
25
+
26
+ var allVue = Vue;
27
+ var gh = allVue.h;
28
+
29
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common"); // tslint:enable:max-line-length
30
+
31
+
32
+ var TreeViewDragClueVue2 = {
33
+ name: 'KendoTreeViewDragClue',
34
+ props: {},
35
+ data: function data() {
36
+ return {
37
+ visible: false,
38
+ top: 0,
39
+ left: 0,
40
+ text: '',
41
+ operationClassName: 'k-i-cancel'
42
+ };
43
+ },
44
+ // @ts-ignore
45
+ setup: !gh ? undefined : function () {
46
+ var v3 = !!gh;
47
+ return {
48
+ v3: v3
49
+ };
50
+ },
51
+ // @ts-ignore
52
+ render: function render(createElement) {
53
+ var h = gh || createElement;
54
+ var defaultStyle = {
55
+ display: 'block',
56
+ position: 'absolute',
57
+ zIndex: 20000,
58
+ padding: '4px 6px'
59
+ };
60
+ var dynamicStyle = {
61
+ top: this.top + 'px',
62
+ left: this.left + 'px'
63
+ };
64
+ return this.visible && h("div", {
65
+ "class": "k-header k-drag-clue",
66
+ style: __assign(__assign({}, defaultStyle), dynamicStyle)
67
+ }, [h("span", {
68
+ "class": kendo_vue_common_1.classNames('k-icon k-drag-status k-icon-with-modifier', this.operationClassName)
69
+ }, [h("span", {
70
+ "class": "k-icon k-icon-modifier"
71
+ })]), this.text]);
72
+ },
73
+ methods: {
74
+ show: function show(top, left, text, operationClassName) {
75
+ this.visible = true;
76
+ this.top = top;
77
+ this.left = left;
78
+ this.text = text;
79
+ this.operationClassName = operationClassName;
80
+ },
81
+ hide: function hide() {
82
+ this.visible = false;
83
+ }
84
+ }
85
+ };
86
+ exports.TreeViewDragClueVue2 = TreeViewDragClueVue2;
87
+ var TreeViewDragClue = TreeViewDragClueVue2;
88
+ exports.TreeViewDragClue = TreeViewDragClue;
@@ -0,0 +1,69 @@
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 FieldsService from './utils/FieldsService';
8
+ /**
9
+ * @hidden
10
+ */
11
+ export interface TreeViewItemProps {
12
+ item: any;
13
+ itemId: string;
14
+ treeGuid: string;
15
+ animate: boolean;
16
+ focusedItemId?: string;
17
+ tabbableItemId: string;
18
+ fieldsService: FieldsService;
19
+ itemUI?: any;
20
+ ariaMultiSelectable: boolean;
21
+ onItemClick?: any;
22
+ expandIcons?: boolean;
23
+ onExpandChange?: any;
24
+ onCheckChange?: any;
25
+ checkboxes?: boolean;
26
+ onFocusDomElNeeded?: any;
27
+ draggable?: boolean;
28
+ onPress?: any;
29
+ onDrag?: any;
30
+ onRelease?: any;
31
+ size?: null | 'small' | 'medium' | 'large' | string;
32
+ }
33
+ /**
34
+ * @hidden
35
+ */
36
+ export interface TreeViewItemState {
37
+ checkboxElement: any;
38
+ itemGuid: any;
39
+ }
40
+ /**
41
+ * @hidden
42
+ */
43
+ export interface TreeViewItemComputed {
44
+ [key: string]: any;
45
+ fieldsSvc: any;
46
+ currentTabIndex: number;
47
+ ariaExpanded?: boolean;
48
+ ariaChecked?: string | boolean;
49
+ ariaSelected?: boolean;
50
+ }
51
+ /**
52
+ * @hidden
53
+ */
54
+ export interface TreeViewItemMethods {
55
+ [key: string]: any;
56
+ }
57
+ /**
58
+ * @hidden
59
+ */
60
+ export interface TreeViewItemData {
61
+ }
62
+ /**
63
+ * @hidden
64
+ */
65
+ export interface TreeViewItemAll extends Vue, TreeViewItemMethods, TreeViewItemData, TreeViewItemComputed, TreeViewItemState {
66
+ }
67
+ declare let TreeViewItemVue2: ComponentOptions<TreeViewItemAll, DefaultData<TreeViewItemData>, DefaultMethods<TreeViewItemAll>, TreeViewItemComputed, RecordPropsDefinition<TreeViewItemProps>>;
68
+ declare const TreeViewItem: DefineComponent<TreeViewItemProps, any, TreeViewItemData, TreeViewItemComputed, TreeViewItemMethods, {}, {}, {}, string, TreeViewItemProps, TreeViewItemProps, {}>;
69
+ export { TreeViewItem, TreeViewItemVue2 };
@@ -0,0 +1,373 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TreeViewItemVue2 = exports.TreeViewItem = void 0; // @ts-ignore
7
+
8
+ var Vue = require("vue");
9
+
10
+ var allVue = Vue;
11
+ var gh = allVue.h;
12
+
13
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common");
14
+
15
+ var itemIdUtils_1 = require("./utils/itemIdUtils");
16
+
17
+ var itemUtils_1 = require("./utils/itemUtils");
18
+
19
+ var kendo_vue_animation_1 = require("@progress/kendo-vue-animation");
20
+
21
+ var consts_1 = require("./utils/consts");
22
+
23
+ var sizeMap = kendo_vue_common_1.kendoThemeMaps.sizeMap; // tslint:enable:max-line-length
24
+
25
+ var TreeViewItemVue2 = {
26
+ name: 'KendoTreeViewItem',
27
+ props: {
28
+ item: Object,
29
+ itemId: String,
30
+ treeGuid: String,
31
+ animate: Boolean,
32
+ focusedItemId: String,
33
+ tabbableItemId: String,
34
+ fieldsService: Object,
35
+ itemUI: Object,
36
+ ariaMultiSelectable: Boolean,
37
+ expandIcons: Boolean,
38
+ checkboxes: Boolean,
39
+ onFocusDomElNeeded: Object,
40
+ draggable: Boolean,
41
+ size: {
42
+ type: String,
43
+ default: 'medium',
44
+ validator: function validator(value) {
45
+ return [null, 'small', 'medium', 'large'].includes(value);
46
+ }
47
+ }
48
+ },
49
+ computed: {
50
+ fieldsSvc: function fieldsSvc() {
51
+ return this.$props.fieldsService;
52
+ },
53
+ currentTabIndex: function currentTabIndex() {
54
+ return (this.$props.focusedItemId || this.$props.tabbableItemId) === this.itemId ? 0 : -1;
55
+ },
56
+ ariaExpanded: function ariaExpanded() {
57
+ return this.fieldsSvc.hasChildren(this.item) || itemUtils_1.hasChildren(this.item, this.fieldsSvc.getChildrenField()) ? Boolean(this.fieldsSvc.expanded(this.item)) : undefined;
58
+ },
59
+ ariaChecked: function ariaChecked() {
60
+ if (this.$props.checkboxes) {
61
+ if (this.fieldsSvc.checked(this.item)) {
62
+ return 'true';
63
+ } else {
64
+ return this.fieldsSvc.checkIndeterminate(this.item) ? 'mixed' : 'false';
65
+ }
66
+ } else {
67
+ return undefined;
68
+ }
69
+ },
70
+ ariaSelected: function ariaSelected() {
71
+ if (this.fieldsSvc.selected(this.item)) {
72
+ return true;
73
+ } else if (this.$props.ariaMultiSelectable) {
74
+ return this.fieldsSvc.disabled(this.item) ? undefined : false;
75
+ } else {
76
+ return undefined;
77
+ }
78
+ }
79
+ },
80
+ created: function created() {
81
+ this.itemGuid = kendo_vue_common_1.guid();
82
+ this.prevFocusedItemId = this.focusedItemId;
83
+ this.prevFieldsService = this.fieldsService;
84
+ this.prevItem = this.item;
85
+ },
86
+ watch: {
87
+ focusedItemId: function focusedItemId(_, oldValue) {
88
+ this.prevFocusedItemId = oldValue;
89
+ },
90
+ fieldsService: function fieldsService(_, oldValue) {
91
+ this.prevFieldsService = oldValue;
92
+ },
93
+ item: function item(_, oldValue) {
94
+ this.prevItem = oldValue;
95
+ }
96
+ },
97
+ mounted: function mounted() {
98
+ var focusedItemId = this.$props.focusedItemId;
99
+ var currentItemId = this.itemId;
100
+
101
+ if (focusedItemId && focusedItemId === currentItemId) {
102
+ this.$emit('focusdomelneeded', this.$el);
103
+ }
104
+
105
+ if (this.checkboxElement) {
106
+ this.checkboxElement.indeterminate = this.fieldsSvc.checkIndeterminate(this.item);
107
+ }
108
+ },
109
+ updated: function updated() {
110
+ var focusedItemId = this.$props.focusedItemId;
111
+
112
+ if (focusedItemId && focusedItemId !== this.prevFocusedItemId && focusedItemId === this.itemId) {
113
+ this.$emit('focusdomelneeded', this.$el);
114
+ }
115
+
116
+ if (this.checkboxElement) {
117
+ var indeterminate = this.fieldsSvc.checkIndeterminate(this.item);
118
+
119
+ if (indeterminate !== this.prevFieldsService.checkIndeterminate(this.prevItem)) {
120
+ this.checkboxElement.indeterminate = indeterminate;
121
+ }
122
+ }
123
+ },
124
+ // @ts-ignore
125
+ setup: !gh ? undefined : function () {
126
+ var v3 = !!gh;
127
+ return {
128
+ v3: v3
129
+ };
130
+ },
131
+ // @ts-ignore
132
+ render: function render(createElement) {
133
+ var _this2 = this;
134
+
135
+ var h = gh || createElement;
136
+
137
+ var subitems = function subitems() {
138
+ return itemUtils_1.isItemExpandedAndWithChildren(this.item, this.fieldsSvc) ? h("ul", {
139
+ "class": "k-treeview-group",
140
+ role: "group",
141
+ attrs: this.v3 ? undefined : {
142
+ role: "group"
143
+ }
144
+ }, [this.fieldsSvc.children(this.item).map(function (item, index) {
145
+ return h(TreeViewItem, {
146
+ item: item,
147
+ attrs: this.v3 ? undefined : {
148
+ item: item,
149
+ itemId: itemIdUtils_1.createId(index, this.itemId),
150
+ treeGuid: this.$props.treeGuid,
151
+ animate: this.$props.animate,
152
+ focusedItemId: this.$props.focusedItemId,
153
+ tabbableItemId: this.$props.tabbableItemId,
154
+ fieldsService: this.$props.fieldsService,
155
+ itemUI: this.$props.itemUI,
156
+ checkboxes: this.$props.checkboxes,
157
+ ariaMultiSelectable: this.$props.ariaMultiSelectable,
158
+ draggable: this.$props.draggable,
159
+ expandIcons: this.$props.expandIcons,
160
+ size: this.$props.size
161
+ },
162
+ itemId: itemIdUtils_1.createId(index, this.itemId),
163
+ treeGuid: this.$props.treeGuid,
164
+ animate: this.$props.animate,
165
+ focusedItemId: this.$props.focusedItemId,
166
+ tabbableItemId: this.$props.tabbableItemId,
167
+ fieldsService: this.$props.fieldsService,
168
+ itemUI: this.$props.itemUI,
169
+ checkboxes: this.$props.checkboxes,
170
+ ariaMultiSelectable: this.$props.ariaMultiSelectable,
171
+ onItemclick: this.handleItemClick,
172
+ on: this.v3 ? undefined : {
173
+ "itemclick": this.handleItemClick,
174
+ "focusdomelneeded": this.handleFocusDomElNeeded,
175
+ "press": this.handlePress,
176
+ "drag": this.handleDrag,
177
+ "release": this.handleRelease,
178
+ "expandchange": this.handleExpandChange,
179
+ "checkchange": this.handleCheckChange
180
+ },
181
+ onFocusdomelneeded: this.handleFocusDomElNeeded,
182
+ draggable: this.$props.draggable,
183
+ onPress: this.handlePress,
184
+ onDrag: this.handleDrag,
185
+ onRelease: this.handleRelease,
186
+ expandIcons: this.$props.expandIcons,
187
+ onExpandchange: this.handleExpandChange,
188
+ onCheckchange: this.handleCheckChange,
189
+ key: index,
190
+ size: this.$props.size
191
+ });
192
+ }, this)]) : undefined;
193
+ };
194
+
195
+ var renderExpandIcon = function renderExpandIcon() {
196
+ var renderExpand = this.$props.expandIcons && ( // If it is explicitly said that the item has children (even not loaded yet)
197
+ // or if the item actually has children, then render the icon.
198
+ this.fieldsSvc.hasChildren(this.item) || itemUtils_1.hasChildren(this.item, this.fieldsSvc.getChildrenField()));
199
+ return renderExpand && h("span", {
200
+ "class": "k-treeview-toggle"
201
+ }, [h("span", {
202
+ "class": this.getIconClassName(),
203
+ onClick: this.handleExpandChange,
204
+ on: this.v3 ? undefined : {
205
+ "click": this.handleExpandChange
206
+ }
207
+ })]);
208
+ };
209
+
210
+ var renderCheckbox = function renderCheckbox() {
211
+ var _a;
212
+
213
+ var _this = this;
214
+
215
+ if (this.$props.checkboxes) {
216
+ var size = this.$props.size;
217
+ return h("div", {
218
+ "class": "k-checkbox-wrap"
219
+ }, [h("input", {
220
+ type: "checkbox",
221
+ attrs: this.v3 ? undefined : {
222
+ type: "checkbox",
223
+ id: this.itemGuid,
224
+ tabIndex: -1
225
+ },
226
+ "class": kendo_vue_common_1.classNames('k-checkbox k-rounded-md', (_a = {}, _a["k-checkbox-" + (sizeMap[size] || size)] = size, _a)),
227
+ checked: this.v3 ? Boolean(this.fieldsSvc.checked(this.item)) : null,
228
+ domProps: this.v3 ? undefined : {
229
+ "checked": Boolean(this.fieldsSvc.checked(this.item))
230
+ },
231
+ id: this.itemGuid,
232
+ tabIndex: -1,
233
+ onChange: this.handleCheckChange,
234
+ on: this.v3 ? undefined : {
235
+ "change": this.handleCheckChange
236
+ },
237
+ ref: function ref(el) {
238
+ return _this.checkboxElement = el;
239
+ }
240
+ }), h("label", {
241
+ "class": "k-checkbox-label",
242
+ htmlFor: this.itemGuid,
243
+ attrs: this.v3 ? undefined : {
244
+ htmlFor: this.itemGuid
245
+ }
246
+ })]);
247
+ } else {
248
+ return undefined;
249
+ }
250
+ };
251
+
252
+ var itemInPart = function itemInPart() {
253
+ return h("span", {
254
+ "class": this.getContentClassName(),
255
+ style: {
256
+ touchAction: 'none'
257
+ },
258
+ onClick: this.handleItemClick,
259
+ on: this.v3 ? undefined : {
260
+ "click": this.handleItemClick
261
+ }
262
+ }, [h("span", {
263
+ "class": "k-treeview-leaf-text"
264
+ }, [this.$props.itemUI ? h(this.$props.itemUI, {
265
+ item: this.item,
266
+ attrs: this.v3 ? undefined : {
267
+ item: this.item,
268
+ itemHierarchicalIndex: this.itemId
269
+ },
270
+ itemHierarchicalIndex: this.itemId
271
+ }) : this.fieldsSvc.text(this.item)])]);
272
+ };
273
+
274
+ return h("li", {
275
+ "class": this.getRootClassName(),
276
+ tabIndex: this.currentTabIndex,
277
+ attrs: this.v3 ? undefined : {
278
+ tabIndex: this.currentTabIndex,
279
+ role: "treeitem",
280
+ "aria-expanded": this.ariaExpanded,
281
+ "aria-selected": this.ariaSelected,
282
+ "aria-checked": this.ariaChecked,
283
+ "aria-disabled": this.fieldsSvc.disabled(this.item) ? true : undefined
284
+ },
285
+ role: "treeitem",
286
+ "aria-expanded": this.ariaExpanded,
287
+ "aria-selected": this.ariaSelected,
288
+ "aria-checked": this.ariaChecked,
289
+ "aria-disabled": this.fieldsSvc.disabled(this.item) ? true : undefined
290
+ }, [h("div", {
291
+ "class": "k-treeview-mid",
292
+ ref: this.assignDraggableMeta
293
+ }, [renderExpandIcon.call(this), renderCheckbox.call(this), this.$props.draggable ? // @ts-ignore function children
294
+ h(kendo_vue_common_1.Draggable, {
295
+ onPress: this.handlePress,
296
+ on: this.v3 ? undefined : {
297
+ "press": this.handlePress,
298
+ "drag": this.handleDrag,
299
+ "release": this.handleRelease
300
+ },
301
+ onDrag: this.handleDrag,
302
+ onRelease: this.handleRelease
303
+ }, this.v3 ? function () {
304
+ return [itemInPart.call(_this2)];
305
+ } : [itemInPart.call(_this2)]) : itemInPart.call(this)]), this.$props.animate ? // @ts-ignore function children
306
+ h(kendo_vue_animation_1.Reveal, {
307
+ appear: this.ariaExpanded,
308
+ attrs: this.v3 ? undefined : {
309
+ appear: this.ariaExpanded,
310
+ transitionEnterDuration: 200,
311
+ transitionExitDuration: 200
312
+ },
313
+ transitionEnterDuration: 200,
314
+ transitionExitDuration: 200,
315
+ style: {
316
+ display: 'block'
317
+ }
318
+ }, this.v3 ? function () {
319
+ return [subitems.call(_this2)];
320
+ } : [subitems.call(_this2)]) : subitems.call(this)]);
321
+ },
322
+ methods: {
323
+ handleCheckChange: function handleCheckChange(e, subItem, subItemId) {
324
+ this.$emit('checkchange', e, subItem || this.item, subItemId || this.itemId);
325
+ },
326
+ handleExpandChange: function handleExpandChange(e, subItem, subItemId) {
327
+ this.$emit('expandchange', e, subItem || this.item, subItemId || this.itemId);
328
+ },
329
+ handleItemClick: function handleItemClick(e, subItem, subItemId) {
330
+ this.$emit('itemclick', e, subItem || this.item, subItemId || this.itemId);
331
+ },
332
+ handlePress: function handlePress(e, subItem, subItemId) {
333
+ this.$emit('press', e.event, subItem || this.item, subItemId || this.itemId);
334
+ },
335
+ handleDrag: function handleDrag(e, subItem, subItemId) {
336
+ this.$emit('drag', e.event, subItem || this.item, subItemId || this.itemId);
337
+ },
338
+ handleRelease: function handleRelease(e, subItem, subItemId) {
339
+ this.$emit('release', e.event, subItem || this.item, subItemId || this.itemId);
340
+ },
341
+ handleFocusDomElNeeded: function handleFocusDomElNeeded(e) {
342
+ this.$emit('focusdomelneeded', e);
343
+ },
344
+ getIconClassName: function getIconClassName() {
345
+ var expanded = this.fieldsSvc.expanded(this.item);
346
+ return kendo_vue_common_1.classNames('k-icon', {
347
+ 'k-i-expand': !expanded,
348
+ 'k-i-collapse': expanded,
349
+ 'k-i-loading': expanded && !itemUtils_1.hasChildren(this.item, this.fieldsSvc.getChildrenField())
350
+ });
351
+ },
352
+ getRootClassName: function getRootClassName() {
353
+ return kendo_vue_common_1.classNames('k-treeview-item', {
354
+ 'k-disabled': this.fieldsSvc.disabled(this.item)
355
+ });
356
+ },
357
+ getContentClassName: function getContentClassName() {
358
+ return kendo_vue_common_1.classNames('k-treeview-leaf', {
359
+ 'k-focus': this.$props.focusedItemId === this.itemId,
360
+ 'k-selected': this.fieldsSvc.selected(this.item)
361
+ });
362
+ },
363
+ assignDraggableMeta: function assignDraggableMeta(element) {
364
+ if (element) {
365
+ element[consts_1.DOM_KENDO_ITEM_ID_FIELD] = this.$props.itemId;
366
+ element[consts_1.DOM_KENDO_TREEVIEW_GUID_FIELD] = this.$props.treeGuid;
367
+ }
368
+ }
369
+ }
370
+ };
371
+ exports.TreeViewItemVue2 = TreeViewItemVue2;
372
+ var TreeViewItem = TreeViewItemVue2;
373
+ exports.TreeViewItem = TreeViewItem;