@progress/kendo-vue-dropdowns 3.9.4-dev.202304190945 → 3.9.4-dev.202304210655

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.
@@ -269,10 +269,12 @@ var ComboBoxVue2 = {
269
269
  this.base.scrollToVirtualItem(virtual, selectedItemIndex);
270
270
  this.prevCurrentOpened = true;
271
271
  } else if (opening && !virtual) {
272
- this.base.scrollToItem(selectedItemIndex);
272
+ this.base.scrollToItem(selectedItem ? selectedItemIndex : this.getFocusedIndex());
273
273
  this.prevCurrentOpened = true;
274
274
  } else if (opened && prevOpened && selectedItem && selectedItemChanged) {
275
275
  this.base.scrollToItem(selectedItemIndex);
276
+ } else if (opened && !selectedItem) {
277
+ this.base.scrollToItem(this.getFocusedIndex());
276
278
  }
277
279
  }
278
280
  if (opening && this.input) {
@@ -135,7 +135,7 @@ export interface DropDownTreeProps extends FormComponentProps {
135
135
  filterable?: boolean;
136
136
  /**
137
137
  * Sets the value of filtering input.
138
- * Useful for making the filtering input a [controlled component](https://reactjs.org/docs/forms.html#controlled-components).
138
+ * Useful for making the filtering input a controlled component.
139
139
  */
140
140
  filter?: string;
141
141
  /**
@@ -172,7 +172,7 @@ export interface DropDownTreeProps extends FormComponentProps {
172
172
  */
173
173
  popupSettings?: DropDownsPopupSettings;
174
174
  /**
175
- * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden [`select`](https://reactjs.org/docs/forms.html#the-select-tag) element.
175
+ * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden `select`.
176
176
  *
177
177
  * @example
178
178
  * ```jsx-no-run
@@ -357,7 +357,7 @@ var MultiSelectTreeVue2 = {
357
357
  return matchTags(t, _this.focusedTagState, dataItemKey);
358
358
  }) : undefined,
359
359
  size: size
360
- }) : !this.hasValue && placeholder]), !this.hasValue && h("span", {
360
+ }) : !this.hasValue && h("span", {
361
361
  "class": "k-input-inner",
362
362
  role: 'combobox',
363
363
  attrs: this.v3 ? undefined : {
@@ -373,7 +373,7 @@ var MultiSelectTreeVue2 = {
373
373
  "aria-label": this.$props.ariaLabelledBy
374
374
  }, [h("span", {
375
375
  "class": "k-input-value-text"
376
- }, ["\xA0"])]), this.$props.loading && h(Icon, {
376
+ }, [placeholder])])]), this.$props.loading && h(Icon, {
377
377
  "class": "k-input-loading-icon",
378
378
  name: "loading",
379
379
  attrs: this.v3 ? undefined : {
@@ -453,12 +453,16 @@ var MultiSelectTreeVue2 = {
453
453
  onChange: _this2.onFilterChange,
454
454
  on: _this2.v3 ? undefined : {
455
455
  "change": _this2.onFilterChange,
456
- "keydown": _this2.onInputKeyDown
456
+ "keydown": _this2.onInputKeyDown,
457
+ "focus": _this2.onFocus,
458
+ "blur": _this2.onBlur
457
459
  },
458
460
  onKeydown: _this2.onInputKeyDown,
459
461
  size: size,
460
462
  rounded: rounded,
461
- fillMode: fillMode
463
+ fillMode: fillMode,
464
+ onFocus: _this2.onFocus,
465
+ onBlur: _this2.onBlur
462
466
  }), header && h("div", {
463
467
  "class": "k-list-header"
464
468
  }, [header]), dataItems.length > 0 ?
@@ -493,11 +497,13 @@ var MultiSelectTreeVue2 = {
493
497
  "itemclick": _this2.onChange,
494
498
  "checkchange": _this2.onChange,
495
499
  "expandchange": _this2.onExpand,
500
+ "focus": _this2.onFocus,
496
501
  "blur": _this2.onBlur,
497
502
  "keydown": _this2.onWrapperKeyDown
498
503
  },
499
504
  onCheckchange: _this2.onChange,
500
505
  onExpandchange: _this2.onExpand,
506
+ onFocus: _this2.onFocus,
501
507
  onBlur: _this2.onBlur,
502
508
  onKeydown: _this2.onWrapperKeyDown,
503
509
  checkboxes: true,
@@ -518,12 +524,16 @@ var MultiSelectTreeVue2 = {
518
524
  onChange: _this2.onFilterChange,
519
525
  on: _this2.v3 ? undefined : {
520
526
  "change": _this2.onFilterChange,
521
- "keydown": _this2.onInputKeyDown
527
+ "keydown": _this2.onInputKeyDown,
528
+ "focus": _this2.onFocus,
529
+ "blur": _this2.onBlur
522
530
  },
523
531
  onKeydown: _this2.onInputKeyDown,
524
532
  size: size,
525
533
  rounded: rounded,
526
- fillMode: fillMode
534
+ fillMode: fillMode,
535
+ onFocus: _this2.onFocus,
536
+ onBlur: _this2.onBlur
527
537
  }), header && h("div", {
528
538
  "class": "k-list-header"
529
539
  }, [header]), dataItems.length > 0 ? h(TreeView, {
@@ -556,11 +566,13 @@ var MultiSelectTreeVue2 = {
556
566
  "itemclick": _this2.onChange,
557
567
  "checkchange": _this2.onChange,
558
568
  "expandchange": _this2.onExpand,
569
+ "focus": _this2.onFocus,
559
570
  "blur": _this2.onBlur,
560
571
  "keydown": _this2.onWrapperKeyDown
561
572
  },
562
573
  onCheckchange: _this2.onChange,
563
574
  onExpandchange: _this2.onExpand,
575
+ onFocus: _this2.onFocus,
564
576
  onBlur: _this2.onBlur,
565
577
  onKeydown: _this2.onWrapperKeyDown,
566
578
  checkboxes: true,
@@ -701,6 +713,7 @@ var MultiSelectTreeVue2 = {
701
713
  },
702
714
  onBlur: function onBlur(event) {
703
715
  if (this.focusedState && !this.skipFocusRef) {
716
+ this.focusedTagState = undefined;
704
717
  this.focusedState = false;
705
718
  var ev = {
706
719
  event: event,
@@ -744,7 +757,7 @@ var MultiSelectTreeVue2 = {
744
757
  event: event,
745
758
  target: this
746
759
  };
747
- if (this.value && this.value.length > 0 && (keyCode === Keys.left || keyCode === Keys.right || keyCode === Keys.home || keyCode === Keys.end || keyCode === Keys.delete)) {
760
+ if (this.value && this.value.length > 0 && (keyCode === Keys.left || keyCode === Keys.right || keyCode === Keys.home || keyCode === Keys.end || keyCode === Keys.delete || keyCode === Keys.backspace)) {
748
761
  var tagsToRender = this.tagsToRenderRef;
749
762
  var focusedIndex = this.focusedTagState ? tagsToRender.findIndex(function (t) {
750
763
  return matchTags(t, _this.focusedTagState, _this.dataItemKey);
@@ -769,7 +782,7 @@ var MultiSelectTreeVue2 = {
769
782
  newFocusedTag = tagsToRender[0];
770
783
  } else if (keyCode === Keys.end) {
771
784
  newFocusedTag = tagsToRender[tagsToRender.length - 1];
772
- } else if (keyCode === Keys.delete) {
785
+ } else if (keyCode === Keys.delete || keyCode === Keys.backspace) {
773
786
  if (hasFocused) {
774
787
  this.changeValue(ev, tagsToRender[focusedIndex].data, 'delete');
775
788
  }
@@ -781,6 +794,9 @@ var MultiSelectTreeVue2 = {
781
794
  if (this.isOpen) {
782
795
  if (keyCode === Keys.esc || altKey && keyCode === Keys.up) {
783
796
  event.preventDefault();
797
+ this.switchFocus(function () {
798
+ _this.focusElement(_this.elementRef);
799
+ });
784
800
  this.closePopup(ev);
785
801
  } else if (treeviewElement && treeviewElement.querySelector('.k-focus') && (keyCode === Keys.up || keyCode === Keys.down || keyCode === Keys.left || keyCode === Keys.right || keyCode === Keys.home || keyCode === Keys.end)) {
786
802
  if (keyCode === Keys.up) {
@@ -816,7 +832,7 @@ var MultiSelectTreeVue2 = {
816
832
  }
817
833
  event.preventDefault();
818
834
  this.switchFocus(keyCode === Keys.up ? function () {
819
- _this.focusElement(_this.$el);
835
+ _this.focusElement(_this.elementRef);
820
836
  } : function () {
821
837
  _this.focusElement(_this.treeViewRef && _this.treeViewRef.$el);
822
838
  });
@@ -161,7 +161,7 @@ export interface MultiSelectTreeProps extends FormComponentProps {
161
161
  filterable?: boolean;
162
162
  /**
163
163
  * Sets the value of filtering input.
164
- * Useful for making the filtering input a [controlled component](https://reactjs.org/docs/forms.html#controlled-components).
164
+ * Useful for making the filtering input a controlled component.
165
165
  */
166
166
  filter?: string;
167
167
  /**
@@ -202,7 +202,7 @@ export interface MultiSelectTreeProps extends FormComponentProps {
202
202
  */
203
203
  popupSettings?: DropDownsPopupSettings;
204
204
  /**
205
- * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden [`select`](https://reactjs.org/docs/forms.html#the-select-tag) element.
205
+ * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden `select` element.
206
206
  *
207
207
  * @example
208
208
  * ```jsx-no-run
@@ -16,7 +16,9 @@ var ListFilterVue2 = {
16
16
  // @ts-ignore
17
17
  emits: {
18
18
  keydown: null,
19
- change: null
19
+ change: null,
20
+ focus: null,
21
+ blur: null
20
22
  },
21
23
  props: {
22
24
  value: String,
@@ -69,6 +71,12 @@ var ListFilterVue2 = {
69
71
  },
70
72
  onChange: function onChange(e) {
71
73
  this.$emit('change', e);
74
+ },
75
+ handleFocus: function handleFocus(e) {
76
+ this.$emit('focus', e);
77
+ },
78
+ handleBlur: function handleBlur(e) {
79
+ this.$emit('blur', e);
72
80
  }
73
81
  },
74
82
  mounted: function mounted() {
@@ -103,9 +111,13 @@ var ListFilterVue2 = {
103
111
  onInput: this.onChange,
104
112
  on: this.v3 ? undefined : {
105
113
  "input": this.onChange,
106
- "keydown": this.onKeyDown
114
+ "keydown": this.onKeyDown,
115
+ "focusin": this.handleFocus,
116
+ "focusout": this.handleBlur
107
117
  },
108
- onKeydown: this.onKeyDown
118
+ onKeydown: this.onKeyDown,
119
+ onFocusin: this.handleFocus,
120
+ onFocusout: this.handleBlur
109
121
  })])]);
110
122
  }
111
123
  };
@@ -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: 1681896936,
8
+ publishDate: 1682059133,
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
  };
@@ -269,10 +269,12 @@ var ComboBoxVue2 = {
269
269
  this.base.scrollToVirtualItem(virtual, selectedItemIndex);
270
270
  this.prevCurrentOpened = true;
271
271
  } else if (opening && !virtual) {
272
- this.base.scrollToItem(selectedItemIndex);
272
+ this.base.scrollToItem(selectedItem ? selectedItemIndex : this.getFocusedIndex());
273
273
  this.prevCurrentOpened = true;
274
274
  } else if (opened && prevOpened && selectedItem && selectedItemChanged) {
275
275
  this.base.scrollToItem(selectedItemIndex);
276
+ } else if (opened && !selectedItem) {
277
+ this.base.scrollToItem(this.getFocusedIndex());
276
278
  }
277
279
  }
278
280
  if (opening && this.input) {
@@ -135,7 +135,7 @@ export interface DropDownTreeProps extends FormComponentProps {
135
135
  filterable?: boolean;
136
136
  /**
137
137
  * Sets the value of filtering input.
138
- * Useful for making the filtering input a [controlled component](https://reactjs.org/docs/forms.html#controlled-components).
138
+ * Useful for making the filtering input a controlled component.
139
139
  */
140
140
  filter?: string;
141
141
  /**
@@ -172,7 +172,7 @@ export interface DropDownTreeProps extends FormComponentProps {
172
172
  */
173
173
  popupSettings?: DropDownsPopupSettings;
174
174
  /**
175
- * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden [`select`](https://reactjs.org/docs/forms.html#the-select-tag) element.
175
+ * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden `select`.
176
176
  *
177
177
  * @example
178
178
  * ```jsx-no-run
@@ -357,7 +357,7 @@ var MultiSelectTreeVue2 = {
357
357
  return matchTags(t, _this.focusedTagState, dataItemKey);
358
358
  }) : undefined,
359
359
  size: size
360
- }) : !this.hasValue && placeholder]), !this.hasValue && h("span", {
360
+ }) : !this.hasValue && h("span", {
361
361
  "class": "k-input-inner",
362
362
  role: 'combobox',
363
363
  attrs: this.v3 ? undefined : {
@@ -373,7 +373,7 @@ var MultiSelectTreeVue2 = {
373
373
  "aria-label": this.$props.ariaLabelledBy
374
374
  }, [h("span", {
375
375
  "class": "k-input-value-text"
376
- }, ["\xA0"])]), this.$props.loading && h(Icon, {
376
+ }, [placeholder])])]), this.$props.loading && h(Icon, {
377
377
  "class": "k-input-loading-icon",
378
378
  name: "loading",
379
379
  attrs: this.v3 ? undefined : {
@@ -453,12 +453,16 @@ var MultiSelectTreeVue2 = {
453
453
  onChange: _this2.onFilterChange,
454
454
  on: _this2.v3 ? undefined : {
455
455
  "change": _this2.onFilterChange,
456
- "keydown": _this2.onInputKeyDown
456
+ "keydown": _this2.onInputKeyDown,
457
+ "focus": _this2.onFocus,
458
+ "blur": _this2.onBlur
457
459
  },
458
460
  onKeydown: _this2.onInputKeyDown,
459
461
  size: size,
460
462
  rounded: rounded,
461
- fillMode: fillMode
463
+ fillMode: fillMode,
464
+ onFocus: _this2.onFocus,
465
+ onBlur: _this2.onBlur
462
466
  }), header && h("div", {
463
467
  "class": "k-list-header"
464
468
  }, [header]), dataItems.length > 0 ?
@@ -493,11 +497,13 @@ var MultiSelectTreeVue2 = {
493
497
  "itemclick": _this2.onChange,
494
498
  "checkchange": _this2.onChange,
495
499
  "expandchange": _this2.onExpand,
500
+ "focus": _this2.onFocus,
496
501
  "blur": _this2.onBlur,
497
502
  "keydown": _this2.onWrapperKeyDown
498
503
  },
499
504
  onCheckchange: _this2.onChange,
500
505
  onExpandchange: _this2.onExpand,
506
+ onFocus: _this2.onFocus,
501
507
  onBlur: _this2.onBlur,
502
508
  onKeydown: _this2.onWrapperKeyDown,
503
509
  checkboxes: true,
@@ -518,12 +524,16 @@ var MultiSelectTreeVue2 = {
518
524
  onChange: _this2.onFilterChange,
519
525
  on: _this2.v3 ? undefined : {
520
526
  "change": _this2.onFilterChange,
521
- "keydown": _this2.onInputKeyDown
527
+ "keydown": _this2.onInputKeyDown,
528
+ "focus": _this2.onFocus,
529
+ "blur": _this2.onBlur
522
530
  },
523
531
  onKeydown: _this2.onInputKeyDown,
524
532
  size: size,
525
533
  rounded: rounded,
526
- fillMode: fillMode
534
+ fillMode: fillMode,
535
+ onFocus: _this2.onFocus,
536
+ onBlur: _this2.onBlur
527
537
  }), header && h("div", {
528
538
  "class": "k-list-header"
529
539
  }, [header]), dataItems.length > 0 ? h(TreeView, {
@@ -556,11 +566,13 @@ var MultiSelectTreeVue2 = {
556
566
  "itemclick": _this2.onChange,
557
567
  "checkchange": _this2.onChange,
558
568
  "expandchange": _this2.onExpand,
569
+ "focus": _this2.onFocus,
559
570
  "blur": _this2.onBlur,
560
571
  "keydown": _this2.onWrapperKeyDown
561
572
  },
562
573
  onCheckchange: _this2.onChange,
563
574
  onExpandchange: _this2.onExpand,
575
+ onFocus: _this2.onFocus,
564
576
  onBlur: _this2.onBlur,
565
577
  onKeydown: _this2.onWrapperKeyDown,
566
578
  checkboxes: true,
@@ -701,6 +713,7 @@ var MultiSelectTreeVue2 = {
701
713
  },
702
714
  onBlur: function onBlur(event) {
703
715
  if (this.focusedState && !this.skipFocusRef) {
716
+ this.focusedTagState = undefined;
704
717
  this.focusedState = false;
705
718
  var ev = {
706
719
  event: event,
@@ -744,7 +757,7 @@ var MultiSelectTreeVue2 = {
744
757
  event: event,
745
758
  target: this
746
759
  };
747
- if (this.value && this.value.length > 0 && (keyCode === Keys.left || keyCode === Keys.right || keyCode === Keys.home || keyCode === Keys.end || keyCode === Keys.delete)) {
760
+ if (this.value && this.value.length > 0 && (keyCode === Keys.left || keyCode === Keys.right || keyCode === Keys.home || keyCode === Keys.end || keyCode === Keys.delete || keyCode === Keys.backspace)) {
748
761
  var tagsToRender = this.tagsToRenderRef;
749
762
  var focusedIndex = this.focusedTagState ? tagsToRender.findIndex(function (t) {
750
763
  return matchTags(t, _this.focusedTagState, _this.dataItemKey);
@@ -769,7 +782,7 @@ var MultiSelectTreeVue2 = {
769
782
  newFocusedTag = tagsToRender[0];
770
783
  } else if (keyCode === Keys.end) {
771
784
  newFocusedTag = tagsToRender[tagsToRender.length - 1];
772
- } else if (keyCode === Keys.delete) {
785
+ } else if (keyCode === Keys.delete || keyCode === Keys.backspace) {
773
786
  if (hasFocused) {
774
787
  this.changeValue(ev, tagsToRender[focusedIndex].data, 'delete');
775
788
  }
@@ -781,6 +794,9 @@ var MultiSelectTreeVue2 = {
781
794
  if (this.isOpen) {
782
795
  if (keyCode === Keys.esc || altKey && keyCode === Keys.up) {
783
796
  event.preventDefault();
797
+ this.switchFocus(function () {
798
+ _this.focusElement(_this.elementRef);
799
+ });
784
800
  this.closePopup(ev);
785
801
  } else if (treeviewElement && treeviewElement.querySelector('.k-focus') && (keyCode === Keys.up || keyCode === Keys.down || keyCode === Keys.left || keyCode === Keys.right || keyCode === Keys.home || keyCode === Keys.end)) {
786
802
  if (keyCode === Keys.up) {
@@ -816,7 +832,7 @@ var MultiSelectTreeVue2 = {
816
832
  }
817
833
  event.preventDefault();
818
834
  this.switchFocus(keyCode === Keys.up ? function () {
819
- _this.focusElement(_this.$el);
835
+ _this.focusElement(_this.elementRef);
820
836
  } : function () {
821
837
  _this.focusElement(_this.treeViewRef && _this.treeViewRef.$el);
822
838
  });
@@ -161,7 +161,7 @@ export interface MultiSelectTreeProps extends FormComponentProps {
161
161
  filterable?: boolean;
162
162
  /**
163
163
  * Sets the value of filtering input.
164
- * Useful for making the filtering input a [controlled component](https://reactjs.org/docs/forms.html#controlled-components).
164
+ * Useful for making the filtering input a controlled component.
165
165
  */
166
166
  filter?: string;
167
167
  /**
@@ -202,7 +202,7 @@ export interface MultiSelectTreeProps extends FormComponentProps {
202
202
  */
203
203
  popupSettings?: DropDownsPopupSettings;
204
204
  /**
205
- * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden [`select`](https://reactjs.org/docs/forms.html#the-select-tag) element.
205
+ * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden `select` element.
206
206
  *
207
207
  * @example
208
208
  * ```jsx-no-run
@@ -16,7 +16,9 @@ var ListFilterVue2 = {
16
16
  // @ts-ignore
17
17
  emits: {
18
18
  keydown: null,
19
- change: null
19
+ change: null,
20
+ focus: null,
21
+ blur: null
20
22
  },
21
23
  props: {
22
24
  value: String,
@@ -69,6 +71,12 @@ var ListFilterVue2 = {
69
71
  },
70
72
  onChange: function onChange(e) {
71
73
  this.$emit('change', e);
74
+ },
75
+ handleFocus: function handleFocus(e) {
76
+ this.$emit('focus', e);
77
+ },
78
+ handleBlur: function handleBlur(e) {
79
+ this.$emit('blur', e);
72
80
  }
73
81
  },
74
82
  mounted: function mounted() {
@@ -103,9 +111,13 @@ var ListFilterVue2 = {
103
111
  onInput: this.onChange,
104
112
  on: this.v3 ? undefined : {
105
113
  "input": this.onChange,
106
- "keydown": this.onKeyDown
114
+ "keydown": this.onKeyDown,
115
+ "focusin": this.handleFocus,
116
+ "focusout": this.handleBlur
107
117
  },
108
- onKeydown: this.onKeyDown
118
+ onKeydown: this.onKeyDown,
119
+ onFocusin: this.handleFocus,
120
+ onFocusout: this.handleBlur
109
121
  })])]);
110
122
  }
111
123
  };
@@ -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: 1681896936,
8
+ publishDate: 1682059133,
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
  };
@@ -275,10 +275,12 @@ var ComboBoxVue2 = {
275
275
  this.base.scrollToVirtualItem(virtual, selectedItemIndex);
276
276
  this.prevCurrentOpened = true;
277
277
  } else if (opening && !virtual) {
278
- this.base.scrollToItem(selectedItemIndex);
278
+ this.base.scrollToItem(selectedItem ? selectedItemIndex : this.getFocusedIndex());
279
279
  this.prevCurrentOpened = true;
280
280
  } else if (opened && prevOpened && selectedItem && selectedItemChanged) {
281
281
  this.base.scrollToItem(selectedItemIndex);
282
+ } else if (opened && !selectedItem) {
283
+ this.base.scrollToItem(this.getFocusedIndex());
282
284
  }
283
285
  }
284
286
  if (opening && this.input) {
@@ -135,7 +135,7 @@ export interface DropDownTreeProps extends FormComponentProps {
135
135
  filterable?: boolean;
136
136
  /**
137
137
  * Sets the value of filtering input.
138
- * Useful for making the filtering input a [controlled component](https://reactjs.org/docs/forms.html#controlled-components).
138
+ * Useful for making the filtering input a controlled component.
139
139
  */
140
140
  filter?: string;
141
141
  /**
@@ -172,7 +172,7 @@ export interface DropDownTreeProps extends FormComponentProps {
172
172
  */
173
173
  popupSettings?: DropDownsPopupSettings;
174
174
  /**
175
- * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden [`select`](https://reactjs.org/docs/forms.html#the-select-tag) element.
175
+ * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden `select`.
176
176
  *
177
177
  * @example
178
178
  * ```jsx-no-run
@@ -363,7 +363,7 @@ var MultiSelectTreeVue2 = {
363
363
  return (0, utils_1.matchTags)(t, _this.focusedTagState, dataItemKey);
364
364
  }) : undefined,
365
365
  size: size
366
- }) : !this.hasValue && placeholder]), !this.hasValue && h("span", {
366
+ }) : !this.hasValue && h("span", {
367
367
  "class": "k-input-inner",
368
368
  role: 'combobox',
369
369
  attrs: this.v3 ? undefined : {
@@ -379,7 +379,7 @@ var MultiSelectTreeVue2 = {
379
379
  "aria-label": this.$props.ariaLabelledBy
380
380
  }, [h("span", {
381
381
  "class": "k-input-value-text"
382
- }, ["\xA0"])]), this.$props.loading && h(kendo_vue_common_1.Icon, {
382
+ }, [placeholder])])]), this.$props.loading && h(kendo_vue_common_1.Icon, {
383
383
  "class": "k-input-loading-icon",
384
384
  name: "loading",
385
385
  attrs: this.v3 ? undefined : {
@@ -459,12 +459,16 @@ var MultiSelectTreeVue2 = {
459
459
  onChange: _this2.onFilterChange,
460
460
  on: _this2.v3 ? undefined : {
461
461
  "change": _this2.onFilterChange,
462
- "keydown": _this2.onInputKeyDown
462
+ "keydown": _this2.onInputKeyDown,
463
+ "focus": _this2.onFocus,
464
+ "blur": _this2.onBlur
463
465
  },
464
466
  onKeydown: _this2.onInputKeyDown,
465
467
  size: size,
466
468
  rounded: rounded,
467
- fillMode: fillMode
469
+ fillMode: fillMode,
470
+ onFocus: _this2.onFocus,
471
+ onBlur: _this2.onBlur
468
472
  }), header && h("div", {
469
473
  "class": "k-list-header"
470
474
  }, [header]), dataItems.length > 0 ?
@@ -499,11 +503,13 @@ var MultiSelectTreeVue2 = {
499
503
  "itemclick": _this2.onChange,
500
504
  "checkchange": _this2.onChange,
501
505
  "expandchange": _this2.onExpand,
506
+ "focus": _this2.onFocus,
502
507
  "blur": _this2.onBlur,
503
508
  "keydown": _this2.onWrapperKeyDown
504
509
  },
505
510
  onCheckchange: _this2.onChange,
506
511
  onExpandchange: _this2.onExpand,
512
+ onFocus: _this2.onFocus,
507
513
  onBlur: _this2.onBlur,
508
514
  onKeydown: _this2.onWrapperKeyDown,
509
515
  checkboxes: true,
@@ -524,12 +530,16 @@ var MultiSelectTreeVue2 = {
524
530
  onChange: _this2.onFilterChange,
525
531
  on: _this2.v3 ? undefined : {
526
532
  "change": _this2.onFilterChange,
527
- "keydown": _this2.onInputKeyDown
533
+ "keydown": _this2.onInputKeyDown,
534
+ "focus": _this2.onFocus,
535
+ "blur": _this2.onBlur
528
536
  },
529
537
  onKeydown: _this2.onInputKeyDown,
530
538
  size: size,
531
539
  rounded: rounded,
532
- fillMode: fillMode
540
+ fillMode: fillMode,
541
+ onFocus: _this2.onFocus,
542
+ onBlur: _this2.onBlur
533
543
  }), header && h("div", {
534
544
  "class": "k-list-header"
535
545
  }, [header]), dataItems.length > 0 ? h(kendo_vue_treeview_1.TreeView, {
@@ -562,11 +572,13 @@ var MultiSelectTreeVue2 = {
562
572
  "itemclick": _this2.onChange,
563
573
  "checkchange": _this2.onChange,
564
574
  "expandchange": _this2.onExpand,
575
+ "focus": _this2.onFocus,
565
576
  "blur": _this2.onBlur,
566
577
  "keydown": _this2.onWrapperKeyDown
567
578
  },
568
579
  onCheckchange: _this2.onChange,
569
580
  onExpandchange: _this2.onExpand,
581
+ onFocus: _this2.onFocus,
570
582
  onBlur: _this2.onBlur,
571
583
  onKeydown: _this2.onWrapperKeyDown,
572
584
  checkboxes: true,
@@ -707,6 +719,7 @@ var MultiSelectTreeVue2 = {
707
719
  },
708
720
  onBlur: function onBlur(event) {
709
721
  if (this.focusedState && !this.skipFocusRef) {
722
+ this.focusedTagState = undefined;
710
723
  this.focusedState = false;
711
724
  var ev = {
712
725
  event: event,
@@ -750,7 +763,7 @@ var MultiSelectTreeVue2 = {
750
763
  event: event,
751
764
  target: this
752
765
  };
753
- if (this.value && this.value.length > 0 && (keyCode === kendo_vue_common_1.Keys.left || keyCode === kendo_vue_common_1.Keys.right || keyCode === kendo_vue_common_1.Keys.home || keyCode === kendo_vue_common_1.Keys.end || keyCode === kendo_vue_common_1.Keys.delete)) {
766
+ if (this.value && this.value.length > 0 && (keyCode === kendo_vue_common_1.Keys.left || keyCode === kendo_vue_common_1.Keys.right || keyCode === kendo_vue_common_1.Keys.home || keyCode === kendo_vue_common_1.Keys.end || keyCode === kendo_vue_common_1.Keys.delete || keyCode === kendo_vue_common_1.Keys.backspace)) {
754
767
  var tagsToRender = this.tagsToRenderRef;
755
768
  var focusedIndex = this.focusedTagState ? tagsToRender.findIndex(function (t) {
756
769
  return (0, utils_1.matchTags)(t, _this.focusedTagState, _this.dataItemKey);
@@ -775,7 +788,7 @@ var MultiSelectTreeVue2 = {
775
788
  newFocusedTag = tagsToRender[0];
776
789
  } else if (keyCode === kendo_vue_common_1.Keys.end) {
777
790
  newFocusedTag = tagsToRender[tagsToRender.length - 1];
778
- } else if (keyCode === kendo_vue_common_1.Keys.delete) {
791
+ } else if (keyCode === kendo_vue_common_1.Keys.delete || keyCode === kendo_vue_common_1.Keys.backspace) {
779
792
  if (hasFocused) {
780
793
  this.changeValue(ev, tagsToRender[focusedIndex].data, 'delete');
781
794
  }
@@ -787,6 +800,9 @@ var MultiSelectTreeVue2 = {
787
800
  if (this.isOpen) {
788
801
  if (keyCode === kendo_vue_common_1.Keys.esc || altKey && keyCode === kendo_vue_common_1.Keys.up) {
789
802
  event.preventDefault();
803
+ this.switchFocus(function () {
804
+ _this.focusElement(_this.elementRef);
805
+ });
790
806
  this.closePopup(ev);
791
807
  } else if (treeviewElement && treeviewElement.querySelector('.k-focus') && (keyCode === kendo_vue_common_1.Keys.up || keyCode === kendo_vue_common_1.Keys.down || keyCode === kendo_vue_common_1.Keys.left || keyCode === kendo_vue_common_1.Keys.right || keyCode === kendo_vue_common_1.Keys.home || keyCode === kendo_vue_common_1.Keys.end)) {
792
808
  if (keyCode === kendo_vue_common_1.Keys.up) {
@@ -822,7 +838,7 @@ var MultiSelectTreeVue2 = {
822
838
  }
823
839
  event.preventDefault();
824
840
  this.switchFocus(keyCode === kendo_vue_common_1.Keys.up ? function () {
825
- _this.focusElement(_this.$el);
841
+ _this.focusElement(_this.elementRef);
826
842
  } : function () {
827
843
  _this.focusElement(_this.treeViewRef && _this.treeViewRef.$el);
828
844
  });
@@ -161,7 +161,7 @@ export interface MultiSelectTreeProps extends FormComponentProps {
161
161
  filterable?: boolean;
162
162
  /**
163
163
  * Sets the value of filtering input.
164
- * Useful for making the filtering input a [controlled component](https://reactjs.org/docs/forms.html#controlled-components).
164
+ * Useful for making the filtering input a controlled component.
165
165
  */
166
166
  filter?: string;
167
167
  /**
@@ -202,7 +202,7 @@ export interface MultiSelectTreeProps extends FormComponentProps {
202
202
  */
203
203
  popupSettings?: DropDownsPopupSettings;
204
204
  /**
205
- * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden [`select`](https://reactjs.org/docs/forms.html#the-select-tag) element.
205
+ * Represents a callback function, which returns the value for submitting. The returned value will be rendered in an `option` of a hidden `select` element.
206
206
  *
207
207
  * @example
208
208
  * ```jsx-no-run