@progress/kendo-vue-dropdowns 3.14.2 → 3.15.0-dev.202309281301

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 (62) hide show
  1. package/dist/cdn/js/kendo-vue-dropdowns.js +1 -1
  2. package/dist/es/ComboBox/ComboBox.js +244 -42
  3. package/dist/es/ComboBox/ComboBoxProps.d.ts +8 -0
  4. package/dist/es/DropDownList/DropDownList.d.ts +3 -0
  5. package/dist/es/DropDownList/DropDownList.js +197 -43
  6. package/dist/es/DropDownList/DropDownListProps.d.ts +8 -0
  7. package/dist/es/DropDownTree/DropDownTree.js +257 -105
  8. package/dist/es/DropDownTree/DropDownTreeProps.d.ts +8 -0
  9. package/dist/es/MultiSelect/MultiSelect.js +340 -65
  10. package/dist/es/MultiSelect/MultiSelectProps.d.ts +8 -0
  11. package/dist/es/MultiSelectTree/MultiSelectTree.js +345 -127
  12. package/dist/es/MultiSelectTree/MultiSelectTreeProps.d.ts +8 -0
  13. package/dist/es/common/DropDownBase.d.ts +7 -0
  14. package/dist/es/common/DropDownBase.js +13 -1
  15. package/dist/es/common/ListFilter.d.ts +1 -0
  16. package/dist/es/common/ListFilter.js +31 -25
  17. package/dist/es/common/constants.d.ts +4 -0
  18. package/dist/es/common/constants.js +4 -0
  19. package/dist/es/messages/main.d.ts +10 -0
  20. package/dist/es/messages/main.js +10 -0
  21. package/dist/es/package-metadata.js +1 -1
  22. package/dist/esm/ComboBox/ComboBox.js +244 -42
  23. package/dist/esm/ComboBox/ComboBoxProps.d.ts +8 -0
  24. package/dist/esm/DropDownList/DropDownList.d.ts +3 -0
  25. package/dist/esm/DropDownList/DropDownList.js +197 -43
  26. package/dist/esm/DropDownList/DropDownListProps.d.ts +8 -0
  27. package/dist/esm/DropDownTree/DropDownTree.js +257 -105
  28. package/dist/esm/DropDownTree/DropDownTreeProps.d.ts +8 -0
  29. package/dist/esm/MultiSelect/MultiSelect.js +340 -65
  30. package/dist/esm/MultiSelect/MultiSelectProps.d.ts +8 -0
  31. package/dist/esm/MultiSelectTree/MultiSelectTree.js +345 -127
  32. package/dist/esm/MultiSelectTree/MultiSelectTreeProps.d.ts +8 -0
  33. package/dist/esm/common/DropDownBase.d.ts +7 -0
  34. package/dist/esm/common/DropDownBase.js +13 -1
  35. package/dist/esm/common/ListFilter.d.ts +1 -0
  36. package/dist/esm/common/ListFilter.js +31 -25
  37. package/dist/esm/common/constants.d.ts +4 -0
  38. package/dist/esm/common/constants.js +4 -0
  39. package/dist/esm/messages/main.d.ts +10 -0
  40. package/dist/esm/messages/main.js +10 -0
  41. package/dist/esm/package-metadata.js +1 -1
  42. package/dist/npm/ComboBox/ComboBox.js +242 -40
  43. package/dist/npm/ComboBox/ComboBoxProps.d.ts +8 -0
  44. package/dist/npm/DropDownList/DropDownList.d.ts +3 -0
  45. package/dist/npm/DropDownList/DropDownList.js +195 -41
  46. package/dist/npm/DropDownList/DropDownListProps.d.ts +8 -0
  47. package/dist/npm/DropDownTree/DropDownTree.js +254 -102
  48. package/dist/npm/DropDownTree/DropDownTreeProps.d.ts +8 -0
  49. package/dist/npm/MultiSelect/MultiSelect.js +338 -63
  50. package/dist/npm/MultiSelect/MultiSelectProps.d.ts +8 -0
  51. package/dist/npm/MultiSelectTree/MultiSelectTree.js +343 -125
  52. package/dist/npm/MultiSelectTree/MultiSelectTreeProps.d.ts +8 -0
  53. package/dist/npm/common/DropDownBase.d.ts +7 -0
  54. package/dist/npm/common/DropDownBase.js +12 -0
  55. package/dist/npm/common/ListFilter.d.ts +1 -0
  56. package/dist/npm/common/ListFilter.js +31 -25
  57. package/dist/npm/common/constants.d.ts +4 -0
  58. package/dist/npm/common/constants.js +10 -0
  59. package/dist/npm/messages/main.d.ts +10 -0
  60. package/dist/npm/messages/main.js +11 -1
  61. package/dist/npm/package-metadata.js +1 -1
  62. package/package.json +12 -9
@@ -25,7 +25,8 @@ var allVue = Vue;
25
25
  var gh = allVue.h;
26
26
  var isV3 = allVue.version && allVue.version[0] === '3';
27
27
  var ref = allVue.ref;
