@progress/kendo-vue-dropdowns 3.5.0-dev.202208020811 → 3.5.1-dev.202208110751

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/cdn/js/kendo-vue-dropdowns.js +1 -1
  2. package/dist/es/AutoComplete/AutoComplete.js +3 -3
  3. package/dist/es/AutoComplete/AutoCompleteProps.js +1 -0
  4. package/dist/es/ComboBox/ComboBox.js +4 -4
  5. package/dist/es/ComboBox/ComboBoxProps.d.ts +1 -1
  6. package/dist/es/ComboBox/ComboBoxProps.js +1 -0
  7. package/dist/es/DropDownList/DropDownList.js +5 -13
  8. package/dist/es/DropDownList/DropDownListProps.js +1 -0
  9. package/dist/es/MultiSelect/MultiSelect.js +16 -20
  10. package/dist/es/MultiSelect/MultiSelectProps.d.ts +1 -1
  11. package/dist/es/MultiSelect/MultiSelectProps.js +1 -0
  12. package/dist/es/MultiSelect/TagList.js +3 -3
  13. package/dist/es/common/List.js +2 -2
  14. package/dist/es/common/ListFilter.js +1 -1
  15. package/dist/es/common/events.js +1 -0
  16. package/dist/es/common/filterDescriptor.js +1 -0
  17. package/dist/es/package-metadata.js +1 -1
  18. package/dist/esm/AutoComplete/AutoComplete.d.ts +107 -0
  19. package/dist/esm/AutoComplete/AutoComplete.js +761 -0
  20. package/dist/esm/AutoComplete/AutoCompleteProps.d.ts +202 -0
  21. package/dist/esm/AutoComplete/AutoCompleteProps.js +2 -0
  22. package/dist/esm/ComboBox/ComboBox.d.ts +99 -0
  23. package/dist/esm/ComboBox/ComboBox.js +1063 -0
  24. package/dist/esm/ComboBox/ComboBoxProps.d.ts +244 -0
  25. package/dist/esm/ComboBox/ComboBoxProps.js +2 -0
  26. package/dist/esm/DropDownList/DropDownList.d.ts +100 -0
  27. package/dist/esm/DropDownList/DropDownList.js +1088 -0
  28. package/dist/esm/DropDownList/DropDownListProps.d.ts +274 -0
  29. package/dist/esm/DropDownList/DropDownListProps.js +2 -0
  30. package/dist/esm/MultiSelect/MultiSelect.d.ts +115 -0
  31. package/dist/esm/MultiSelect/MultiSelect.js +1249 -0
  32. package/dist/esm/MultiSelect/MultiSelectProps.d.ts +262 -0
  33. package/dist/esm/MultiSelect/MultiSelectProps.js +2 -0
  34. package/dist/esm/MultiSelect/TagList.d.ts +51 -0
  35. package/dist/esm/MultiSelect/TagList.js +180 -0
  36. package/dist/esm/additionalTypes.ts +21 -0
  37. package/dist/esm/common/ClearButton.d.ts +21 -0
  38. package/dist/esm/common/ClearButton.js +68 -0
  39. package/dist/esm/common/DropDownBase.d.ts +84 -0
  40. package/dist/esm/common/DropDownBase.js +303 -0
  41. package/dist/esm/common/List.d.ts +58 -0
  42. package/dist/esm/common/List.js +176 -0
  43. package/dist/esm/common/ListContainer.d.ts +40 -0
  44. package/dist/esm/common/ListContainer.js +131 -0
  45. package/dist/esm/common/ListDefaultItem.d.ts +29 -0
  46. package/dist/esm/common/ListDefaultItem.js +62 -0
  47. package/dist/esm/common/ListFilter.d.ts +46 -0
  48. package/dist/esm/common/ListFilter.js +112 -0
  49. package/dist/esm/common/ListItem.d.ts +71 -0
  50. package/dist/esm/common/ListItem.js +105 -0
  51. package/dist/esm/common/Navigation.d.ts +12 -0
  52. package/dist/esm/common/Navigation.js +34 -0
  53. package/dist/esm/common/SearchBar.d.ts +65 -0
  54. package/dist/esm/common/SearchBar.js +177 -0
  55. package/dist/esm/common/VirtualScroll.d.ts +42 -0
  56. package/dist/esm/common/VirtualScroll.js +196 -0
  57. package/dist/esm/common/events.d.ts +63 -0
  58. package/dist/esm/common/events.js +1 -0
  59. package/dist/esm/common/filterDescriptor.d.ts +41 -0
  60. package/dist/esm/common/filterDescriptor.js +2 -0
  61. package/dist/esm/common/settings.d.ts +102 -0
  62. package/dist/esm/common/settings.js +8 -0
  63. package/dist/esm/common/utils.d.ts +57 -0
  64. package/dist/esm/common/utils.js +184 -0
  65. package/dist/esm/main.d.ts +13 -0
  66. package/dist/esm/main.js +5 -0
  67. package/dist/esm/messages/index.d.ts +20 -0
  68. package/dist/esm/messages/index.js +21 -0
  69. package/dist/esm/package-metadata.d.ts +5 -0
  70. package/dist/esm/package-metadata.js +11 -0
  71. package/dist/esm/package.json +3 -0
  72. package/dist/npm/AutoComplete/AutoComplete.js +18 -18
  73. package/dist/npm/ComboBox/ComboBox.js +36 -36
  74. package/dist/npm/ComboBox/ComboBoxProps.d.ts +1 -1
  75. package/dist/npm/DropDownList/DropDownList.js +36 -44
  76. package/dist/npm/MultiSelect/MultiSelect.js +34 -38
  77. package/dist/npm/MultiSelect/MultiSelectProps.d.ts +1 -1
  78. package/dist/npm/MultiSelect/TagList.js +3 -3
  79. package/dist/npm/common/ClearButton.js +1 -1
  80. package/dist/npm/common/DropDownBase.js +6 -6
  81. package/dist/npm/common/List.js +8 -8
  82. package/dist/npm/common/ListContainer.js +1 -1
  83. package/dist/npm/common/ListDefaultItem.js +2 -2
  84. package/dist/npm/common/ListFilter.js +3 -3
  85. package/dist/npm/common/ListItem.js +2 -2
  86. package/dist/npm/common/Navigation.js +1 -1
  87. package/dist/npm/common/SearchBar.js +2 -2
  88. package/dist/npm/package-metadata.js +1 -1
  89. package/package.json +11 -5
