@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.
- package/LICENSE.md +11 -0
- package/NOTICE.txt +86 -0
- package/README.md +53 -0
- package/dist/cdn/js/kendo-vue-treeview.js +1 -0
- package/dist/es/ItemRenderProps.d.ts +13 -0
- package/dist/es/ItemRenderProps.js +1 -0
- package/dist/es/TreeView.d.ts +45 -0
- package/dist/es/TreeView.js +359 -0
- package/dist/es/TreeViewDragAnalyzer.d.ts +135 -0
- package/dist/es/TreeViewDragAnalyzer.js +184 -0
- package/dist/es/TreeViewDragClue.d.ts +135 -0
- package/dist/es/TreeViewDragClue.js +78 -0
- package/dist/es/TreeViewItem.d.ts +69 -0
- package/dist/es/TreeViewItem.js +359 -0
- package/dist/es/TreeViewOperationDescriptors.d.ts +76 -0
- package/dist/es/TreeViewOperationDescriptors.js +1 -0
- package/dist/es/TreeViewProps.d.ts +122 -0
- package/dist/es/TreeViewProps.js +0 -0
- package/dist/es/additionalTypes.ts +9 -0
- package/dist/es/events.d.ts +135 -0
- package/dist/es/events.js +0 -0
- package/dist/es/handleTreeViewCheckChange.d.ts +67 -0
- package/dist/es/handleTreeViewCheckChange.js +195 -0
- package/dist/es/main.d.ts +12 -0
- package/dist/es/main.js +8 -0
- package/dist/es/moveTreeViewItem.d.ts +109 -0
- package/dist/es/moveTreeViewItem.js +156 -0
- package/dist/es/package-metadata.d.ts +5 -0
- package/dist/es/package-metadata.js +11 -0
- package/dist/es/processTreeViewItems.d.ts +51 -0
- package/dist/es/processTreeViewItems.js +166 -0
- package/dist/es/utils/FieldsService.d.ts +26 -0
- package/dist/es/utils/FieldsService.js +50 -0
- package/dist/es/utils/SortedPublicItemIds.d.ts +8 -0
- package/dist/es/utils/SortedPublicItemIds.js +26 -0
- package/dist/es/utils/consts.d.ts +40 -0
- package/dist/es/utils/consts.js +40 -0
- package/dist/es/utils/getItemIdUponKeyboardNavigation.d.ts +5 -0
- package/dist/es/utils/getItemIdUponKeyboardNavigation.js +77 -0
- package/dist/es/utils/itemIdUtils.d.ts +60 -0
- package/dist/es/utils/itemIdUtils.js +117 -0
- package/dist/es/utils/itemUtils.d.ts +45 -0
- package/dist/es/utils/itemUtils.js +191 -0
- package/dist/es/utils/misc.d.ts +9 -0
- package/dist/es/utils/misc.js +17 -0
- package/dist/npm/ItemRenderProps.d.ts +13 -0
- package/dist/npm/ItemRenderProps.js +3 -0
- package/dist/npm/TreeView.d.ts +45 -0
- package/dist/npm/TreeView.js +376 -0
- package/dist/npm/TreeViewDragAnalyzer.d.ts +135 -0
- package/dist/npm/TreeViewDragAnalyzer.js +186 -0
- package/dist/npm/TreeViewDragClue.d.ts +135 -0
- package/dist/npm/TreeViewDragClue.js +88 -0
- package/dist/npm/TreeViewItem.d.ts +69 -0
- package/dist/npm/TreeViewItem.js +373 -0
- package/dist/npm/TreeViewOperationDescriptors.d.ts +76 -0
- package/dist/npm/TreeViewOperationDescriptors.js +3 -0
- package/dist/npm/TreeViewProps.d.ts +122 -0
- package/dist/npm/TreeViewProps.js +2 -0
- package/dist/npm/additionalTypes.ts +9 -0
- package/dist/npm/events.d.ts +135 -0
- package/dist/npm/events.js +2 -0
- package/dist/npm/handleTreeViewCheckChange.d.ts +67 -0
- package/dist/npm/handleTreeViewCheckChange.js +199 -0
- package/dist/npm/main.d.ts +12 -0
- package/dist/npm/main.js +17 -0
- package/dist/npm/moveTreeViewItem.d.ts +109 -0
- package/dist/npm/moveTreeViewItem.js +159 -0
- package/dist/npm/package-metadata.d.ts +5 -0
- package/dist/npm/package-metadata.js +14 -0
- package/dist/npm/processTreeViewItems.d.ts +51 -0
- package/dist/npm/processTreeViewItems.js +169 -0
- package/dist/npm/utils/FieldsService.d.ts +26 -0
- package/dist/npm/utils/FieldsService.js +52 -0
- package/dist/npm/utils/SortedPublicItemIds.d.ts +8 -0
- package/dist/npm/utils/SortedPublicItemIds.js +28 -0
- package/dist/npm/utils/consts.d.ts +40 -0
- package/dist/npm/utils/consts.js +43 -0
- package/dist/npm/utils/getItemIdUponKeyboardNavigation.d.ts +5 -0
- package/dist/npm/utils/getItemIdUponKeyboardNavigation.js +80 -0
- package/dist/npm/utils/itemIdUtils.d.ts +60 -0
- package/dist/npm/utils/itemIdUtils.js +132 -0
- package/dist/npm/utils/itemUtils.d.ts +45 -0
- package/dist/npm/utils/itemUtils.js +205 -0
- package/dist/npm/utils/misc.d.ts +9 -0
- package/dist/npm/utils/misc.js +22 -0
- 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;
|