@progress/kendo-vue-dropdowns 3.10.2 → 3.11.0-dev.202305230751
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/dist/cdn/js/kendo-vue-dropdowns.js +1 -1
- package/dist/es/AutoComplete/AutoComplete.js +115 -15
- package/dist/es/AutoComplete/AutoCompleteProps.d.ts +12 -0
- package/dist/es/ComboBox/ComboBox.js +115 -16
- package/dist/es/ComboBox/ComboBoxProps.d.ts +12 -0
- package/dist/es/DropDownList/DropDownList.js +101 -14
- package/dist/es/DropDownList/DropDownListProps.d.ts +12 -0
- package/dist/es/DropDownTree/DropDownTree.d.ts +49 -1
- package/dist/es/DropDownTree/DropDownTree.js +863 -638
- package/dist/es/DropDownTree/DropDownTreeProps.d.ts +19 -8
- package/dist/es/MultiSelect/MultiSelect.js +122 -28
- package/dist/es/MultiSelect/MultiSelectProps.d.ts +12 -0
- package/dist/es/MultiSelectTree/MultiSelectTree.js +12 -12
- package/dist/es/common/DropDownBase.d.ts +2 -0
- package/dist/es/common/DropDownBase.js +20 -0
- package/dist/es/common/GroupStickyHeader.d.ts +29 -0
- package/dist/es/common/GroupStickyHeader.js +59 -0
- package/dist/es/common/List.d.ts +2 -0
- package/dist/es/common/List.js +53 -25
- package/dist/es/common/ListFilter.js +47 -25
- package/dist/es/common/ListGroupItem.d.ts +41 -0
- package/dist/es/common/ListGroupItem.js +71 -0
- package/dist/es/common/settings.d.ts +1 -0
- package/dist/es/main.d.ts +2 -1
- package/dist/es/main.js +2 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/esm/AutoComplete/AutoComplete.js +115 -15
- package/dist/esm/AutoComplete/AutoCompleteProps.d.ts +12 -0
- package/dist/esm/ComboBox/ComboBox.js +115 -16
- package/dist/esm/ComboBox/ComboBoxProps.d.ts +12 -0
- package/dist/esm/DropDownList/DropDownList.js +101 -14
- package/dist/esm/DropDownList/DropDownListProps.d.ts +12 -0
- package/dist/esm/DropDownTree/DropDownTree.d.ts +49 -1
- package/dist/esm/DropDownTree/DropDownTree.js +863 -638
- package/dist/esm/DropDownTree/DropDownTreeProps.d.ts +19 -8
- package/dist/esm/MultiSelect/MultiSelect.js +122 -28
- package/dist/esm/MultiSelect/MultiSelectProps.d.ts +12 -0
- package/dist/esm/MultiSelectTree/MultiSelectTree.js +12 -12
- package/dist/esm/common/DropDownBase.d.ts +2 -0
- package/dist/esm/common/DropDownBase.js +20 -0
- package/dist/esm/common/GroupStickyHeader.d.ts +29 -0
- package/dist/esm/common/GroupStickyHeader.js +59 -0
- package/dist/esm/common/List.d.ts +2 -0
- package/dist/esm/common/List.js +53 -25
- package/dist/esm/common/ListFilter.js +47 -25
- package/dist/esm/common/ListGroupItem.d.ts +41 -0
- package/dist/esm/common/ListGroupItem.js +71 -0
- package/dist/esm/common/settings.d.ts +1 -0
- package/dist/esm/main.d.ts +2 -1
- package/dist/esm/main.js +2 -1
- package/dist/esm/package-metadata.js +1 -1
- package/dist/npm/AutoComplete/AutoComplete.js +114 -14
- package/dist/npm/AutoComplete/AutoCompleteProps.d.ts +12 -0
- package/dist/npm/ComboBox/ComboBox.js +115 -16
- package/dist/npm/ComboBox/ComboBoxProps.d.ts +12 -0
- package/dist/npm/DropDownList/DropDownList.js +101 -14
- package/dist/npm/DropDownList/DropDownListProps.d.ts +12 -0
- package/dist/npm/DropDownTree/DropDownTree.d.ts +49 -1
- package/dist/npm/DropDownTree/DropDownTree.js +868 -639
- package/dist/npm/DropDownTree/DropDownTreeProps.d.ts +19 -8
- package/dist/npm/MultiSelect/MultiSelect.js +122 -28
- package/dist/npm/MultiSelect/MultiSelectProps.d.ts +12 -0
- package/dist/npm/MultiSelectTree/MultiSelectTree.js +12 -12
- package/dist/npm/common/DropDownBase.d.ts +2 -0
- package/dist/npm/common/DropDownBase.js +20 -0
- package/dist/npm/common/GroupStickyHeader.d.ts +29 -0
- package/dist/npm/common/GroupStickyHeader.js +66 -0
- package/dist/npm/common/List.d.ts +2 -0
- package/dist/npm/common/List.js +52 -24
- package/dist/npm/common/ListFilter.js +47 -25
- package/dist/npm/common/ListGroupItem.d.ts +41 -0
- package/dist/npm/common/ListGroupItem.js +78 -0
- package/dist/npm/common/settings.d.ts +1 -0
- package/dist/npm/main.d.ts +2 -1
- package/dist/npm/main.js +3 -1
- package/dist/npm/package-metadata.js +1 -1
- package/package.json +10 -8
- package/dist/es/DropDownTree/useDropdownWidth.d.ts +0 -4
- package/dist/es/DropDownTree/useDropdownWidth.js +0 -10
- package/dist/esm/DropDownTree/useDropdownWidth.d.ts +0 -4
- package/dist/esm/DropDownTree/useDropdownWidth.js +0 -10
- package/dist/npm/DropDownTree/useDropdownWidth.d.ts +0 -4
- package/dist/npm/DropDownTree/useDropdownWidth.js +0 -17
package/dist/esm/common/List.js
CHANGED
|
@@ -6,7 +6,8 @@ var isV3 = allVue.version && allVue.version[0] === '3';
|
|
|
6
6
|
var ref = allVue.ref;
|
|
7
7
|
var inject = allVue.inject;
|
|
8
8
|
import { ListItem } from './ListItem.js';
|
|
9
|
-
import {
|
|
9
|
+
import { ListGroupItem } from './ListGroupItem.js';
|
|
10
|
+
import { areSame, getItemValue } from './utils.js';
|
|
10
11
|
import { getTemplate, getDefaultSlots, setRef, getRef } from '@progress/kendo-vue-common';
|
|
11
12
|
import { provideLocalizationService } from '@progress/kendo-vue-intl';
|
|
12
13
|
import { messages, nodata } from '../messages/main.js';
|
|
@@ -38,8 +39,10 @@ var ListVue2 = {
|
|
|
38
39
|
default: true
|
|
39
40
|
},
|
|
40
41
|
itemRender: [String, Function, Object],
|
|
42
|
+
groupHeaderItemRender: [String, Function, Object],
|
|
41
43
|
noDataRender: [String, Function, Object],
|
|
42
|
-
scroller: Boolean
|
|
44
|
+
scroller: Boolean,
|
|
45
|
+
groupField: String
|
|
43
46
|
},
|
|
44
47
|
inject: {
|
|
45
48
|
kendoLocalizationService: {
|
|
@@ -101,39 +104,64 @@ var ListVue2 = {
|
|
|
101
104
|
focusedIndex = _a.focusedIndex,
|
|
102
105
|
highlightSelected = _a.highlightSelected,
|
|
103
106
|
value = _a.value,
|
|
104
|
-
|
|
107
|
+
groupField = _a.groupField,
|
|
108
|
+
itemRender = _a.itemRender,
|
|
109
|
+
groupHeaderItemRender = _a.groupHeaderItemRender,
|
|
110
|
+
dataItems = _a.dataItems;
|
|
105
111
|
var isArray = Array.isArray(value);
|
|
106
|
-
|
|
112
|
+
var groupCounter = 0;
|
|
113
|
+
return dataItems.map(function (item, index) {
|
|
107
114
|
var realIndex = skip + index;
|
|
108
115
|
var selected = highlightSelected && (!isArray && areSame(item, value, valueField) || isArray && value.findIndex(function (i) {
|
|
109
116
|
return areSame(i, item, valueField);
|
|
110
117
|
}) !== -1);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
118
|
+
var group = undefined;
|
|
119
|
+
var current, previous;
|
|
120
|
+
if (index > 0 && groupField !== undefined) {
|
|
121
|
+
current = getItemValue(item, groupField);
|
|
122
|
+
previous = getItemValue(dataItems[index - 1], groupField);
|
|
123
|
+
if (current && previous && current !== previous !== undefined) {
|
|
124
|
+
group = current;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (group !== undefined && Object.keys(item).length === 1) {
|
|
128
|
+
groupCounter += 1;
|
|
129
|
+
}
|
|
130
|
+
return group !== undefined && item[groupField] !== undefined && Object.keys(item).length === 1 ? h(ListGroupItem, {
|
|
131
|
+
id: "option-".concat(optionsGuid, "-").concat(realIndex),
|
|
132
|
+
attrs: this.v3 ? undefined : {
|
|
133
|
+
id: "option-".concat(optionsGuid, "-").concat(realIndex),
|
|
134
|
+
group: group,
|
|
135
|
+
render: groupHeaderItemRender
|
|
136
|
+
},
|
|
137
|
+
key: realIndex + '-group-item',
|
|
138
|
+
group: group,
|
|
139
|
+
render: groupHeaderItemRender
|
|
140
|
+
}) : h(ListItem, {
|
|
141
|
+
id: "option-".concat(optionsGuid, "-").concat(realIndex),
|
|
142
|
+
attrs: this.v3 ? undefined : {
|
|
114
143
|
id: "option-".concat(optionsGuid, "-").concat(realIndex),
|
|
115
|
-
attrs: this.v3 ? undefined : {
|
|
116
|
-
id: "option-".concat(optionsGuid, "-").concat(realIndex),
|
|
117
|
-
dataItem: item,
|
|
118
|
-
selected: selected,
|
|
119
|
-
focused: focusedIndex === index,
|
|
120
|
-
index: realIndex,
|
|
121
|
-
textField: textField,
|
|
122
|
-
render: itemRender
|
|
123
|
-
},
|
|
124
144
|
dataItem: item,
|
|
125
145
|
selected: selected,
|
|
126
|
-
focused: focusedIndex ===
|
|
127
|
-
index: realIndex,
|
|
128
|
-
key: realIndex,
|
|
129
|
-
onItemclick: this.handleClick,
|
|
130
|
-
on: this.v3 ? undefined : {
|
|
131
|
-
"itemclick": this.handleClick
|
|
132
|
-
},
|
|
146
|
+
focused: focusedIndex === realIndex - groupCounter,
|
|
147
|
+
index: realIndex - groupCounter,
|
|
133
148
|
textField: textField,
|
|
149
|
+
group: group,
|
|
134
150
|
render: itemRender
|
|
135
|
-
}
|
|
136
|
-
|
|
151
|
+
},
|
|
152
|
+
dataItem: item,
|
|
153
|
+
selected: selected,
|
|
154
|
+
focused: focusedIndex === realIndex - groupCounter,
|
|
155
|
+
index: realIndex - groupCounter,
|
|
156
|
+
key: realIndex - groupCounter,
|
|
157
|
+
onItemclick: this.handleClick,
|
|
158
|
+
on: this.v3 ? undefined : {
|
|
159
|
+
"itemclick": this.handleClick
|
|
160
|
+
},
|
|
161
|
+
textField: textField,
|
|
162
|
+
group: group,
|
|
163
|
+
render: itemRender
|
|
164
|
+
});
|
|
137
165
|
}, this);
|
|
138
166
|
};
|
|
139
167
|
var items = renderItems.call(this);
|
|
@@ -1,3 +1,15 @@
|
|
|
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) {
|
|
6
|
+
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
1
13
|
// @ts-ignore
|
|
2
14
|
import * as Vue from 'vue';
|
|
3
15
|
var allVue = Vue;
|
|
@@ -6,6 +18,7 @@ var isV3 = allVue.version && allVue.version[0] === '3';
|
|
|
6
18
|
var ref = allVue.ref;
|
|
7
19
|
import { getRef, Icon, kendoThemeMaps, setRef } from '@progress/kendo-vue-common';
|
|
8
20
|
import { searchIcon } from '@progress/kendo-svg-icons';
|
|
21
|
+
import { TextBox } from '@progress/kendo-vue-inputs';
|
|
9
22
|
var sizeMap = kendoThemeMaps.sizeMap,
|
|
10
23
|
roundedMap = kendoThemeMaps.roundedMap;
|
|
11
24
|
/**
|
|
@@ -77,48 +90,57 @@ var ListFilterVue2 = {
|
|
|
77
90
|
},
|
|
78
91
|
handleBlur: function handleBlur(e) {
|
|
79
92
|
this.$emit('blur', e);
|
|
93
|
+
},
|
|
94
|
+
prefixRender: function prefixRender(h) {
|
|
95
|
+
var iconProps = {
|
|
96
|
+
class: 'k-input-icon',
|
|
97
|
+
name: 'search',
|
|
98
|
+
icon: searchIcon
|
|
99
|
+
};
|
|
100
|
+
return h(Icon, __assign({
|
|
101
|
+
props: this.v3 ? undefined : iconProps
|
|
102
|
+
}, iconProps));
|
|
80
103
|
}
|
|
81
104
|
},
|
|
82
105
|
mounted: function mounted() {
|
|
83
|
-
this.input = getRef(this, 'input');
|
|
106
|
+
this.input = getRef(this, 'input')._input;
|
|
84
107
|
},
|
|
85
108
|
// @ts-ignore
|
|
86
109
|
render: function render(createElement) {
|
|
87
110
|
var h = gh || createElement;
|
|
88
|
-
|
|
111
|
+
var _a = this.$props,
|
|
112
|
+
size = _a.size,
|
|
113
|
+
rounded = _a.rounded,
|
|
114
|
+
fillMode = _a.fillMode;
|
|
115
|
+
return h("div", {
|
|
89
116
|
"class": "k-list-filter"
|
|
90
|
-
}, [
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
name: "search",
|
|
94
|
-
attrs: this.v3 ? undefined : {
|
|
95
|
-
name: "search",
|
|
96
|
-
icon: searchIcon
|
|
97
|
-
},
|
|
98
|
-
icon: searchIcon,
|
|
99
|
-
"class": "k-input-icon"
|
|
100
|
-
}), h("input", {
|
|
117
|
+
}, [
|
|
118
|
+
// @ts-ignore
|
|
119
|
+
h(TextBox, {
|
|
101
120
|
ref: setRef(this, 'input'),
|
|
102
|
-
|
|
121
|
+
value: this.$props.value,
|
|
103
122
|
attrs: this.v3 ? undefined : {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
123
|
+
value: this.$props.value,
|
|
124
|
+
size: size,
|
|
125
|
+
fillMode: fillMode,
|
|
126
|
+
rounded: rounded,
|
|
127
|
+
inputPrefix: this.prefixRender
|
|
109
128
|
},
|
|
110
|
-
"class": "k-input-inner",
|
|
111
129
|
onInput: this.onChange,
|
|
112
130
|
on: this.v3 ? undefined : {
|
|
113
131
|
"input": this.onChange,
|
|
114
132
|
"keydown": this.onKeyDown,
|
|
115
|
-
"
|
|
116
|
-
"
|
|
133
|
+
"focus": this.handleFocus,
|
|
134
|
+
"blur": this.handleBlur
|
|
117
135
|
},
|
|
118
136
|
onKeydown: this.onKeyDown,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
137
|
+
onFocus: this.handleFocus,
|
|
138
|
+
onBlur: this.handleBlur,
|
|
139
|
+
size: size,
|
|
140
|
+
fillMode: fillMode,
|
|
141
|
+
rounded: rounded,
|
|
142
|
+
inputPrefix: this.prefixRender
|
|
143
|
+
})]);
|
|
122
144
|
}
|
|
123
145
|
};
|
|
124
146
|
/**
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { DefineComponent, RecordPropsDefinition, ComponentOptions, Vue2type } from '../additionalTypes';
|
|
2
|
+
declare type DefaultData<V> = object | ((this: V) => {});
|
|
3
|
+
declare type DefaultMethods<V> = {
|
|
4
|
+
[key: string]: (this: V, ...args: any[]) => any;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Represents the props of the ListItem component.
|
|
8
|
+
*/
|
|
9
|
+
export interface ListGroupItemProps {
|
|
10
|
+
/**
|
|
11
|
+
* Specifies the id that will be added to the group header item element.
|
|
12
|
+
*/
|
|
13
|
+
id?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The group that will be rendered.
|
|
16
|
+
*/
|
|
17
|
+
group?: string;
|
|
18
|
+
/**
|
|
19
|
+
* @hidden
|
|
20
|
+
*/
|
|
21
|
+
virtual?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Fires when the group header item is about to be rendered. Used to override the default appearance of the group header item.
|
|
24
|
+
*/
|
|
25
|
+
render?: any;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @hidden
|
|
29
|
+
*/
|
|
30
|
+
export interface ListItemAll extends Vue2type {
|
|
31
|
+
itemClass: object;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @hidden
|
|
35
|
+
*/
|
|
36
|
+
declare let ListGroupItemVue2: ComponentOptions<Vue2type, DefaultData<{}>, DefaultMethods<ListItemAll>, {}, RecordPropsDefinition<ListGroupItemProps>>;
|
|
37
|
+
/**
|
|
38
|
+
* @hidden
|
|
39
|
+
*/
|
|
40
|
+
declare const ListGroupItem: DefineComponent<ListGroupItemProps, any, {}, {}, {}, {}, {}, {}, string, ListGroupItemProps, ListGroupItemProps, {}>;
|
|
41
|
+
export { ListGroupItem, ListGroupItemVue2 };
|
|
@@ -0,0 +1,71 @@
|
|
|
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) {
|
|
6
|
+
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
import * as Vue from 'vue';
|
|
15
|
+
var allVue = Vue;
|
|
16
|
+
var gh = allVue.h;
|
|
17
|
+
var isV3 = allVue.version && allVue.version[0] === '3';
|
|
18
|
+
import { getTemplate } from '@progress/kendo-vue-common';
|
|
19
|
+
/**
|
|
20
|
+
* @hidden
|
|
21
|
+
*/
|
|
22
|
+
var ListGroupItemVue2 = {
|
|
23
|
+
name: 'KendoListItem',
|
|
24
|
+
inheritAttrs: false,
|
|
25
|
+
props: {
|
|
26
|
+
id: String,
|
|
27
|
+
group: String,
|
|
28
|
+
render: Object
|
|
29
|
+
},
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
setup: !isV3 ? undefined : function () {
|
|
32
|
+
var v3 = !!isV3;
|
|
33
|
+
return {
|
|
34
|
+
v3: v3
|
|
35
|
+
};
|
|
36
|
+
},
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
render: function render(createElement) {
|
|
39
|
+
var h = gh || createElement;
|
|
40
|
+
var _a = this.$props,
|
|
41
|
+
id = _a.id,
|
|
42
|
+
group = _a.group,
|
|
43
|
+
virtual = _a.virtual,
|
|
44
|
+
renderer = _a.render;
|
|
45
|
+
var defaultRendering = h("li", {
|
|
46
|
+
id: id,
|
|
47
|
+
attrs: this.v3 ? undefined : {
|
|
48
|
+
id: id,
|
|
49
|
+
role: "group"
|
|
50
|
+
},
|
|
51
|
+
role: "group",
|
|
52
|
+
"class": 'k-list-group-item',
|
|
53
|
+
style: {
|
|
54
|
+
position: virtual ? 'relative' : 'unset'
|
|
55
|
+
}
|
|
56
|
+
}, [h("span", {
|
|
57
|
+
"class": !renderer ? 'k-list-item-text' : undefined
|
|
58
|
+
}, [group])]);
|
|
59
|
+
return getTemplate.call(this, {
|
|
60
|
+
h: h,
|
|
61
|
+
template: this.$props.render,
|
|
62
|
+
defaultRendering: defaultRendering,
|
|
63
|
+
additionalProps: __assign({}, this.$props)
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* @hidden
|
|
69
|
+
*/
|
|
70
|
+
var ListGroupItem = ListGroupItemVue2;
|
|
71
|
+
export { ListGroupItem, ListGroupItemVue2 };
|
package/dist/esm/main.d.ts
CHANGED
|
@@ -10,8 +10,9 @@ import { AutoCompleteProps, AutoCompleteChangeEvent, AutoCompleteOpenEvent, Auto
|
|
|
10
10
|
import { MultiSelect, MultiSelectVue2 } from './MultiSelect/MultiSelect';
|
|
11
11
|
import { MultiSelectProps, MultiSelectChangeEvent, MultiSelectPageChangeEvent, MultiSelectFilterChangeEvent, MultiSelectOpenEvent, MultiSelectCloseEvent, MultiSelectFocusEvent, MultiSelectBlurEvent } from './MultiSelect/MultiSelectProps';
|
|
12
12
|
import { TagData as MultiSelectTagData } from './MultiSelect/TagList';
|
|
13
|
+
import { DropDownTree } from './DropDownTree/DropDownTree';
|
|
13
14
|
export * from './DropDownTree/DropDownTreeProps';
|
|
14
15
|
import { MultiSelectTree } from './MultiSelectTree/MultiSelectTree';
|
|
15
16
|
export * from './MultiSelectTree/MultiSelectTreeProps';
|
|
16
17
|
export * from './MultiSelectTree/utils';
|
|
17
|
-
export { AutoComplete, AutoCompleteVue2, AutoCompleteProps, AutoCompleteChangeEvent, AutoCompleteOpenEvent, AutoCompleteCloseEvent, AutoCompleteFocusEvent, AutoCompleteBlurEvent, DropDownList, DropDownListVue2, DropDownListProps, DropDownListFilterChangeEvent, DropDownListChangeEvent, DropDownListOpenEvent, DropDownListCloseEvent, DropDownListFocusEvent, DropDownListBlurEvent, DropDownListPageChangeEvent, Page, VirtualizationSettings, DropDownsPopupSettings, ListItemProps, Suggestion, ComboBox, ComboBoxVue2, ComboBoxProps, ComboBoxFilterChangeEvent, ComboBoxChangeEvent, ComboBoxOpenEvent, ComboBoxCloseEvent, ComboBoxFocusEvent, ComboBoxBlurEvent, ComboBoxPageChangeEvent, MultiSelect, MultiSelectVue2, MultiSelectProps, MultiSelectChangeEvent, MultiSelectPageChangeEvent, MultiSelectFilterChangeEvent, MultiSelectOpenEvent, MultiSelectCloseEvent, MultiSelectFocusEvent, MultiSelectBlurEvent, MultiSelectTagData, FormComponentValidity, MultiSelectTree };
|
|
18
|
+
export { AutoComplete, AutoCompleteVue2, AutoCompleteProps, AutoCompleteChangeEvent, AutoCompleteOpenEvent, AutoCompleteCloseEvent, AutoCompleteFocusEvent, AutoCompleteBlurEvent, DropDownList, DropDownListVue2, DropDownListProps, DropDownListFilterChangeEvent, DropDownListChangeEvent, DropDownListOpenEvent, DropDownListCloseEvent, DropDownListFocusEvent, DropDownListBlurEvent, DropDownListPageChangeEvent, Page, VirtualizationSettings, DropDownsPopupSettings, ListItemProps, Suggestion, ComboBox, ComboBoxVue2, ComboBoxProps, ComboBoxFilterChangeEvent, ComboBoxChangeEvent, ComboBoxOpenEvent, ComboBoxCloseEvent, ComboBoxFocusEvent, ComboBoxBlurEvent, ComboBoxPageChangeEvent, MultiSelect, MultiSelectVue2, MultiSelectProps, MultiSelectChangeEvent, MultiSelectPageChangeEvent, MultiSelectFilterChangeEvent, MultiSelectOpenEvent, MultiSelectCloseEvent, MultiSelectFocusEvent, MultiSelectBlurEvent, MultiSelectTagData, FormComponentValidity, MultiSelectTree, DropDownTree };
|
package/dist/esm/main.js
CHANGED
|
@@ -2,8 +2,9 @@ import { DropDownList, DropDownListVue2 } from './DropDownList/DropDownList.js';
|
|
|
2
2
|
import { ComboBox, ComboBoxVue2 } from './ComboBox/ComboBox.js';
|
|
3
3
|
import { AutoComplete, AutoCompleteVue2 } from './AutoComplete/AutoComplete.js';
|
|
4
4
|
import { MultiSelect, MultiSelectVue2 } from './MultiSelect/MultiSelect.js';
|
|
5
|
+
import { DropDownTree } from './DropDownTree/DropDownTree.js';
|
|
5
6
|
export * from './DropDownTree/DropDownTreeProps.js';
|
|
6
7
|
import { MultiSelectTree } from './MultiSelectTree/MultiSelectTree.js';
|
|
7
8
|
export * from './MultiSelectTree/MultiSelectTreeProps.js';
|
|
8
9
|
export * from './MultiSelectTree/utils.js';
|
|
9
|
-
export { AutoComplete, AutoCompleteVue2, DropDownList, DropDownListVue2, ComboBox, ComboBoxVue2, MultiSelect, MultiSelectVue2, MultiSelectTree };
|
|
10
|
+
export { AutoComplete, AutoCompleteVue2, DropDownList, DropDownListVue2, ComboBox, ComboBoxVue2, MultiSelect, MultiSelectVue2, MultiSelectTree, DropDownTree };
|
|
@@ -5,7 +5,7 @@ export var packageMetadata = {
|
|
|
5
5
|
name: '@progress/kendo-vue-dropdowns',
|
|
6
6
|
productName: 'Kendo UI for Vue',
|
|
7
7
|
productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],
|
|
8
|
-
publishDate:
|
|
8
|
+
publishDate: 1684827665,
|
|
9
9
|
version: '',
|
|
10
10
|
licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'
|
|
11
11
|
};
|
|
@@ -26,6 +26,7 @@ var SearchBar_1 = require("./../common/SearchBar");
|
|
|
26
26
|
var ListContainer_1 = require("./../common/ListContainer");
|
|
27
27
|
var List_1 = require("./../common/List");
|
|
28
28
|
var DropDownBase_1 = require("../common/DropDownBase");
|
|
29
|
+
var GroupStickyHeader_1 = require("../common/GroupStickyHeader");
|
|
29
30
|
var ClearButton_1 = require("../common/ClearButton");
|
|
30
31
|
var utils_1 = require("../common/utils");
|
|
31
32
|
var kendo_vue_common_1 = require("@progress/kendo-vue-common");
|
|
@@ -103,6 +104,8 @@ var AutoCompleteVue2 = {
|
|
|
103
104
|
}
|
|
104
105
|
},
|
|
105
106
|
itemRender: [String, Function, Object],
|
|
107
|
+
groupHeaderItemRender: [String, Function, Object],
|
|
108
|
+
groupStickyHeaderItemRender: [String, Function, Object],
|
|
106
109
|
listNoDataRender: [String, Function, Object],
|
|
107
110
|
focusedItemIndex: Function,
|
|
108
111
|
header: [String, Function, Object],
|
|
@@ -133,6 +136,9 @@ var AutoCompleteVue2 = {
|
|
|
133
136
|
validator: function validator(value) {
|
|
134
137
|
return ['small', 'medium', 'large'].includes(value);
|
|
135
138
|
}
|
|
139
|
+
},
|
|
140
|
+
groupField: {
|
|
141
|
+
type: String
|
|
136
142
|
}
|
|
137
143
|
},
|
|
138
144
|
data: function data() {
|
|
@@ -148,7 +154,10 @@ var AutoCompleteVue2 = {
|
|
|
148
154
|
last: ''
|
|
149
155
|
},
|
|
150
156
|
valueDuringOnChange: {},
|
|
151
|
-
suggested: ''
|
|
157
|
+
suggested: '',
|
|
158
|
+
group: undefined,
|
|
159
|
+
isScrolling: false,
|
|
160
|
+
itemHeight: 0
|
|
152
161
|
};
|
|
153
162
|
},
|
|
154
163
|
created: function created() {
|
|
@@ -196,8 +205,12 @@ var AutoCompleteVue2 = {
|
|
|
196
205
|
}
|
|
197
206
|
},
|
|
198
207
|
updated: function updated() {
|
|
199
|
-
var _a
|
|
200
|
-
|
|
208
|
+
var _a;
|
|
209
|
+
var _b = this.$props,
|
|
210
|
+
_c = _b.groupField,
|
|
211
|
+
groupField = _c === void 0 ? '' : _c,
|
|
212
|
+
_d = _b.dataItems,
|
|
213
|
+
dataItems = _d === void 0 ? [] : _d;
|
|
201
214
|
var focusedIndex = this.focusedIndex();
|
|
202
215
|
var focusedItem = dataItems[focusedIndex];
|
|
203
216
|
var dataChanged = this.prevData !== dataItems;
|
|
@@ -212,8 +225,22 @@ var AutoCompleteVue2 = {
|
|
|
212
225
|
// @ts-ignore
|
|
213
226
|
this.base.list = list.list;
|
|
214
227
|
}
|
|
215
|
-
if (
|
|
216
|
-
|
|
228
|
+
if (groupField === '') {
|
|
229
|
+
if (opened && (focusedItemChanged || dataChanged) || opening) {
|
|
230
|
+
this.base.scrollToItem(focusedIndex);
|
|
231
|
+
}
|
|
232
|
+
} else if (!this.isScrolling) {
|
|
233
|
+
var focusedItemIndex = (_a = this.base.getGroupedDataModernMode(dataItems, groupField)) === null || _a === void 0 ? void 0 : _a.indexOf(focusedItem);
|
|
234
|
+
if (opening) {
|
|
235
|
+
// Resets the sticky header group value for scenarios with open/close of component's popup
|
|
236
|
+
if (dataItems && dataItems.length !== 0) {
|
|
237
|
+
this.base.resetGroupStickyHeader(dataItems[0][groupField], this);
|
|
238
|
+
}
|
|
239
|
+
this.base.scrollToItem(focusedItemIndex);
|
|
240
|
+
}
|
|
241
|
+
if (opened && prevOpened && focusedItemChanged) {
|
|
242
|
+
this.base.scrollToItem(focusedItemIndex);
|
|
243
|
+
}
|
|
217
244
|
}
|
|
218
245
|
this.setValidity();
|
|
219
246
|
},
|
|
@@ -383,6 +410,10 @@ var AutoCompleteVue2 = {
|
|
|
383
410
|
this.togglePopup(state);
|
|
384
411
|
}
|
|
385
412
|
state.data.focusedItem = undefined;
|
|
413
|
+
// Resets the value of the StickyHeader when filtering the data or just entering symbols in the input
|
|
414
|
+
if (this.prevData && this.prevData.length !== this.$props.dataItems) {
|
|
415
|
+
state.data.group = undefined;
|
|
416
|
+
}
|
|
386
417
|
this.applyState(state);
|
|
387
418
|
},
|
|
388
419
|
clearButtonClick: function clearButtonClick(event) {
|
|
@@ -402,6 +433,9 @@ var AutoCompleteVue2 = {
|
|
|
402
433
|
this.applyState(state);
|
|
403
434
|
},
|
|
404
435
|
onInputKeyDown: function onInputKeyDown(event) {
|
|
436
|
+
if (this.isScrolling) {
|
|
437
|
+
this.isScrolling = false;
|
|
438
|
+
}
|
|
405
439
|
var keyCode = event.keyCode;
|
|
406
440
|
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
407
441
|
var state = this.base.initState();
|
|
@@ -487,6 +521,39 @@ var AutoCompleteVue2 = {
|
|
|
487
521
|
},
|
|
488
522
|
repositionPopup: function repositionPopup() {
|
|
489
523
|
this.base.repositionPopup();
|
|
524
|
+
},
|
|
525
|
+
onScroll: function onScroll(event) {
|
|
526
|
+
this.isScrolling = true;
|
|
527
|
+
var state = this.base.initState();
|
|
528
|
+
var list = this.base.list;
|
|
529
|
+
var groupField = this.$props.groupField;
|
|
530
|
+
var _a = this.$props.dataItems,
|
|
531
|
+
dataItems = _a === void 0 ? [] : _a;
|
|
532
|
+
if (!groupField || !dataItems.length) {
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
var itemHeight = this.itemHeight || (list.children ? list.children[0].offsetHeight : 0);
|
|
536
|
+
var target = event.target;
|
|
537
|
+
var scrollTop = target.scrollTop;
|
|
538
|
+
if (groupField) {
|
|
539
|
+
dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
|
|
540
|
+
}
|
|
541
|
+
var group = dataItems[0][groupField];
|
|
542
|
+
if (itemHeight === 0) {
|
|
543
|
+
itemHeight = 28;
|
|
544
|
+
}
|
|
545
|
+
for (var i = 1; i < dataItems.length; i++) {
|
|
546
|
+
if (itemHeight * i > scrollTop) {
|
|
547
|
+
break;
|
|
548
|
+
}
|
|
549
|
+
if (dataItems[i] && dataItems[i][groupField]) {
|
|
550
|
+
group = dataItems[i][groupField];
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
if (group !== this.group) {
|
|
554
|
+
state.data.group = group;
|
|
555
|
+
this.applyState(state);
|
|
556
|
+
}
|
|
490
557
|
}
|
|
491
558
|
},
|
|
492
559
|
render: function render(createElement) {
|
|
@@ -578,11 +645,15 @@ var AutoCompleteVue2 = {
|
|
|
578
645
|
var renderList = function renderList() {
|
|
579
646
|
var _a = this.$props,
|
|
580
647
|
textField = _a.textField,
|
|
581
|
-
|
|
582
|
-
|
|
648
|
+
groupField = _a.groupField;
|
|
649
|
+
var dataItems = this.$props.dataItems || [];
|
|
583
650
|
var itemRender = kendo_vue_common_1.templateRendering.call(this, this.$props.itemRender, kendo_vue_common_1.getListeners.call(this));
|
|
651
|
+
var groupHeaderItemRender = kendo_vue_common_1.templateRendering.call(this, this.$props.groupHeaderItemRender, kendo_vue_common_1.getListeners.call(this));
|
|
584
652
|
var listNoDataRender = kendo_vue_common_1.templateRendering.call(this, this.$props.listNoDataRender, kendo_vue_common_1.getListeners.call(this));
|
|
585
653
|
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
654
|
+
if (groupField) {
|
|
655
|
+
dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
|
|
656
|
+
}
|
|
586
657
|
return (
|
|
587
658
|
// @ts-ignore
|
|
588
659
|
h(List_1.List, {
|
|
@@ -602,7 +673,9 @@ var AutoCompleteVue2 = {
|
|
|
602
673
|
},
|
|
603
674
|
wrapperCssClass: "k-list-content",
|
|
604
675
|
itemRender: itemRender,
|
|
605
|
-
|
|
676
|
+
groupHeaderItemRender: groupHeaderItemRender,
|
|
677
|
+
noDataRender: listNoDataRender,
|
|
678
|
+
groupField: groupField
|
|
606
679
|
},
|
|
607
680
|
show: opened,
|
|
608
681
|
dataItems: dataItems.slice(),
|
|
@@ -619,10 +692,14 @@ var AutoCompleteVue2 = {
|
|
|
619
692
|
wrapperCssClass: "k-list-content",
|
|
620
693
|
onListclick: this.handleItemClick,
|
|
621
694
|
on: this.v3 ? undefined : {
|
|
622
|
-
"listclick": this.handleItemClick
|
|
695
|
+
"listclick": this.handleItemClick,
|
|
696
|
+
"scroll": this.onScroll
|
|
623
697
|
},
|
|
624
698
|
itemRender: itemRender,
|
|
625
|
-
|
|
699
|
+
groupHeaderItemRender: groupHeaderItemRender,
|
|
700
|
+
noDataRender: listNoDataRender,
|
|
701
|
+
groupField: groupField,
|
|
702
|
+
onScroll: this.onScroll
|
|
626
703
|
})
|
|
627
704
|
);
|
|
628
705
|
};
|
|
@@ -631,6 +708,7 @@ var AutoCompleteVue2 = {
|
|
|
631
708
|
var _a;
|
|
632
709
|
var headerTemplate = kendo_vue_common_1.templateRendering.call(this, this.$props.header, kendo_vue_common_1.getListeners.call(this));
|
|
633
710
|
var footerTemplate = kendo_vue_common_1.templateRendering.call(this, this.$props.footer, kendo_vue_common_1.getListeners.call(this));
|
|
711
|
+
var groupStickyHeaderTemplate = kendo_vue_common_1.templateRendering.call(this, this.$props.groupStickyHeaderItemRender, kendo_vue_common_1.getListeners.call(this));
|
|
634
712
|
var header = kendo_vue_common_1.getTemplate.call(this, {
|
|
635
713
|
h: h,
|
|
636
714
|
template: headerTemplate
|
|
@@ -641,6 +719,10 @@ var AutoCompleteVue2 = {
|
|
|
641
719
|
});
|
|
642
720
|
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
643
721
|
var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
|
|
722
|
+
var dataItems = this.$props.dataItems || [];
|
|
723
|
+
if (this.group === undefined && this.$props.groupField !== undefined) {
|
|
724
|
+
this.group = (0, utils_1.getItemValue)(dataItems[0], this.$props.groupField);
|
|
725
|
+
}
|
|
644
726
|
return (
|
|
645
727
|
// @ts-ignore function children
|
|
646
728
|
h(ListContainer_1.ListContainer, {
|
|
@@ -674,12 +756,26 @@ var AutoCompleteVue2 = {
|
|
|
674
756
|
}, this.v3 ? function () {
|
|
675
757
|
return [header && h("div", {
|
|
676
758
|
"class": "k-list-header"
|
|
677
|
-
}, [header]),
|
|
759
|
+
}, [header]), _this2.group && dataItems.length !== 0 && h(GroupStickyHeader_1.GroupStickyHeader, {
|
|
760
|
+
group: _this2.group,
|
|
761
|
+
attrs: _this2.v3 ? undefined : {
|
|
762
|
+
group: _this2.group,
|
|
763
|
+
render: groupStickyHeaderTemplate
|
|
764
|
+
},
|
|
765
|
+
render: groupStickyHeaderTemplate
|
|
766
|
+
}), renderList.call(_this2), footer && h("div", {
|
|
678
767
|
"class": "k-list-footer"
|
|
679
768
|
}, [footer])];
|
|
680
769
|
} : [header && h("div", {
|
|
681
770
|
"class": "k-list-header"
|
|
682
|
-
}, [header]),
|
|
771
|
+
}, [header]), _this2.group && dataItems.length !== 0 && h(GroupStickyHeader_1.GroupStickyHeader, {
|
|
772
|
+
group: _this2.group,
|
|
773
|
+
attrs: _this2.v3 ? undefined : {
|
|
774
|
+
group: _this2.group,
|
|
775
|
+
render: groupStickyHeaderTemplate
|
|
776
|
+
},
|
|
777
|
+
render: groupStickyHeaderTemplate
|
|
778
|
+
}), renderList.call(_this2), footer && h("div", {
|
|
683
779
|
"class": "k-list-footer"
|
|
684
780
|
}, [footer])])
|
|
685
781
|
);
|
|
@@ -701,8 +797,12 @@ var AutoCompleteVue2 = {
|
|
|
701
797
|
on: this.v3 ? undefined : {
|
|
702
798
|
"clearclick": this.clearButtonClick
|
|
703
799
|
}
|
|
704
|
-
}), h(
|
|
705
|
-
|
|
800
|
+
}), h(kendo_vue_common_1.Icon, {
|
|
801
|
+
name: loading ? 'loading' : '',
|
|
802
|
+
attrs: this.v3 ? undefined : {
|
|
803
|
+
name: loading ? 'loading' : ''
|
|
804
|
+
},
|
|
805
|
+
"class": 'k-input-loading-icon'
|
|
706
806
|
}), renderListContainer.call(this)]);
|
|
707
807
|
return label ? h("span", {
|
|
708
808
|
"class": this.spanClassNames,
|
|
@@ -215,4 +215,16 @@ export interface AutoCompleteProps extends FormComponentProps {
|
|
|
215
215
|
* @default `solid`
|
|
216
216
|
*/
|
|
217
217
|
fillMode?: null | 'solid' | 'outline' | 'flat' | string;
|
|
218
|
+
/**
|
|
219
|
+
* Sets the data item field that represents the start of a group. Applicable to objects data.
|
|
220
|
+
*/
|
|
221
|
+
groupField?: string;
|
|
222
|
+
/**
|
|
223
|
+
* Fires when a AutoComplete group header item is about to be rendered. Used to override the default appearance of the group's headers.
|
|
224
|
+
*/
|
|
225
|
+
groupHeaderItemRender?: any;
|
|
226
|
+
/**
|
|
227
|
+
* Fires when a AutoComplete sticky group header item is about to be rendered. Used to override the default appearance of the sticky group header of the component.
|
|
228
|
+
*/
|
|
229
|
+
groupStickyHeaderItemRender?: any;
|
|
218
230
|
}
|