@@ -0,0 +1,761 @@
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
+
6
+ for (var p in s) {
7
+ if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ }
10
+
11
+ return t;
12
+ };
13
+
14
+ return __assign.apply(this, arguments);
15
+ }; // @ts-ignore
16
+
17
+
18
+ import * as Vue from 'vue';
19
+ var allVue = Vue;
20
+ var gh = allVue.h;
21
+ var isV3 = allVue.version && allVue.version[0] === '3';
22
+ var ref = allVue.ref;
23
+ import { SearchBar } from './../common/SearchBar.js';
24
+ import { ListContainer } from './../common/ListContainer.js';
25
+ import { List } from './../common/List.js';
26
+ import DropDownBase from '../common/DropDownBase.js';
27
+ import { ClearButton } from '../common/ClearButton.js';
28
+ import { itemIndexStartsWith, getItemValue, areSame, getFocusedItem } from '../common/utils.js';
29
+ import { guid, Keys, classNames, templateRendering, getListeners, getTemplate, kendoThemeMaps, setRef, getRef } from '@progress/kendo-vue-common';
30
+ var sizeMap = kendoThemeMaps.sizeMap,
31
+ roundedMap = kendoThemeMaps.roundedMap;
32
+ var VALIDATION_MESSAGE = 'Please enter a valid value!';
33
+ /**
34
+ * @hidden
35
+ */
36
+
37
+ var AutoCompleteVue2 = {
38
+ name: 'KendoAutoComplete',
39
+ model: {
40
+ event: 'changemodel'
41
+ },
42
+ props: {
43
+ id: String,
44
+ defaultValue: {
45
+ type: [String],
46
+ default: undefined
47
+ },
48
+ name: String,
49
+ modelValue: {
50
+ type: [String],
51
+ default: undefined
52
+ },
53
+ value: {
54
+ type: [String],
55
+ default: undefined
56
+ },
57
+ label: {
58
+ type: String
59
+ },
60
+ placeholder: String,
61
+ required: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ valid: {
66
+ type: Boolean,
67
+ default: undefined
68
+ },
69
+ validationMessage: {
70
+ type: String,
71
+ default: undefined
72
+ },
73
+ validityStyles: {
74
+ type: Boolean,
75
+ default: true
76
+ },
77
+ opened: {
78
+ type: Boolean,
79
+ default: undefined
80
+ },
81
+ disabled: Boolean,
82
+ dir: {
83
+ type: String,
84
+ default: undefined
85
+ },
86
+ tabIndex: {
87
+ type: Number,
88
+ default: 0
89
+ },
90
+ readonly: Boolean,
91
+ accessKey: String,
92
+ dataItems: Array,
93
+ textField: String,
94
+ loading: Boolean,
95
+ popupSettings: {
96
+ type: Object,
97
+ default: function _default() {
98
+ return {
99
+ animate: true,
100
+ height: '200px'
101
+ };
102
+ }
103
+ },
104
+ itemRender: [String, Function, Object],
105
+ listNoDataRender: [String, Function, Object],
106
+ focusedItemIndex: Function,
107
+ header: [String, Function, Object],
108
+ footer: [String, Function, Object],
109
+ suggest: {
110
+ type: [Boolean, String],
111
+ default: false
112
+ },
113
+ ariaLabelledBy: String,
114
+ ariaDescribedBy: String,
115
+ rounded: {
116
+ type: String,
117
+ default: 'medium',
118
+ validator: function validator(value) {
119
+ return ['small', 'medium', 'large', 'full'].includes(value);
120
+ }
121
+ },
122
+ fillMode: {
123
+ type: String,
124
+ default: 'solid',
125
+ validator: function validator(value) {
126
+ return ['solid', 'flat', 'outline'].includes(value);
127
+ }
128
+ },
129
+ size: {
130
+ type: String,
131
+ default: 'medium',
132
+ validator: function validator(value) {
133
+ return ['small', 'medium', 'large'].includes(value);
134
+ }
135
+ }
136
+ },
137
+ data: function data() {
138
+ return {
139
+ hasMounted: false,
140
+ currentText: '',
141
+ currentValue: '',
142
+ currentFocused: false,
143
+ currentOpened: false,
144
+ focusedItem: undefined,
145
+ searchState: {
146
+ word: '',
147
+ last: ''
148
+ },
149
+ valueDuringOnChange: {},
150
+ suggested: ''
151
+ };
152
+ },
153
+ created: function created() {
154
+ this.valueDuringOnChange = undefined;
155
+ this.currentText = undefined;
156
+ this.currentValue = undefined;
157
+ this.currentFocused = undefined;
158
+ this.currentOpened = undefined;
159
+ this.base = new DropDownBase(this);
160
+ this.anchor = guid();
161
+ this.inputId = guid();
162
+ },
163
+ // @ts-ignore
164
+ setup: !isV3 ? undefined : function () {
165
+ var v3 = !!isV3;
166
+ var inputRef = ref(null);
167
+ var kendoAnchorRef = ref(null);
168
+ return {
169
+ v3: v3,
170
+ inputRef: inputRef,
171
+ kendoAnchorRef: kendoAnchorRef
172
+ };
173
+ },
174
+ mounted: function mounted() {
175
+ this.hasMounted = true; // @ts-ignore
176
+
177
+ this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;
178
+ this.base.wrapper = getRef(this, 'kendoAnchor', this.anchor);
179
+ this.element = getRef(this, 'kendoAnchor', this.anchor);
180
+ this.base.didMount();
181
+ this.setValidity();
182
+ },
183
+ watch: {
184
+ currentOpened: function currentOpened(_, oldValue) {
185
+ this.prevCurrentOpened = oldValue;
186
+ },
187
+ opened: function opened(_, oldValue) {
188
+ this.prevOpened = oldValue;
189
+ },
190
+ dataItems: function dataItems(_, oldValue) {
191
+ this.prevData = oldValue;
192
+ },
193
+ focusedItem: function focusedItem(_, oldValue) {
194
+ this.prevFocusedItem = oldValue;
195
+ }
196
+ },
197
+ updated: function updated() {
198
+ var _a = this.$props.dataItems,
199
+ dataItems = _a === void 0 ? [] : _a;
200
+ var focusedIndex = this.focusedIndex();
201
+ var focusedItem = dataItems[focusedIndex];
202
+ var dataChanged = this.prevData !== dataItems;
203
+ var focusedItemChanged = focusedItem !== undefined && this.prevFocusedItem !== focusedItem;
204
+ var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
205
+ var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;
206
+ var opening = !prevOpened && opened;
207
+ var list = this.$refs.list;
208
+
209
+ if (list) {
210
+ // @ts-ignore
211
+ this.base.vs.list = list.list; // @ts-ignore
212
+
213
+ this.base.list = list.list;
214
+ }
215
+
216
+ if (dataItems.length && (opened && (focusedItemChanged || dataChanged) || opening)) {
217
+ this.base.scrollToItem(focusedIndex);
218
+ }
219
+
220
+ this.setValidity();
221
+ },
222
+ computed: {
223
+ spanClassNames: {
224
+ get: function get() {
225
+ var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;
226
+ return {
227
+ 'k-floating-label-container': true,
228
+ 'k-focus': this.currentFocused,
229
+ 'k-empty': !this.computedValue(),
230
+ 'k-invalid': !isValid && isValid !== undefined,
231
+ 'k-rtl': this.$props.dir === 'rtl'
232
+ };
233
+ }
234
+ }
235
+ },
236
+ methods: {
237
+ focus: function focus() {
238
+ if (this.input) {
239
+ this.input.focus();
240
+ }
241
+ },
242
+ computedValue: function computedValue() {
243
+ var value;
244
+
245
+ if (this.valueDuringOnChange !== undefined) {
246
+ value = this.valueDuringOnChange;
247
+ } else if (this.$props.value !== undefined) {
248
+ value = this.$props.value;
249
+ } else if (this.$props.modelValue !== undefined) {
250
+ value = this.$props.modelValue;
251
+ } else if (this.currentValue !== undefined) {
252
+ value = this.currentValue;
253
+ } else if (this.$props.defaultValue !== undefined) {
254
+ value = this.$props.defaultValue;
255
+ }
256
+
257
+ return value;
258
+ },
259
+ primitiveValue: function primitiveValue() {
260
+ var value = this.computedValue();
261
+ return this.valuePrimitive ? getItemValue(value, this.valueField) : value;
262
+ },
263
+ validity: function validity() {
264
+ var customError = this.$props.validationMessage !== undefined;
265
+ var isValid = !this.$props.required || this.computedValue() !== null && this.computedValue() !== '' && this.computedValue() !== undefined;
266
+ var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;
267
+ return {
268
+ customError: customError,
269
+ valid: valid,
270
+ valueMissing: this.computedValue() === null
271
+ };
272
+ },
273
+ handleItemSelect: function handleItemSelect(index, state) {
274
+ var _a = this.$props.dataItems,
275
+ dataItems = _a === void 0 ? [] : _a;
276
+ var newText = getItemValue(dataItems[index], this.$props.textField);
277
+ this.triggerOnChange(newText, state);
278
+ },
279
+ itemFocus: function itemFocus(index, state) {
280
+ var _a = this.$props,
281
+ _b = _a.dataItems,
282
+ dataItems = _b === void 0 ? [] : _b,
283
+ textField = _a.textField;
284
+ var focusedItem = dataItems[index];
285
+
286
+ if (!areSame(this.$data.focusedItem, focusedItem, textField)) {
287
+ state.data.focusedItem = focusedItem;
288
+ }
289
+ },
290
+ togglePopup: function togglePopup(state) {
291
+ this.base.togglePopup(state);
292
+ },
293
+ onNavigate: function onNavigate(state, keyCode) {
294
+ var _this = this;
295
+
296
+ var typedText = this.computedValue();
297
+ var _a = this.$props,
298
+ _b = _a.dataItems,
299
+ dataItems = _b === void 0 ? [] : _b,
300
+ textField = _a.textField,
301
+ focusedItemIndex = _a.focusedItemIndex;
302
+ var focusedIndex = this.$data.focusedItem !== undefined ? dataItems.findIndex(function (i) {
303
+ return areSame(i, _this.$data.focusedItem, textField);
304
+ }) : focusedItemIndex ? focusedItemIndex(dataItems, typedText, textField) : dataItems.indexOf(getFocusedItem(dataItems, typedText, textField));
305
+ var newFocused = this.base.navigation.navigate({
306
+ keyCode: keyCode,
307
+ current: focusedIndex,
308
+ max: dataItems.length - 1,
309
+ min: 0
310
+ });
311
+
312
+ if (newFocused !== undefined) {
313
+ this.itemFocus(newFocused, state);
314
+ }
315
+
316
+ this.applyState(state);
317
+ },
318
+
319
+ /**
320
+ * @hidden
321
+ */
322
+ applyInputValue: function applyInputValue(value, state, eventKey) {
323
+ var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
324
+ var _a = this.$props,
325
+ _b = _a.dataItems,
326
+ dataItems = _b === void 0 ? [] : _b,
327
+ textField = _a.textField;
328
+ this.suggested = '';
329
+
330
+ if (opened && eventKey === Keys.enter) {
331
+ var newValue = getItemValue(dataItems[this.focusedIndex(value)], textField);
332
+ this.triggerOnChange(newValue, state);
333
+ }
334
+
335
+ if (opened) {
336
+ this.togglePopup(state);
337
+ }
338
+
339
+ this.applyState(state);
340
+ },
341
+ setValidity: function setValidity() {
342
+ if (this.input && this.input.setCustomValidity) {
343
+ this.input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);
344
+ }
345
+ },
346
+ handleItemClick: function handleItemClick(index, event) {
347
+ this.base.handleItemClick(index, event);
348
+ this.valueDuringOnChange = undefined;
349
+ },
350
+ onChangeHandler: function onChangeHandler(event) {
351
+ var base = this.base;
352
+ var state = base.initState();
353
+ var input = event.target;
354
+ var value = input.value;
355
+ var selectionAtEnd = input.selectionEnd === value.length;
356
+ state.event = event;
357
+ var prevSuggestion = this.suggested;
358
+ var prevValue = this.computedValue();
359
+ var prevUserInput = prevValue && prevSuggestion && prevValue.substring(0, prevValue.length - prevSuggestion.length);
360
+ var deletedSuggestion = prevUserInput && prevUserInput === value;
361
+ var deleting = prevUserInput && prevUserInput.length > value.length;
362
+ var suggest = this.$props.suggest;
363
+ var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
364
+
365
+ if (suggest !== undefined && suggest !== false) {
366
+ if (deletedSuggestion || deleting || !selectionAtEnd) {
367
+ this.suggested = '';
368
+ } else {
369
+ this.suggestValue(value);
370
+ }
371
+
372
+ var newValue = value + this.suggested;
373
+ var suggestion = {
374
+ userInput: value,
375
+ value: this.suggested
376
+ };
377
+ this.triggerOnChange(newValue, state, {
378
+ suggestion: suggestion
379
+ });
380
+ } else {
381
+ this.suggested = '';
382
+ this.triggerOnChange(value, state);
383
+ }
384
+
385
+ if (!opened && value || opened && !value) {
386
+ this.togglePopup(state);
387
+ }
388
+
389
+ state.data.focusedItem = undefined;
390
+ this.applyState(state);
391
+ },
392
+ clearButtonClick: function clearButtonClick(event) {
393
+ var base = this.base;
394
+ var state = base.initState();
395
+ var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
396
+ state.event = event;
397
+ var newValue = '';
398
+ this.suggested = '';
399
+ this.triggerOnChange(newValue, state);
400
+
401
+ if (this.$data.focusedItem !== undefined) {
402
+ state.data.focusedItem = undefined;
403
+ }
404
+
405
+ if (opened) {
406
+ this.togglePopup(state);
407
+ }
408
+
409
+ this.applyState(state);
410
+ },
411
+ onInputKeyDown: function onInputKeyDown(event) {
412
+ var keyCode = event.keyCode;
413
+ var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
414
+ var state = this.base.initState();
415
+ var value = this.computedValue();
416
+ state.event = event;
417
+
418
+ var preventDefault = function preventDefault() {
419
+ if (opened) {
420
+ event.preventDefault();
421
+ }
422
+ };
423
+
424
+ if (keyCode === Keys.enter || opened && keyCode === Keys.esc || event.altKey && keyCode === Keys.up) {
425
+ preventDefault();
426
+ this.applyInputValue(event.currentTarget.value, state, event.keyCode);
427
+ } else if (!event.altKey && (keyCode === Keys.up || keyCode === Keys.down)) {
428
+ preventDefault();
429
+ this.onNavigate(state, keyCode);
430
+ } else if (!opened && keyCode === Keys.esc) {
431
+ this.clearButtonClick(event);
432
+ } else if (!opened && value && event.altKey && keyCode === Keys.down) {
433
+ this.togglePopup(state);
434
+ this.applyState(state);
435
+ }
436
+ },
437
+ handleBlur: function handleBlur(event) {
438
+ if (this.currentFocused) {
439
+ var state = this.base.initState();
440
+ state.data.focused = false;
441
+ state.events.push({
442
+ type: 'blur'
443
+ });
444
+ state.event = event;
445
+ this.applyInputValue(event.currentTarget.value, state);
446
+ this.currentFocused = false;
447
+ }
448
+ },
449
+ triggerOnChange: function triggerOnChange(newValue, state, eventArgs) {
450
+ if (this.computedValue() === newValue && !eventArgs) {
451
+ return;
452
+ } // @ts-ignore
453
+
454
+
455
+ state.data.currentValue = newValue;
456
+ this.valueDuringOnChange = newValue;
457
+ state.events.push(__assign({
458
+ type: 'change'
459
+ }, eventArgs || {}));
460
+ },
461
+ applyState: function applyState(state) {
462
+ this.base.applyState(state);
463
+ this.valueDuringOnChange = undefined;
464
+ },
465
+ suggestValue: function suggestValue(value) {
466
+ this.suggested = '';
467
+
468
+ if (value) {
469
+ var _a = this.$props,
470
+ _b = _a.dataItems,
471
+ dataItems = _b === void 0 ? [] : _b,
472
+ textField = _a.textField;
473
+ var suggestedItem = dataItems[itemIndexStartsWith(dataItems, value, textField)];
474
+
475
+ if (suggestedItem) {
476
+ var suggestedText = getItemValue(suggestedItem, textField);
477
+
478
+ if (value.toLowerCase() !== suggestedText.toLowerCase()) {
479
+ this.suggested = suggestedText.substring(value.length);
480
+ }
481
+ }
482
+ }
483
+ },
484
+ focusedIndex: function focusedIndex(value) {
485
+ var _this = this;
486
+
487
+ var _a = this.$props,
488
+ _b = _a.dataItems,
489
+ dataItems = _b === void 0 ? [] : _b,
490
+ textField = _a.textField,
491
+ focusedItemIndex = _a.focusedItemIndex;
492
+ var inputValue = value !== undefined ? value : this.computedValue();
493
+ return this.$data.focusedItem !== undefined ? dataItems.findIndex(function (i) {
494
+ return areSame(i, _this.$data.focusedItem, textField);
495
+ }) : focusedItemIndex ? focusedItemIndex(dataItems, inputValue, textField) : Math.max(0, dataItems.indexOf(getFocusedItem(dataItems, inputValue, textField)));
496
+ }
497
+ },
498
+ render: function render(createElement) {
499
+ var _a;
500
+
501
+ var h = gh || createElement;
502
+ var _b = this.$props,
503
+ dir = _b.dir,
504
+ disabled = _b.disabled,
505
+ label = _b.label,
506
+ size = _b.size,
507
+ rounded = _b.rounded,
508
+ fillMode = _b.fillMode,
509
+ style = _b.style,
510
+ loading = _b.loading,
511
+ suggest = _b.suggest;
512
+ var isValid = !this.$props.validityStyles || this.validity().valid;
513
+ var focused = this.currentFocused;
514
+ var base = this.base;
515
+ var value = this.computedValue();
516
+ var clearButton = !loading && !!value;
517
+ var id = this.$props.id || this.inputId;
518
+ var popupSettings = Object.assign({}, {
519
+ animate: true,
520
+ height: '200px'
521
+ }, this.$props.popupSettings);
522
+
523
+ if (typeof suggest === 'string') {
524
+ this.suggested = suggest;
525
+ }
526
+
527
+ var renderSearchBar = function renderSearchBar(searchValue, searchId) {
528
+ var _this = this;
529
+
530
+ var _a = this.$props,
531
+ placeholder = _a.placeholder,
532
+ tabIndex = _a.tabIndex,
533
+ readonly = _a.readonly;
534
+ var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
535
+ return (// @ts-ignore function children
536
+ h(SearchBar, {
537
+ id: searchId,
538
+ attrs: this.v3 ? undefined : {
539
+ id: searchId,
540
+ placeholder: placeholder,
541
+ tabIndex: tabIndex || undefined,
542
+ accessKey: this.$props.accessKey,
543
+ value: searchValue,
544
+ suggestedText: this.suggested,
545
+ focused: focused,
546
+ name: this.$props.name,
547
+ disabled: disabled,
548
+ readOnly: readonly,
549
+ expanded: opened,
550
+ owns: base.listBoxId,
551
+ activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(),
552
+ ariaLabelledBy: this.$props.ariaLabelledBy,
553
+ ariaDescribedBy: this.$props.ariaDescribedBy
554
+ },
555
+ placeholder: placeholder,
556
+ tabIndex: tabIndex || undefined,
557
+ accessKey: this.$props.accessKey,
558
+ value: searchValue,
559
+ suggestedText: this.suggested,
560
+ focused: focused,
561
+ name: this.$props.name,
562
+ ref: this.v3 ? function (el) {
563
+ _this.inputRef = el;
564
+ } : 'input',
565
+ onKeydown: this.onInputKeyDown,
566
+ on: this.v3 ? undefined : {
567
+ "keydown": this.onInputKeyDown,
568
+ "change": this.onChangeHandler,
569
+ "focus": base.handleFocus,
570
+ "blur": this.handleBlur,
571
+ "clearbuttonclick": this.clearButtonClick
572
+ },
573
+ onChange: this.onChangeHandler,
574
+ onFocus: base.handleFocus,
575
+ onBlur: this.handleBlur,
576
+ disabled: disabled,
577
+ readOnly: readonly,
578
+ expanded: opened,
579
+ owns: base.listBoxId,
580
+ activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(),
581
+ onClearbuttonclick: this.clearButtonClick,
582
+ ariaLabelledBy: this.$props.ariaLabelledBy,
583
+ ariaDescribedBy: this.$props.ariaDescribedBy
584
+ })
585
+ );
586
+ };
587
+
588
+ var renderList = function renderList() {
589
+ var _a = this.$props,
590
+ textField = _a.textField,
591
+ _b = _a.dataItems,
592
+ dataItems = _b === void 0 ? [] : _b;
593
+ var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));
594
+ var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));
595
+ var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
596
+ return (// @ts-ignore
597
+ h(List, {
598
+ id: base.listBoxId,
599
+ attrs: this.v3 ? undefined : {
600
+ id: base.listBoxId,
601
+ show: opened,
602
+ dataItems: dataItems.slice(),
603
+ focusedIndex: this.focusedIndex(),
604
+ value: value,
605
+ textField: textField,
606
+ valueField: textField,
607
+ highlightSelected: false,
608
+ optionsGuid: base.guid,
609
+ wrapperStyle: {
610
+ maxHeight: popupSettings.height
611
+ },
612
+ wrapperCssClass: "k-list-content",
613
+ itemRender: itemRender,
614
+ noDataRender: listNoDataRender
615
+ },
616
+ show: opened,
617
+ dataItems: dataItems.slice(),
618
+ focusedIndex: this.focusedIndex(),
619
+ value: value,
620
+ textField: textField,
621
+ valueField: textField,
622
+ highlightSelected: false,
623
+ optionsGuid: base.guid,
624
+ ref: 'list',
625
+ wrapperStyle: {
626
+ maxHeight: popupSettings.height
627
+ },
628
+ wrapperCssClass: "k-list-content",
629
+ onListclick: this.handleItemClick,
630
+ on: this.v3 ? undefined : {
631
+ "listclick": this.handleItemClick
632
+ },
633
+ itemRender: itemRender,
634
+ noDataRender: listNoDataRender
635
+ })
636
+ );
637
+ };
638
+
639
+ var renderListContainer = function renderListContainer() {
640
+ var _this2 = this;
641
+
642
+ var _a;
643
+
644
+ var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));
645
+ var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));
646
+ var header = getTemplate.call(this, {
647
+ h: h,
648
+ template: headerTemplate
649
+ });
650
+ var footer = getTemplate.call(this, {
651
+ h: h,
652
+ template: footerTemplate
653
+ });
654
+ var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
655
+ var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
656
+ return (// @ts-ignore function children
657
+ h(ListContainer, {
658
+ onMousedown: function onMousedown(e) {
659
+ return e.preventDefault();
660
+ },
661
+ on: this.v3 ? undefined : {
662
+ "mousedown": function onMousedown(e) {
663
+ return e.preventDefault();
664
+ }
665
+ },
666
+ width: popupWidth,
667
+ attrs: this.v3 ? undefined : {
668
+ width: popupWidth,
669
+ popupSettings: {
670
+ animate: popupSettings.animate,
671
+ anchor: this.anchor,
672
+ show: opened,
673
+ popupClass: classNames(popupSettings.popupClass, 'k-list', (_a = {}, _a["k-list-".concat(sizeMap[size] || size)] = size, _a)),
674
+ className: popupSettings.className,
675
+ appendTo: popupSettings.appendTo
676
+ },
677
+ dir: dir !== undefined ? dir : this.base.dirCalculated
678
+ },
679
+ ref: 'container',
680
+ popupSettings: {
681
+ animate: popupSettings.animate,
682
+ anchor: this.anchor,
683
+ show: opened,
684
+ popupClass: classNames(popupSettings.popupClass, 'k-list', (_a = {}, _a["k-list-".concat(sizeMap[size] || size)] = size, _a)),
685
+ className: popupSettings.className,
686
+ appendTo: popupSettings.appendTo
687
+ },
688
+ dir: dir !== undefined ? dir : this.base.dirCalculated
689
+ }, this.v3 ? function () {
690
+ return [header && h("div", {
691
+ "class": "k-list-header"
692
+ }, [header]), renderList.call(_this2), footer && h("div", {
693
+ "class": "k-list-footer"
694
+ }, [footer])];
695
+ } : [header && h("div", {
696
+ "class": "k-list-header"
697
+ }, [header]), renderList.call(_this2), footer && h("div", {
698
+ "class": "k-list-footer"
699
+ }, [footer])])
700
+ );
701
+ };
702
+
703
+ var renderClearButton = function renderClearButton(cbutton) {
704
+ if (cbutton) {
705
+ // @ts-ignore function children
706
+ return h(ClearButton, {
707
+ onClearclick: this.clearButtonClick,
708
+ on: this.v3 ? undefined : {
709
+ "clearclick": this.clearButtonClick
710
+ },
711
+ key: "clearbutton"
712
+ });
713
+ }
714
+
715
+ return h("span");
716
+ };
717
+
718
+ var renderLoading = function renderLoading(cloading) {
719
+ if (cloading) {
720
+ return h("span", {
721
+ "class": "k-icon k-input-loading-icon k-i-loading"
722
+ });
723
+ }
724
+
725
+ return h("span");
726
+ };
727
+
728
+ var autoComplete = h("span", {
729
+ "class": classNames('k-autocomplete k-input', (_a = {}, _a["k-input-".concat(sizeMap[size] || size)] = size, _a["k-rounded-".concat(roundedMap[rounded] || rounded)] = rounded, _a["k-input-".concat(fillMode)] = fillMode, _a['k-invalid'] = !isValid, _a['k-focus'] = focused && !disabled, _a['k-loading'] = loading, _a['k-required'] = this.required, _a['k-disabled'] = disabled, _a)),
730
+ ref: setRef(this, 'kendoAnchor', this.anchor),
731
+ style: !label ? style : __assign(__assign({}, style), {
732
+ width: undefined
733
+ }),
734
+ dir: dir,
735
+ attrs: this.v3 ? undefined : {
736
+ dir: dir
737
+ }
738
+ }, [renderSearchBar.call(this, value || '', id), renderClearButton.call(this, clearButton), renderLoading.call(this, loading), renderListContainer.call(this)]);
739
+ return label ? h("span", {
740
+ "class": this.spanClassNames,
741
+ dir: this.$props.dir,
742
+ attrs: this.v3 ? undefined : {
743
+ dir: this.$props.dir
744
+ }
745
+ }, [autoComplete, this.$props.label ? id ? h("label", {
746
+ "for": id,
747
+ attrs: this.v3 ? undefined : {
748
+ "for": id
749
+ },
750
+ "class": "k-label"
751
+ }, [this.$props.label]) : h("span", {
752
+ "class": "k-label"
753
+ }, [this.$props.label]) : null]) : autoComplete;
754
+ }
755
+ };
756
+ /**
757
+ * @hidden
758
+ */
759
+
760
+ var AutoComplete = AutoCompleteVue2;
761
+ export { AutoComplete, AutoCompleteVue2 };