@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/es/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';
|
|
9
|
-
import {
|
|
9
|
+
import { ListGroupItem } from './ListGroupItem';
|
|
10
|
+
import { areSame, getItemValue } from './utils';
|
|
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';
|
|
@@ -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/es/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/es/main.js
CHANGED
|
@@ -2,8 +2,9 @@ import { DropDownList, DropDownListVue2 } from './DropDownList/DropDownList';
|
|
|
2
2
|
import { ComboBox, ComboBoxVue2 } from './ComboBox/ComboBox';
|
|
3
3
|
import { AutoComplete, AutoCompleteVue2 } from './AutoComplete/AutoComplete';
|
|
4
4
|
import { MultiSelect, MultiSelectVue2 } from './MultiSelect/MultiSelect';
|
|
5
|
+
import { DropDownTree } from './DropDownTree/DropDownTree';
|
|
5
6
|
export * from './DropDownTree/DropDownTreeProps';
|
|
6
7
|
import { MultiSelectTree } from './MultiSelectTree/MultiSelectTree';
|
|
7
8
|
export * from './MultiSelectTree/MultiSelectTreeProps';
|
|
8
9
|
export * from './MultiSelectTree/utils';
|
|
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
|
};
|
|
@@ -20,9 +20,10 @@ import { SearchBar } from './../common/SearchBar.js';
|
|
|
20
20
|
import { ListContainer } from './../common/ListContainer.js';
|
|
21
21
|
import { List } from './../common/List.js';
|
|
22
22
|
import DropDownBase from '../common/DropDownBase.js';
|
|
23
|
+
import { GroupStickyHeader } from '../common/GroupStickyHeader.js';
|
|
23
24
|
import { ClearButton } from '../common/ClearButton.js';
|
|
24
25
|
import { itemIndexStartsWith, getItemValue, areSame, getFocusedItem } from '../common/utils.js';
|
|
25
|
-
import { guid, Keys, classNames, templateRendering, getListeners, getTemplate, kendoThemeMaps, setRef, getRef } from '@progress/kendo-vue-common';
|
|
26
|
+
import { guid, Keys, classNames, templateRendering, getListeners, getTemplate, kendoThemeMaps, setRef, getRef, Icon } from '@progress/kendo-vue-common';
|
|
26
27
|
var sizeMap = kendoThemeMaps.sizeMap,
|
|
27
28
|
roundedMap = kendoThemeMaps.roundedMap;
|
|
28
29
|
var VALIDATION_MESSAGE = 'Please enter a valid value!';
|
|
@@ -97,6 +98,8 @@ var AutoCompleteVue2 = {
|
|
|
97
98
|
}
|
|
98
99
|
},
|
|
99
100
|
itemRender: [String, Function, Object],
|
|
101
|
+
groupHeaderItemRender: [String, Function, Object],
|
|
102
|
+
groupStickyHeaderItemRender: [String, Function, Object],
|
|
100
103
|
listNoDataRender: [String, Function, Object],
|
|
101
104
|
focusedItemIndex: Function,
|
|
102
105
|
header: [String, Function, Object],
|
|
@@ -127,6 +130,9 @@ var AutoCompleteVue2 = {
|
|
|
127
130
|
validator: function validator(value) {
|
|
128
131
|
return ['small', 'medium', 'large'].includes(value);
|
|
129
132
|
}
|
|
133
|
+
},
|
|
134
|
+
groupField: {
|
|
135
|
+
type: String
|
|
130
136
|
}
|
|
131
137
|
},
|
|
132
138
|
data: function data() {
|
|
@@ -142,7 +148,10 @@ var AutoCompleteVue2 = {
|
|
|
142
148
|
last: ''
|
|
143
149
|
},
|
|
144
150
|
valueDuringOnChange: {},
|
|
145
|
-
suggested: ''
|
|
151
|
+
suggested: '',
|
|
152
|
+
group: undefined,
|
|
153
|
+
isScrolling: false,
|
|
154
|
+
itemHeight: 0
|
|
146
155
|
};
|
|
147
156
|
},
|
|
148
157
|
created: function created() {
|
|
@@ -190,8 +199,12 @@ var AutoCompleteVue2 = {
|
|
|
190
199
|
}
|
|
191
200
|
},
|
|
192
201
|
updated: function updated() {
|
|
193
|
-
var _a
|
|
194
|
-
|
|
202
|
+
var _a;
|
|
203
|
+
var _b = this.$props,
|
|
204
|
+
_c = _b.groupField,
|
|
205
|
+
groupField = _c === void 0 ? '' : _c,
|
|
206
|
+
_d = _b.dataItems,
|
|
207
|
+
dataItems = _d === void 0 ? [] : _d;
|
|
195
208
|
var focusedIndex = this.focusedIndex();
|
|
196
209
|
var focusedItem = dataItems[focusedIndex];
|
|
197
210
|
var dataChanged = this.prevData !== dataItems;
|
|
@@ -206,8 +219,22 @@ var AutoCompleteVue2 = {
|
|
|
206
219
|
// @ts-ignore
|
|
207
220
|
this.base.list = list.list;
|
|
208
221
|
}
|
|
209
|
-
if (
|
|
210
|
-
|
|
222
|
+
if (groupField === '') {
|
|
223
|
+
if (opened && (focusedItemChanged || dataChanged) || opening) {
|
|
224
|
+
this.base.scrollToItem(focusedIndex);
|
|
225
|
+
}
|
|
226
|
+
} else if (!this.isScrolling) {
|
|
227
|
+
var focusedItemIndex = (_a = this.base.getGroupedDataModernMode(dataItems, groupField)) === null || _a === void 0 ? void 0 : _a.indexOf(focusedItem);
|
|
228
|
+
if (opening) {
|
|
229
|
+
// Resets the sticky header group value for scenarios with open/close of component's popup
|
|
230
|
+
if (dataItems && dataItems.length !== 0) {
|
|
231
|
+
this.base.resetGroupStickyHeader(dataItems[0][groupField], this);
|
|
232
|
+
}
|
|
233
|
+
this.base.scrollToItem(focusedItemIndex);
|
|
234
|
+
}
|
|
235
|
+
if (opened && prevOpened && focusedItemChanged) {
|
|
236
|
+
this.base.scrollToItem(focusedItemIndex);
|
|
237
|
+
}
|
|
211
238
|
}
|
|
212
239
|
this.setValidity();
|
|
213
240
|
},
|
|
@@ -377,6 +404,10 @@ var AutoCompleteVue2 = {
|
|
|
377
404
|
this.togglePopup(state);
|
|
378
405
|
}
|
|
379
406
|
state.data.focusedItem = undefined;
|
|
407
|
+
// Resets the value of the StickyHeader when filtering the data or just entering symbols in the input
|
|
408
|
+
if (this.prevData && this.prevData.length !== this.$props.dataItems) {
|
|
409
|
+
state.data.group = undefined;
|
|
410
|
+
}
|
|
380
411
|
this.applyState(state);
|
|
381
412
|
},
|
|
382
413
|
clearButtonClick: function clearButtonClick(event) {
|
|
@@ -396,6 +427,9 @@ var AutoCompleteVue2 = {
|
|
|
396
427
|
this.applyState(state);
|
|
397
428
|
},
|
|
398
429
|
onInputKeyDown: function onInputKeyDown(event) {
|
|
430
|
+
if (this.isScrolling) {
|
|
431
|
+
this.isScrolling = false;
|
|
432
|
+
}
|
|
399
433
|
var keyCode = event.keyCode;
|
|
400
434
|
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
401
435
|
var state = this.base.initState();
|
|
@@ -481,6 +515,39 @@ var AutoCompleteVue2 = {
|
|
|
481
515
|
},
|
|
482
516
|
repositionPopup: function repositionPopup() {
|
|
483
517
|
this.base.repositionPopup();
|
|
518
|
+
},
|
|
519
|
+
onScroll: function onScroll(event) {
|
|
520
|
+
this.isScrolling = true;
|
|
521
|
+
var state = this.base.initState();
|
|
522
|
+
var list = this.base.list;
|
|
523
|
+
var groupField = this.$props.groupField;
|
|
524
|
+
var _a = this.$props.dataItems,
|
|
525
|
+
dataItems = _a === void 0 ? [] : _a;
|
|
526
|
+
if (!groupField || !dataItems.length) {
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
var itemHeight = this.itemHeight || (list.children ? list.children[0].offsetHeight : 0);
|
|
530
|
+
var target = event.target;
|
|
531
|
+
var scrollTop = target.scrollTop;
|
|
532
|
+
if (groupField) {
|
|
533
|
+
dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
|
|
534
|
+
}
|
|
535
|
+
var group = dataItems[0][groupField];
|
|
536
|
+
if (itemHeight === 0) {
|
|
537
|
+
itemHeight = 28;
|
|
538
|
+
}
|
|
539
|
+
for (var i = 1; i < dataItems.length; i++) {
|
|
540
|
+
if (itemHeight * i > scrollTop) {
|
|
541
|
+
break;
|
|
542
|
+
}
|
|
543
|
+
if (dataItems[i] && dataItems[i][groupField]) {
|
|
544
|
+
group = dataItems[i][groupField];
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
if (group !== this.group) {
|
|
548
|
+
state.data.group = group;
|
|
549
|
+
this.applyState(state);
|
|
550
|
+
}
|
|
484
551
|
}
|
|
485
552
|
},
|
|
486
553
|
render: function render(createElement) {
|
|
@@ -572,11 +639,15 @@ var AutoCompleteVue2 = {
|
|
|
572
639
|
var renderList = function renderList() {
|
|
573
640
|
var _a = this.$props,
|
|
574
641
|
textField = _a.textField,
|
|
575
|
-
|
|
576
|
-
|
|
642
|
+
groupField = _a.groupField;
|
|
643
|
+
var dataItems = this.$props.dataItems || [];
|
|
577
644
|
var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));
|
|
645
|
+
var groupHeaderItemRender = templateRendering.call(this, this.$props.groupHeaderItemRender, getListeners.call(this));
|
|
578
646
|
var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));
|
|
579
647
|
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
648
|
+
if (groupField) {
|
|
649
|
+
dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
|
|
650
|
+
}
|
|
580
651
|
return (
|
|
581
652
|
// @ts-ignore
|
|
582
653
|
h(List, {
|
|
@@ -596,7 +667,9 @@ var AutoCompleteVue2 = {
|
|
|
596
667
|
},
|
|
597
668
|
wrapperCssClass: "k-list-content",
|
|
598
669
|
itemRender: itemRender,
|
|
599
|
-
|
|
670
|
+
groupHeaderItemRender: groupHeaderItemRender,
|
|
671
|
+
noDataRender: listNoDataRender,
|
|
672
|
+
groupField: groupField
|
|
600
673
|
},
|
|
601
674
|
show: opened,
|
|
602
675
|
dataItems: dataItems.slice(),
|
|
@@ -613,10 +686,14 @@ var AutoCompleteVue2 = {
|
|
|
613
686
|
wrapperCssClass: "k-list-content",
|
|
614
687
|
onListclick: this.handleItemClick,
|
|
615
688
|
on: this.v3 ? undefined : {
|
|
616
|
-
"listclick": this.handleItemClick
|
|
689
|
+
"listclick": this.handleItemClick,
|
|
690
|
+
"scroll": this.onScroll
|
|
617
691
|
},
|
|
618
692
|
itemRender: itemRender,
|
|
619
|
-
|
|
693
|
+
groupHeaderItemRender: groupHeaderItemRender,
|
|
694
|
+
noDataRender: listNoDataRender,
|
|
695
|
+
groupField: groupField,
|
|
696
|
+
onScroll: this.onScroll
|
|
620
697
|
})
|
|
621
698
|
);
|
|
622
699
|
};
|
|
@@ -625,6 +702,7 @@ var AutoCompleteVue2 = {
|
|
|
625
702
|
var _a;
|
|
626
703
|
var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));
|
|
627
704
|
var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));
|
|
705
|
+
var groupStickyHeaderTemplate = templateRendering.call(this, this.$props.groupStickyHeaderItemRender, getListeners.call(this));
|
|
628
706
|
var header = getTemplate.call(this, {
|
|
629
707
|
h: h,
|
|
630
708
|
template: headerTemplate
|
|
@@ -635,6 +713,10 @@ var AutoCompleteVue2 = {
|
|
|
635
713
|
});
|
|
636
714
|
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
637
715
|
var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
|
|
716
|
+
var dataItems = this.$props.dataItems || [];
|
|
717
|
+
if (this.group === undefined && this.$props.groupField !== undefined) {
|
|
718
|
+
this.group = getItemValue(dataItems[0], this.$props.groupField);
|
|
719
|
+
}
|
|
638
720
|
return (
|
|
639
721
|
// @ts-ignore function children
|
|
640
722
|
h(ListContainer, {
|
|
@@ -668,12 +750,26 @@ var AutoCompleteVue2 = {
|
|
|
668
750
|
}, this.v3 ? function () {
|
|
669
751
|
return [header && h("div", {
|
|
670
752
|
"class": "k-list-header"
|
|
671
|
-
}, [header]),
|
|
753
|
+
}, [header]), _this2.group && dataItems.length !== 0 && h(GroupStickyHeader, {
|
|
754
|
+
group: _this2.group,
|
|
755
|
+
attrs: _this2.v3 ? undefined : {
|
|
756
|
+
group: _this2.group,
|
|
757
|
+
render: groupStickyHeaderTemplate
|
|
758
|
+
},
|
|
759
|
+
render: groupStickyHeaderTemplate
|
|
760
|
+
}), renderList.call(_this2), footer && h("div", {
|
|
672
761
|
"class": "k-list-footer"
|
|
673
762
|
}, [footer])];
|
|
674
763
|
} : [header && h("div", {
|
|
675
764
|
"class": "k-list-header"
|
|
676
|
-
}, [header]),
|
|
765
|
+
}, [header]), _this2.group && dataItems.length !== 0 && h(GroupStickyHeader, {
|
|
766
|
+
group: _this2.group,
|
|
767
|
+
attrs: _this2.v3 ? undefined : {
|
|
768
|
+
group: _this2.group,
|
|
769
|
+
render: groupStickyHeaderTemplate
|
|
770
|
+
},
|
|
771
|
+
render: groupStickyHeaderTemplate
|
|
772
|
+
}), renderList.call(_this2), footer && h("div", {
|
|
677
773
|
"class": "k-list-footer"
|
|
678
774
|
}, [footer])])
|
|
679
775
|
);
|
|
@@ -695,8 +791,12 @@ var AutoCompleteVue2 = {
|
|
|
695
791
|
on: this.v3 ? undefined : {
|
|
696
792
|
"clearclick": this.clearButtonClick
|
|
697
793
|
}
|
|
698
|
-
}), h(
|
|
699
|
-
|
|
794
|
+
}), h(Icon, {
|
|
795
|
+
name: loading ? 'loading' : '',
|
|
796
|
+
attrs: this.v3 ? undefined : {
|
|
797
|
+
name: loading ? 'loading' : ''
|
|
798
|
+
},
|
|
799
|
+
"class": 'k-input-loading-icon'
|
|
700
800
|
}), renderListContainer.call(this)]);
|
|
701
801
|
return label ? h("span", {
|
|
702
802
|
"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
|
}
|