28
- import { classNames, Keys, guid, templateRendering, getListeners, getTemplate, kendoThemeMaps, setRef, getRef, Icon } from '@progress/kendo-vue-common';
28
+ var inject = allVue.inject;
29
+ import { classNames, Keys, guid, templateRendering, getListeners, kendoThemeMaps, setRef, getRef, Icon, canUseDOM } from '@progress/kendo-vue-common';
29
30
  var sizeMap = kendoThemeMaps.sizeMap,
30
31
  roundedMap = kendoThemeMaps.roundedMap;
31
32
  import { ListContainer } from '../common/ListContainer.js';
@@ -37,7 +38,13 @@ import { GroupStickyHeader } from '../common/GroupStickyHeader.js';
37
38
  import { ClearButton } from '../common/ClearButton.js';
38
39
  import { ActiveDescendant } from './../common/settings.js';
39
40
  import { itemIndexStartsWith, getItemValue, areSame, matchDataCollections, removeDataItems, isPresent, preventDefaultNonInputs } from '../common/utils.js';
40
- import { plusIcon } from '@progress/kendo-svg-icons';
41
+ import { plusIcon, xIcon } from '@progress/kendo-svg-icons';
42
+ import { Button as KButton } from '@progress/kendo-vue-buttons';
43
+ import { MOBILE_SMALL_DEVICE, MOBILE_MEDIUM_DEVICE } from '../common/constants.js';
44
+ import { ActionSheet } from '@progress/kendo-vue-layout';
45
+ import { ListFilter } from '../common/ListFilter.js';
46
+ import { provideLocalizationService } from '@progress/kendo-vue-intl';
47
+ import { messages, adaptiveModeFooterApply, adaptiveModeFooterCancel } from './../messages/main.js';
41
48
  var VALIDATION_MESSAGE = 'Please enter a valid value!';
42
49
  var preventDefault = function preventDefault(event) {
43
50
  return event.preventDefault();
@@ -191,6 +198,14 @@ var MultiSelectVue2 = {
191
198
  },
192
199
  groupField: {
193
200
  type: String
201
+ },
202
+ adaptive: {
203
+ type: Boolean,
204
+ default: undefined
205
+ },
206
+ adaptiveTitle: {
207
+ type: String,
208
+ default: undefined
194
209
  }
195
210
  },
196
211
  // @ts-ignore
@@ -198,10 +213,12 @@ var MultiSelectVue2 = {
198
213
  var v3 = !!isV3;
199
214
  var inputRef = ref(null);
200
215
  var kendoAnchorRef = ref(null);
216
+ var kendoLocalizationService = inject('kendoLocalizationService', {});
201
217
  return {
202
218
  v3: v3,
203
219
  inputRef: inputRef,
204
- kendoAnchorRef: kendoAnchorRef
220
+ kendoAnchorRef: kendoAnchorRef,
221
+ kendoLocalizationService: kendoLocalizationService
205
222
  };
206
223
  },
207
224
  computed: {
@@ -217,9 +234,34 @@ var MultiSelectVue2 = {
217
234
  'k-rtl': this.$props.dir === 'rtl'
218
235
  };
219
236
  }
237
+ },
238
+ isOpen: {
239
+ get: function get() {
240
+ return this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
241
+ }
242
+ },
243
+ animationStyles: {
244
+ get: function get() {
245
+ return this.windowWidth <= MOBILE_SMALL_DEVICE ? {
246
+ top: 0,
247
+ width: '100%',
248
+ height: '100%'
249
+ } : undefined;
250
+ }
251
+ },
252
+ classNameAdaptive: {
253
+ get: function get() {
254
+ return this.windowWidth <= MOBILE_SMALL_DEVICE ? 'k-adaptive-actionsheet k-actionsheet-fullscreen' : 'k-adaptive-actionsheet k-actionsheet-bottom';
255
+ }
256
+ },
257
+ adaptiveState: {
258
+ get: function get() {
259
+ return this.windowWidth <= MOBILE_MEDIUM_DEVICE && this.$props.adaptive;
260
+ }
220
261
  }
221
262
  },
222
263
  created: function created() {
264
+ this.observer = null;
223
265
  this.valuesItemsDuringOnChange = null;
224
266
  this._tags = [];
225
267
  this._skipFocusEvent = false;
@@ -228,6 +270,11 @@ var MultiSelectVue2 = {
228
270
  this.anchor = guid();
229
271
  this.inputId = guid();
230
272
  },
273
+ inject: {
274
+ kendoLocalizationService: {
275
+ default: null
276
+ }
277
+ },
231
278
  data: function data() {
232
279
  return {
233
280
  hasMounted: false,
@@ -245,7 +292,9 @@ var MultiSelectVue2 = {
245
292
  activedescendant: ActiveDescendant.PopupList,
246
293
  group: undefined,
247
294
  isScrolling: false,
248
- itemHeight: 0
295
+ itemHeight: 0,
296
+ windowWidth: 0,
297
+ initialAdaptiveRenderingValues: undefined
249
298
  };
250
299
  },
251
300
  watch: {
@@ -259,6 +308,18 @@ var MultiSelectVue2 = {
259
308
  if (newValue && oldValue && newValue.total !== oldValue.total) {
260
309
  this.virtualTotalHasChanged = true;
261
310
  }
311
+ },
312
+ isOpen: function isOpen(newValue) {
313
+ var _this = this;
314
+ if (newValue) {
315
+ this.initialAdaptiveRenderingValues = this.base.component.currentValue;
316
+ } else {
317
+ this.initialAdaptiveRenderingValues = undefined;
318
+ }
319
+ setTimeout(function () {
320
+ var listItem = document.querySelector('.k-list-item');
321
+ _this.itemHeight = _this.base.getListItemHeight(listItem);
322
+ }, 100);
262
323
  }
263
324
  },
264
325
  updated: function updated() {
@@ -270,7 +331,7 @@ var MultiSelectVue2 = {
270
331
  _d = _b.dataItems,
271
332
  dataItems = _d === void 0 ? [] : _d;
272
333
  var skip = virtual ? virtual.skip : 0;
273
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
334
+ var opened = this.isOpen;
274
335
  var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;
275
336
  var opening = !prevOpened && opened;
276
337
  var closing = prevOpened && !opened;
@@ -328,6 +389,10 @@ var MultiSelectVue2 = {
328
389
  this.setValidity();
329
390
  },
330
391
  mounted: function mounted() {
392
+ this.observer = canUseDOM && new ResizeObserver(this.calculateMedia);
393
+ if ((document === null || document === void 0 ? void 0 : document.body) && this.observer) {
394
+ this.observer.observe(document.body);
395
+ }
331
396
  this.hasMounted = true;
332
397
  // @ts-ignore
333
398
  this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;
@@ -337,7 +402,18 @@ var MultiSelectVue2 = {
337
402
  this.searchBarRef();
338
403
  this.setValidity();
339
404
  },
405
+ destroyed: !!isV3 ? undefined : function () {
406
+ if (this.observer) {
407
+ this.observer.disconnect();
408
+ }
409
+ },
340
410
  methods: {
411
+ clearFilter: function clearFilter(state) {
412
+ if (this.currentText) {
413
+ state.data.currentText = '';
414
+ }
415
+ this.base.filterChanged('', state);
416
+ },
341
417
  computedValue: function computedValue() {
342
418
  var result = [];
343
419
  if (this.valuesItemsDuringOnChange) {
@@ -403,11 +479,8 @@ var MultiSelectVue2 = {
403
479
  newItems = __spreadArray(__spreadArray([], value, true), [dataItem], false);
404
480
  }
405
481
  var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;
406
- if (text) {
407
- if (this.currentText) {
408
- state.data.currentText = '';
409
- }
410
- this.base.filterChanged('', state);
482
+ if (text && !this.adaptiveState) {
483
+ this.clearFilter(state);
411
484
  }
412
485
  if (this.currentFocusedIndex !== undefined) {
413
486
  state.data.currentFocusedIndex = undefined;
@@ -416,7 +489,7 @@ var MultiSelectVue2 = {
416
489
  this.base.triggerPageChangeCornerItems(dataItem, state);
417
490
  },
418
491
  onTagDelete: function onTagDelete(itemsToRemove, event) {
419
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
492
+ var opened = this.isOpen;
420
493
  var state = this.base.initState();
421
494
  state.event = event;
422
495
  if (opened) {
@@ -435,7 +508,7 @@ var MultiSelectVue2 = {
435
508
  allowCustom = _a.allowCustom,
436
509
  _b = _a.dataItems,
437
510
  dataItems = _b === void 0 ? [] : _b;
438
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
511
+ var opened = this.isOpen;
439
512
  var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;
440
513
  var _c = this.getFocusedState(),
441
514
  focusedType = _c.focusedType,
@@ -495,8 +568,8 @@ var MultiSelectVue2 = {
495
568
  },
496
569
  onChangeHandler: function onChangeHandler(event) {
497
570
  var state = this.base.initState();
498
- var value = event.currentTarget.value;
499
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
571
+ var value = event && (event.currentTarget && event.currentTarget.value || event.value);
572
+ var opened = this.isOpen;
500
573
  state.event = event;
501
574
  if (this.$props.filter === undefined) {
502
575
  state.data.currentText = value;
@@ -513,7 +586,7 @@ var MultiSelectVue2 = {
513
586
  this.applyState(state);
514
587
  },
515
588
  clearButtonClick: function clearButtonClick(event) {
516
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
589
+ var opened = this.isOpen;
517
590
  var state = this.base.initState();
518
591
  state.event = event;
519
592
  event.stopPropagation();
@@ -542,7 +615,7 @@ var MultiSelectVue2 = {
542
615
  }
543
616
  var keyCode = event.keyCode;
544
617
  var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;
545
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
618
+ var opened = this.isOpen;
546
619
  var focusedItem = this.getFocusedState().focusedItem;
547
620
  var state = this.base.initState();
548
621
  state.event = event;
@@ -568,6 +641,10 @@ var MultiSelectVue2 = {
568
641
  this.selectFocusedItem(event);
569
642
  }
570
643
  } else if (keyCode === Keys.esc) {
644
+ if (this.adaptiveState) {
645
+ this.handleWrapperClick(event); // Handle the closing on "Esc" key press in adaptive mode
646
+ }
647
+
571
648
  togglePopup();
572
649
  }
573
650
  } else if (event.altKey && keyCode === Keys.down) {
@@ -732,7 +809,7 @@ var MultiSelectVue2 = {
732
809
  this.applyState(state);
733
810
  },
734
811
  handleWrapperClick: function handleWrapperClick(event) {
735
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
812
+ var opened = this.isOpen;
736
813
  var input = this.input;
737
814
  if (!opened && input) {
738
815
  this.focusElement(input);
@@ -745,14 +822,34 @@ var MultiSelectVue2 = {
745
822
  });
746
823
  state.data.currentFocused = true;
747
824
  }
825
+ this.clearFilter(state);
748
826
  this.base.togglePopup(state);
749
827
  this.applyState(state);
750
828
  },
829
+ onCancel: function onCancel(event) {
830
+ var state = this.base.initState();
831
+ state.event = event;
832
+ event.stopPropagation();
833
+ var opened = this.isOpen;
834
+ if (state.focusedIndex !== undefined) {
835
+ state.data.focusedIndex = undefined;
836
+ }
837
+ if (opened) {
838
+ this.base.togglePopup(state);
839
+ }
840
+ state.events.push({
841
+ type: 'onCancel'
842
+ });
843
+ this.clearFilter(state);
844
+ this.triggerOnChange(__spreadArray([], this.initialAdaptiveRenderingValues, true), state);
845
+ this.base.triggerPageChangeCornerItems(__spreadArray([], this.initialAdaptiveRenderingValues, true), state);
846
+ this.applyState(state);
847
+ },
751
848
  handleItemClick: function handleItemClick(index, event) {
752
849
  var state = this.base.initState();
753
850
  state.event = event;
754
851
  this.handleItemSelect(index, state);
755
- if (this.$props.autoClose) {
852
+ if (this.$props.autoClose && !this.adaptiveState) {
756
853
  this.base.togglePopup(state);
757
854
  }
758
855
  this.applyState(state);
@@ -761,7 +858,7 @@ var MultiSelectVue2 = {
761
858
  if (!this.currentFocused || this._skipFocusEvent) {
762
859
  return;
763
860
  }
764
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
861
+ var opened = this.isOpen;
765
862
  var state = this.base.initState();
766
863
  var _a = this.$props,
767
864
  allowCustom = _a.allowCustom,
@@ -771,7 +868,7 @@ var MultiSelectVue2 = {
771
868
  state.events.push({
772
869
  type: 'blur'
773
870
  });
774
- if (opened) {
871
+ if (opened && !this.adaptiveState) {
775
872
  if (this.currentOpened) {
776
873
  state.data.currentOpened = false;
777
874
  }
@@ -827,6 +924,12 @@ var MultiSelectVue2 = {
827
924
  this.input.focus();
828
925
  }
829
926
  },
927
+ calculateMedia: function calculateMedia(entries) {
928
+ for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
929
+ var entry = entries_1[_i];
930
+ this.windowWidth = entry.target.clientWidth;
931
+ }
932
+ },
830
933
  repositionPopup: function repositionPopup() {
831
934
  this.base.repositionPopup();
832
935
  },
@@ -840,6 +943,7 @@ var MultiSelectVue2 = {
840
943
  var groupField = this.$props.groupField;
841
944
  var _b = this.$props.dataItems,
842
945
  dataItems = _b === void 0 ? [] : _b;
946
+ var group;
843
947
  if (!groupField || !dataItems.length) {
844
948
  return;
845
949
  }
@@ -848,8 +952,9 @@ var MultiSelectVue2 = {
848
952
  var scrollTop = target.scrollTop - vs.skip * itemHeight;
849
953
  if (groupField) {
850
954
  dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
955
+ dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
956
+ group = dataItems[0][groupField];
851
957
  }
852
- var group = dataItems[0][groupField];
853
958
  for (var i = 1; i < dataItems.length; i++) {
854
959
  if (itemHeight * i > scrollTop) {
855
960
  break;
@@ -867,6 +972,7 @@ var MultiSelectVue2 = {
867
972
  render: function render(createElement) {
868
973
  var _this4 = this;
869
974
  var _a;
975
+ var _this = this;
870
976
  var h = gh || createElement;
871
977
  var _b = this.$props,
872
978
  style = _b.style,
@@ -882,7 +988,13 @@ var MultiSelectVue2 = {
882
988
  fillMode = _b.fillMode,
883
989
  rounded = _b.rounded,
884
990
  tagsRounded = _b.tagsRounded,
885
- removeTagIcon = _b.removeTagIcon;
991
+ removeTagIcon = _b.removeTagIcon,
992
+ adaptiveTitle = _b.adaptiveTitle,
993
+ header = _b.header,
994
+ footer = _b.footer,
995
+ groupStickyHeaderItemRender = _b.groupStickyHeaderItemRender,
996
+ _c = _b.dataItems,
997
+ dataItems = _c === void 0 ? [] : _c;
886
998
  var focused = this.currentFocused;
887
999
  var popupSettings = Object.assign({}, {
888
1000
  animate: true,
@@ -895,6 +1007,12 @@ var MultiSelectVue2 = {
895
1007
  var vs = this.base.vs;
896
1008
  var id = this.$props.id || this.inputId;
897
1009
  var tagRender = templateRendering.call(this, this.$props.tagRender, getListeners.call(this));
1010
+ var opened = this.isOpen;
1011
+ var renderAdaptive = this.adaptiveState;
1012
+ var localization = provideLocalizationService(this);
1013
+ if (this.group === undefined && this.$props.groupField !== undefined) {
1014
+ this.group = getItemValue(this.$props.dataItems[0], this.$props.groupField);
1015
+ }
898
1016
  vs.enabled = virtual !== undefined;
899
1017
  if (virtual !== undefined) {
900
1018
  vs.skip = virtual.skip;
@@ -902,25 +1020,36 @@ var MultiSelectVue2 = {
902
1020
  vs.pageSize = virtual.pageSize;
903
1021
  }
904
1022
  var tagsToRender = [];
905
- if (tags === undefined) {
906
- this.computedValue().forEach(function (item) {
1023
+ if (this.initialAdaptiveRenderingValues === undefined) {
1024
+ if (tags === undefined) {
1025
+ this.computedValue().forEach(function (item) {
1026
+ tagsToRender.push({
1027
+ text: getItemValue(item, textField),
1028
+ data: [item]
1029
+ });
1030
+ });
1031
+ } else {
1032
+ tagsToRender.push.apply(tagsToRender, tags);
1033
+ }
1034
+ } else {
1035
+ var valuesBeforeAdaptiveRendering = __spreadArray([], this.initialAdaptiveRenderingValues, true);
1036
+ valuesBeforeAdaptiveRendering.forEach(function (item) {
907
1037
  tagsToRender.push({
908
1038
  text: getItemValue(item, textField),
909
1039
  data: [item]
910
1040
  });
911
1041
  });
912
- } else {
913
- tagsToRender.push.apply(tagsToRender, tags);
914
1042
  }
915
- this.setItems(tagsToRender, this._tags);
1043
+ if (tagsToRender.length > 0) {
1044
+ this.setItems(tagsToRender, this._tags);
1045
+ }
916
1046
  var isValid = !this.$props.validityStyles || this.validity().valid;
917
1047
  var renderSearchBar = function renderSearchBar(searchId) {
918
1048
  var _this = this;
919
1049
  var activedescendant = this.activedescendant;
920
1050
  var placeholder = this.$props.placeholder;
921
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
922
1051
  var focusedIndex = this.getFocusedState().focusedIndex;
923
- var placeholderToShow = value.length === 0 && !searchText ? placeholder : undefined;
1052
+ var placeholderToShow = tagsToRender.length === 0 || value.length === 0 && !searchText ? placeholder : undefined;
924
1053
  var ariaActivedescendant = activedescendant === ActiveDescendant.TagsList && focusedTag !== undefined ? "tag-".concat(this.base.guid, "-").concat(focusedTag.text.replace(/\s+/g, '-')) : "option-".concat(this.base.guid, "-").concat(focusedIndex);
925
1054
  return (
926
1055
  // @ts-ignore function children
@@ -932,7 +1061,7 @@ var MultiSelectVue2 = {
932
1061
  tabIndex: this.$props.tabIndex,
933
1062
  accessKey: this.$props.accessKey,
934
1063
  placeholder: placeholderToShow,
935
- value: searchText,
1064
+ value: !renderAdaptive ? searchText : '',
936
1065
  disabled: disabled,
937
1066
  expanded: opened,
938
1067
  owns: this.base.listBoxId,
@@ -945,7 +1074,7 @@ var MultiSelectVue2 = {
945
1074
  tabIndex: this.$props.tabIndex,
946
1075
  accessKey: this.$props.accessKey,
947
1076
  placeholder: placeholderToShow,
948
- value: searchText,
1077
+ value: !renderAdaptive ? searchText : '',
949
1078
  onChange: this.onChangeHandler,
950
1079
  on: this.v3 ? undefined : {
951
1080
  "change": this.onChangeHandler,
@@ -970,16 +1099,15 @@ var MultiSelectVue2 = {
970
1099
  var renderList = function renderList() {
971
1100
  var _this2 = this;
972
1101
  var groupField = this.$props.groupField;
973
- var dataItems = this.$props.dataItems || [];
974
1102
  var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));
975
1103
  var groupHeaderItemRender = templateRendering.call(this, this.$props.groupHeaderItemRender, getListeners.call(this));
976
1104
  var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));
977
1105
  var skip = virtual ? virtual.skip : 0;
978
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
979
1106
  var focusedIndex = this.getFocusedState().focusedIndex;
980
1107
  var translate = "translateY(".concat(vs.translate, "px)");
1108
+ var listDataItems = dataItems;
981
1109
  if (groupField) {
982
- dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
1110
+ listDataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
983
1111
  }
984
1112
  return (
985
1113
  // @ts-ignore function children
@@ -988,14 +1116,14 @@ var MultiSelectVue2 = {
988
1116
  attrs: this.v3 ? undefined : {
989
1117
  id: this.base.listBoxId,
990
1118
  show: opened,
991
- dataItems: dataItems.slice(),
1119
+ dataItems: listDataItems.slice(),
992
1120
  focusedIndex: focusedIndex - skip,
993
1121
  value: this.computedValue(),
994
1122
  textField: textField,
995
1123
  valueField: dataItemKey,
996
1124
  optionsGuid: this.base.guid,
997
1125
  wrapperStyle: {
998
- maxHeight: popupSettings.height
1126
+ maxHeight: !renderAdaptive ? popupSettings.height : undefined
999
1127
  },
1000
1128
  wrapperCssClass: 'k-list-content',
1001
1129
  listStyle: vs.enabled ? {
@@ -1008,7 +1136,7 @@ var MultiSelectVue2 = {
1008
1136
  groupField: groupField
1009
1137
  },
1010
1138
  show: opened,
1011
- dataItems: dataItems.slice(),
1139
+ dataItems: listDataItems.slice(),
1012
1140
  focusedIndex: focusedIndex - skip,
1013
1141
  value: this.computedValue(),
1014
1142
  textField: textField,
@@ -1016,7 +1144,7 @@ var MultiSelectVue2 = {
1016
1144
  optionsGuid: this.base.guid,
1017
1145
  ref: 'list',
1018
1146
  wrapperStyle: {
1019
- maxHeight: popupSettings.height
1147
+ maxHeight: !renderAdaptive ? popupSettings.height : undefined
1020
1148
  },
1021
1149
  wrapperCssClass: 'k-list-content',
1022
1150
  listStyle: vs.enabled ? {
@@ -1049,22 +1177,10 @@ var MultiSelectVue2 = {
1049
1177
  var _this3 = this;
1050
1178
  var _a;
1051
1179
  var base = this.base;
1052
- var _b = this.$props,
1053
- allowCustom = _b.allowCustom,
1054
- _c = _b.dataItems,
1055
- dataItems = _c === void 0 ? [] : _c;
1056
- var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));
1057
- var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));
1180
+ var allowCustom = this.$props.allowCustom;
1058
1181
  var groupStickyHeaderTemplate = templateRendering.call(this, this.$props.groupStickyHeaderItemRender, getListeners.call(this));
1059
- var header = getTemplate.call(this, {
1060
- h: h,
1061
- template: headerTemplate
1062
- });
1063
- var footer = getTemplate.call(this, {
1064
- h: h,
1065
- template: footerTemplate
1066
- });
1067
- var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
1182
+ var headerListContainer = base.getTemplateDef.call(this, header);
1183
+ var footerListContainer = base.getTemplateDef.call(this, footer);
1068
1184
  var currentText = this.$props.filter !== undefined ? this.$props.filter : this.currentText;
1069
1185
  var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
1070
1186
  var focusedType = this.getFocusedState().focusedType;
@@ -1128,32 +1244,187 @@ var MultiSelectVue2 = {
1128
1244
  }),
1129
1245
  itemsCount: dataItems.length
1130
1246
  }, this.v3 ? function () {
1131
- return [header && h("div", {
1247
+ return [headerListContainer && h("div", {
1132
1248
  "class": "k-list-header"
1133
- }, [header]), customItem, _this3.group && dataItems.length !== 0 && h(GroupStickyHeader, {
1249
+ }, [headerListContainer]), customItem, _this3.group && dataItems.length !== 0 && h(GroupStickyHeader, {
1134
1250
  group: _this3.group,
1135
1251
  attrs: _this3.v3 ? undefined : {
1136
1252
  group: _this3.group,
1137
1253
  render: groupStickyHeaderTemplate
1138
1254
  },
1139
1255
  render: groupStickyHeaderTemplate
1140
- }), renderList.call(_this3), footer && h("div", {
1256
+ }), renderList.call(_this3), footerListContainer && h("div", {
1141
1257
  "class": "k-list-footer"
1142
- }, [footer]), virtual && header];
1143
- } : [header && h("div", {
1258
+ }, [footerListContainer]), virtual && header];
1259
+ } : [headerListContainer && h("div", {
1144
1260
  "class": "k-list-header"
1145
- }, [header]), customItem, _this3.group && dataItems.length !== 0 && h(GroupStickyHeader, {
1261
+ }, [headerListContainer]), customItem, _this3.group && dataItems.length !== 0 && h(GroupStickyHeader, {
1146
1262
  group: _this3.group,
1147
1263
  attrs: _this3.v3 ? undefined : {
1148
1264
  group: _this3.group,
1149
1265
  render: groupStickyHeaderTemplate
1150
1266
  },
1151
1267
  render: groupStickyHeaderTemplate
1152
- }), renderList.call(_this3), footer && h("div", {
1268
+ }), renderList.call(_this3), footerListContainer && h("div", {
1153
1269
  "class": "k-list-footer"
1154
- }, [footer]), virtual && header])
1270
+ }, [footerListContainer]), virtual && header])
1155
1271
  );
1156
1272
  };
1273
+ var renderListFilter = function renderListFilter() {
1274
+ var filterText = this.$props.filter !== undefined ? this.$props.filter : this.currentText;
1275
+ return this.$props.filterable &&
1276
+ // @ts-ignore
1277
+ h(ListFilter, {
1278
+ value: filterText,
1279
+ attrs: this.v3 ? undefined : {
1280
+ value: filterText,
1281
+ size: size,
1282
+ rounded: rounded,
1283
+ fillMode: fillMode
1284
+ },
1285
+ ref: 'filterInput',
1286
+ onChange: this.onChangeHandler,
1287
+ on: this.v3 ? undefined : {
1288
+ "change": this.onChangeHandler,
1289
+ "keydown": this.onInputKeyDown
1290
+ },
1291
+ onKeydown: this.onInputKeyDown,
1292
+ size: size,
1293
+ rounded: rounded,
1294
+ fillMode: fillMode
1295
+ });
1296
+ };
1297
+ var adaptiveActionSheetHeaderTemplateDef = function adaptiveActionSheetHeaderTemplateDef() {
1298
+ return [h("div", {
1299
+ "class": "k-actionsheet-titlebar-group k-hbox"
1300
+ }, [h("div", {
1301
+ "class": "k-actionsheet-title"
1302
+ }, [h("div", {
1303
+ "class": "k-text-center"
1304
+ }, [adaptiveTitle]), h("div", {
1305
+ "class": "k-actionsheet-subtitle k-text-center"
1306
+ })]), h("div", {
1307
+ "class": "k-actionsheet-actions"
1308
+ }, [h(KButton, {
1309
+ tabindex: 5,
1310
+ attrs: this.v3 ? undefined : {
1311
+ tabindex: 5,
1312
+ "aria-label": "Cancel",
1313
+ "aria-disabled": "false",
1314
+ type: "button",
1315
+ fillMode: "flat",
1316
+ icon: "x",
1317
+ svgIcon: xIcon
1318
+ },
1319
+ "aria-label": "Cancel",
1320
+ "aria-disabled": "false",
1321
+ type: "button",
1322
+ fillMode: "flat",
1323
+ onClick: _this.onCancel,
1324
+ on: this.v3 ? undefined : {
1325
+ "click": _this.onCancel
1326
+ },
1327
+ icon: "x",
1328
+ svgIcon: xIcon
1329
+ })])]), h("div", {
1330
+ "class": "k-actionsheet-titlebar-group k-actionsheet-filter"
1331
+ }, [renderListFilter.call(_this)])];
1332
+ };
1333
+ var adaptiveActionSheetHeaderTemplate = templateRendering.call(this, adaptiveActionSheetHeaderTemplateDef, getListeners.call(this));
1334
+ var adaptiveActionSheetFooterTemplateDef = function adaptiveActionSheetFooterTemplateDef() {
1335
+ var cancelText = localization.toLanguageString(adaptiveModeFooterCancel, messages[adaptiveModeFooterCancel]);
1336
+ var applyText = localization.toLanguageString(adaptiveModeFooterApply, messages[adaptiveModeFooterApply]);
1337
+ return [h(KButton, {
1338
+ size: "large",
1339
+ attrs: this.v3 ? undefined : {
1340
+ size: "large",
1341
+ "aria-label": cancelText,
1342
+ "aria-disabled": "false",
1343
+ type: "button"
1344
+ },
1345
+ "aria-label": cancelText,
1346
+ "aria-disabled": "false",
1347
+ type: "button",
1348
+ onClick: _this.onCancel,
1349
+ on: this.v3 ? undefined : {
1350
+ "click": _this.onCancel
1351
+ }
1352
+ }, [cancelText]), h(KButton, {
1353
+ themeColor: "primary",
1354
+ attrs: this.v3 ? undefined : {
1355
+ themeColor: "primary",
1356
+ size: "large",
1357
+ "aria-label": applyText,
1358
+ "aria-disabled": "false",
1359
+ type: "button"
1360
+ },
1361
+ size: "large",
1362
+ "aria-label": applyText,
1363
+ "aria-disabled": "false",
1364
+ type: "button",
1365
+ onClick: _this.handleWrapperClick,
1366
+ on: this.v3 ? undefined : {
1367
+ "click": _this.handleWrapperClick
1368
+ }
1369
+ }, [applyText])];
1370
+ };
1371
+ var adaptiveActionSheetFooterTemplate = templateRendering.call(this, adaptiveActionSheetFooterTemplateDef, getListeners.call(this));
1372
+ var adaptiveActionSheetContentTemplateDef = function adaptiveActionSheetContentTemplateDef() {
1373
+ var _a;
1374
+ var headerToRender = _this.base.getTemplateDef.call(_this, header, h);
1375
+ var footerToRender = _this.base.getTemplateDef.call(_this, footer, h);
1376
+ var groupStickyHeaderTemplate = templateRendering.call(_this, groupStickyHeaderItemRender, getListeners.call(_this));
1377
+ return h("div", {
1378
+ "class": "k-list-container"
1379
+ }, [headerToRender && h("div", {
1380
+ "class": "k-list-header"
1381
+ }, [headerToRender]), h("div", {
1382
+ "class": classNames('k-list', (_a = {}, _a["k-list-".concat(sizeMap[size] || size)] = !renderAdaptive ? size : false, _a['k-list-lg'] = renderAdaptive ? true : false, _a['k-virtual-list'] = vs.enabled, _a))
1383
+ }, [_this.group && dataItems.length !== 0 && h(GroupStickyHeader, {
1384
+ group: _this.group,
1385
+ attrs: this.v3 ? undefined : {
1386
+ group: _this.group,
1387
+ render: groupStickyHeaderTemplate
1388
+ },
1389
+ render: groupStickyHeaderTemplate
1390
+ }), renderList.call(_this), footerToRender && h("div", {
1391
+ className: "k-list-footer",
1392
+ attrs: this.v3 ? undefined : {
1393
+ className: "k-list-footer"
1394
+ }
1395
+ }, [footerToRender])])]);
1396
+ };
1397
+ var adaptiveActionSheetContentTemplate = templateRendering.call(this, adaptiveActionSheetContentTemplateDef, getListeners.call(this));
1398
+ var renderAdaptiveListContainer = function renderAdaptiveListContainer() {
1399
+ return h(ActionSheet, {
1400
+ expand: opened,
1401
+ attrs: this.v3 ? undefined : {
1402
+ expand: opened,
1403
+ animation: true,
1404
+ animationStyles: this.animationStyles,
1405
+ className: this.classNameAdaptive,
1406
+ contentClassName: '!k-overflow-hidden',
1407
+ footerClassName: 'k-actions k-actions-stretched',
1408
+ header: adaptiveActionSheetHeaderTemplate,
1409
+ content: adaptiveActionSheetContentTemplate,
1410
+ footer: adaptiveActionSheetFooterTemplate,
1411
+ navigatableElements: ['input.k-input-inner', '.k-actionsheet-actions > button']
1412
+ },
1413
+ animation: true,
1414
+ animationStyles: this.animationStyles,
1415
+ className: this.classNameAdaptive,
1416
+ contentClassName: '!k-overflow-hidden',
1417
+ footerClassName: 'k-actions k-actions-stretched',
1418
+ header: adaptiveActionSheetHeaderTemplate,
1419
+ content: adaptiveActionSheetContentTemplate,
1420
+ footer: adaptiveActionSheetFooterTemplate,
1421
+ onClose: this.onCancel,
1422
+ on: this.v3 ? undefined : {
1423
+ "close": this.onCancel
1424
+ },
1425
+ navigatableElements: ['input.k-input-inner', '.k-actionsheet-actions > button']
1426
+ });
1427
+ };
1157
1428
  var component = h("span", {
1158
1429
  ref: setRef(this, 'kendoAnchor', this.anchor),
1159
1430
  "class": classNames('k-multiselect', '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-focus'] = focused && !disabled, _a['k-disabled'] = disabled, _a['k-invalid'] = !isValid, _a['k-loading'] = loading, _a['k-required'] = this.required, _a)),
@@ -1203,7 +1474,7 @@ var MultiSelectVue2 = {
1203
1474
  }) : undefined
1204
1475
  }, this.v3 ? function () {
1205
1476
  return [renderSearchBar.call(_this4, id)];
1206
- } : [renderSearchBar.call(_this4, id)]), clearButton &&
1477
+ } : [renderSearchBar.call(_this4, id)]), tagsToRender.length > 0 && clearButton &&
1207
1478
  // @ts-ignore function children
1208
1479
  h(ClearButton, {
1209
1480
  onClearclick: this.clearButtonClick,
@@ -1212,14 +1483,18 @@ var MultiSelectVue2 = {
1212
1483
  }
1213
1484
  }), h("span", {
1214
1485
  "class": loading ? 'k-input-loading-icon k-icon k-i-loading' : undefined
1215
- }), renderListContainer.call(this)]);
1486
+ }), !renderAdaptive && renderListContainer.call(this)]);
1487
+ // The following one combines the default rendering of the MultiSelect and the Adaptive rendering.
1488
+ // This is needed because of Vue 2 specifics
1489
+ var multiselect = [component, renderAdaptive && renderAdaptiveListContainer.call(this)];
1490
+ var multiselectToRender = isV3 ? multiselect : this.$props.adaptive ? h("span", [multiselect]) : component;
1216
1491
  return label ? h("span", {
1217
1492
  "class": this.spanClassNames,
1218
1493
  dir: this.$props.dir,
1219
1494
  attrs: this.v3 ? undefined : {
1220
1495
  dir: this.$props.dir
1221
1496
  }
1222
- }, [component, this.$props.label ? id ? h("label", {
1497
+ }, [multiselectToRender, this.$props.label ? id ? h("label", {
1223
1498
  "for": id,
1224
1499
  attrs: this.v3 ? undefined : {
1225
1500
  "for": id
@@ -1227,7 +1502,7 @@ var MultiSelectVue2 = {
1227
1502
  "class": "k-label"
1228
1503
  }, [this.$props.label]) : h("span", {
1229
1504
  "class": "k-label"
1230
- }, [this.$props.label]) : null]) : component;
1505
+ }, [this.$props.label]) : null]) : multiselectToRender;
1231
1506
  }
1232
1507
  };
1233
1508
  /**