@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.
- package/dist/cdn/js/kendo-vue-dropdowns.js +1 -1
- package/dist/es/ComboBox/ComboBox.js +244 -42
- package/dist/es/ComboBox/ComboBoxProps.d.ts +8 -0
- package/dist/es/DropDownList/DropDownList.d.ts +3 -0
- package/dist/es/DropDownList/DropDownList.js +197 -43
- package/dist/es/DropDownList/DropDownListProps.d.ts +8 -0
- package/dist/es/DropDownTree/DropDownTree.js +257 -105
- package/dist/es/DropDownTree/DropDownTreeProps.d.ts +8 -0
- package/dist/es/MultiSelect/MultiSelect.js +340 -65
- package/dist/es/MultiSelect/MultiSelectProps.d.ts +8 -0
- package/dist/es/MultiSelectTree/MultiSelectTree.js +345 -127
- package/dist/es/MultiSelectTree/MultiSelectTreeProps.d.ts +8 -0
- package/dist/es/common/DropDownBase.d.ts +7 -0
- package/dist/es/common/DropDownBase.js +13 -1
- package/dist/es/common/ListFilter.d.ts +1 -0
- package/dist/es/common/ListFilter.js +31 -25
- package/dist/es/common/constants.d.ts +4 -0
- package/dist/es/common/constants.js +4 -0
- package/dist/es/messages/main.d.ts +10 -0
- package/dist/es/messages/main.js +10 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/esm/ComboBox/ComboBox.js +244 -42
- package/dist/esm/ComboBox/ComboBoxProps.d.ts +8 -0
- package/dist/esm/DropDownList/DropDownList.d.ts +3 -0
- package/dist/esm/DropDownList/DropDownList.js +197 -43
- package/dist/esm/DropDownList/DropDownListProps.d.ts +8 -0
- package/dist/esm/DropDownTree/DropDownTree.js +257 -105
- package/dist/esm/DropDownTree/DropDownTreeProps.d.ts +8 -0
- package/dist/esm/MultiSelect/MultiSelect.js +340 -65
- package/dist/esm/MultiSelect/MultiSelectProps.d.ts +8 -0
- package/dist/esm/MultiSelectTree/MultiSelectTree.js +345 -127
- package/dist/esm/MultiSelectTree/MultiSelectTreeProps.d.ts +8 -0
- package/dist/esm/common/DropDownBase.d.ts +7 -0
- package/dist/esm/common/DropDownBase.js +13 -1
- package/dist/esm/common/ListFilter.d.ts +1 -0
- package/dist/esm/common/ListFilter.js +31 -25
- package/dist/esm/common/constants.d.ts +4 -0
- package/dist/esm/common/constants.js +4 -0
- package/dist/esm/messages/main.d.ts +10 -0
- package/dist/esm/messages/main.js +10 -0
- package/dist/esm/package-metadata.js +1 -1
- package/dist/npm/ComboBox/ComboBox.js +242 -40
- package/dist/npm/ComboBox/ComboBoxProps.d.ts +8 -0
- package/dist/npm/DropDownList/DropDownList.d.ts +3 -0
- package/dist/npm/DropDownList/DropDownList.js +195 -41
- package/dist/npm/DropDownList/DropDownListProps.d.ts +8 -0
- package/dist/npm/DropDownTree/DropDownTree.js +254 -102
- package/dist/npm/DropDownTree/DropDownTreeProps.d.ts +8 -0
- package/dist/npm/MultiSelect/MultiSelect.js +338 -63
- package/dist/npm/MultiSelect/MultiSelectProps.d.ts +8 -0
- package/dist/npm/MultiSelectTree/MultiSelectTree.js +343 -125
- package/dist/npm/MultiSelectTree/MultiSelectTreeProps.d.ts +8 -0
- package/dist/npm/common/DropDownBase.d.ts +7 -0
- package/dist/npm/common/DropDownBase.js +12 -0
- package/dist/npm/common/ListFilter.d.ts +1 -0
- package/dist/npm/common/ListFilter.js +31 -25
- package/dist/npm/common/constants.d.ts +4 -0
- package/dist/npm/common/constants.js +10 -0
- package/dist/npm/messages/main.d.ts +10 -0
- package/dist/npm/messages/main.js +11 -1
- package/dist/npm/package-metadata.js +1 -1
- package/package.json +12 -9
|
@@ -19,7 +19,7 @@ var ref = allVue.ref;
|
|
|
19
19
|
var inject = allVue.inject;
|
|
20
20
|
import DropDownBase from '../common/DropDownBase';
|
|
21
21
|
import { GroupStickyHeader } from '../common/GroupStickyHeader';
|
|
22
|
-
import { guid, classNames, Keys, templateRendering, getListeners,
|
|
22
|
+
import { guid, classNames, Keys, templateRendering, getListeners, kendoThemeMaps, getRef, setRef, Icon, canUseDOM } from '@progress/kendo-vue-common';
|
|
23
23
|
import { Button as KButton } from '@progress/kendo-vue-buttons';
|
|
24
24
|
var sizeMap = kendoThemeMaps.sizeMap,
|
|
25
25
|
roundedMap = kendoThemeMaps.roundedMap;
|
|
@@ -30,7 +30,10 @@ import { List } from '../common/List';
|
|
|
30
30
|
import { ClearButton } from '../common/ClearButton';
|
|
31
31
|
import { provideLocalizationService } from '@progress/kendo-vue-intl';
|
|
32
32
|
import { expandButton, messages } from '../messages/main';
|
|
33
|
-
import { caretAltDownIcon } from '@progress/kendo-svg-icons';
|
|
33
|
+
import { caretAltDownIcon, xIcon } from '@progress/kendo-svg-icons';
|
|
34
|
+
import { MOBILE_SMALL_DEVICE, MOBILE_MEDIUM_DEVICE } from '../common/constants';
|
|
35
|
+
import { ActionSheet } from '@progress/kendo-vue-layout';
|
|
36
|
+
import { ListFilter } from '../common/ListFilter';
|
|
34
37
|
var VALIDATION_MESSAGE = 'Please enter a valid value!';
|
|
35
38
|
/**
|
|
36
39
|
* @hidden
|
|
@@ -178,6 +181,14 @@ var ComboBoxVue2 = {
|
|
|
178
181
|
},
|
|
179
182
|
groupField: {
|
|
180
183
|
type: String
|
|
184
|
+
},
|
|
185
|
+
adaptive: {
|
|
186
|
+
type: Boolean,
|
|
187
|
+
default: undefined
|
|
188
|
+
},
|
|
189
|
+
adaptiveTitle: {
|
|
190
|
+
type: String,
|
|
191
|
+
default: undefined
|
|
181
192
|
}
|
|
182
193
|
},
|
|
183
194
|
inject: {
|
|
@@ -202,10 +213,13 @@ var ComboBoxVue2 = {
|
|
|
202
213
|
suggested: '',
|
|
203
214
|
group: undefined,
|
|
204
215
|
isScrolling: false,
|
|
205
|
-
itemHeight: 0
|
|
216
|
+
itemHeight: 0,
|
|
217
|
+
state: undefined,
|
|
218
|
+
windowWidth: 0
|
|
206
219
|
};
|
|
207
220
|
},
|
|
208
221
|
created: function created() {
|
|
222
|
+
this.observer = null;
|
|
209
223
|
this.valueDuringOnChange = undefined;
|
|
210
224
|
this.currentText = undefined;
|
|
211
225
|
this.currentValue = undefined;
|
|
@@ -232,6 +246,10 @@ var ComboBoxVue2 = {
|
|
|
232
246
|
};
|
|
233
247
|
},
|
|
234
248
|
mounted: function mounted() {
|
|
249
|
+
this.observer = canUseDOM && new ResizeObserver(this.calculateMedia);
|
|
250
|
+
if ((document === null || document === void 0 ? void 0 : document.body) && this.observer) {
|
|
251
|
+
this.observer.observe(document.body);
|
|
252
|
+
}
|
|
235
253
|
this.hasMounted = true;
|
|
236
254
|
// @ts-ignore
|
|
237
255
|
this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;
|
|
@@ -240,6 +258,11 @@ var ComboBoxVue2 = {
|
|
|
240
258
|
this.base.didMount();
|
|
241
259
|
this.setValidity();
|
|
242
260
|
},
|
|
261
|
+
destroyed: !!isV3 ? undefined : function () {
|
|
262
|
+
if (this.observer) {
|
|
263
|
+
this.observer.disconnect();
|
|
264
|
+
}
|
|
265
|
+
},
|
|
243
266
|
updated: function updated() {
|
|
244
267
|
var _a;
|
|
245
268
|
var _b = this.$props,
|
|
@@ -249,7 +272,7 @@ var ComboBoxVue2 = {
|
|
|
249
272
|
virtual = _b.virtual,
|
|
250
273
|
groupField = _b.groupField,
|
|
251
274
|
textField = _b.textField;
|
|
252
|
-
var opened = this
|
|
275
|
+
var opened = this.isOpen;
|
|
253
276
|
var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;
|
|
254
277
|
var opening = !prevOpened && opened;
|
|
255
278
|
var closing = prevOpened && !opened;
|
|
@@ -331,6 +354,13 @@ var ComboBoxVue2 = {
|
|
|
331
354
|
this.virtualTotalHasChanged = true;
|
|
332
355
|
}
|
|
333
356
|
this.virtualHasChanged = true;
|
|
357
|
+
},
|
|
358
|
+
isOpen: function isOpen() {
|
|
359
|
+
var _this = this;
|
|
360
|
+
setTimeout(function () {
|
|
361
|
+
var listItem = document.querySelector('.k-list-item');
|
|
362
|
+
_this.itemHeight = _this.base.getListItemHeight(listItem);
|
|
363
|
+
}, 100);
|
|
334
364
|
}
|
|
335
365
|
},
|
|
336
366
|
computed: {
|
|
@@ -358,6 +388,30 @@ var ComboBoxVue2 = {
|
|
|
358
388
|
'k-rtl': this.$props.dir === 'rtl'
|
|
359
389
|
};
|
|
360
390
|
}
|
|
391
|
+
},
|
|
392
|
+
isOpen: {
|
|
393
|
+
get: function get() {
|
|
394
|
+
return this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
395
|
+
}
|
|
396
|
+
},
|
|
397
|
+
animationStyles: {
|
|
398
|
+
get: function get() {
|
|
399
|
+
return this.windowWidth <= MOBILE_SMALL_DEVICE ? {
|
|
400
|
+
top: 0,
|
|
401
|
+
width: '100%',
|
|
402
|
+
height: '100%'
|
|
403
|
+
} : undefined;
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
classNameAdaptive: {
|
|
407
|
+
get: function get() {
|
|
408
|
+
return this.windowWidth <= MOBILE_SMALL_DEVICE ? 'k-adaptive-actionsheet k-actionsheet-fullscreen' : 'k-adaptive-actionsheet k-actionsheet-bottom';
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
adaptiveState: {
|
|
412
|
+
get: function get() {
|
|
413
|
+
return this.windowWidth <= MOBILE_MEDIUM_DEVICE && this.$props.adaptive;
|
|
414
|
+
}
|
|
361
415
|
}
|
|
362
416
|
},
|
|
363
417
|
methods: {
|
|
@@ -451,8 +505,13 @@ var ComboBoxVue2 = {
|
|
|
451
505
|
},
|
|
452
506
|
toggleBtnClick: function toggleBtnClick(event) {
|
|
453
507
|
var state = this.base.initState();
|
|
508
|
+
var opened = this.isOpen;
|
|
509
|
+
var renderAdaptive = this.adaptiveState;
|
|
454
510
|
state.event = event;
|
|
455
511
|
this.base.togglePopup(state);
|
|
512
|
+
if (!opened && renderAdaptive) {
|
|
513
|
+
this.base.filterChanged('', state);
|
|
514
|
+
}
|
|
456
515
|
this.applyState(state);
|
|
457
516
|
},
|
|
458
517
|
applyValueOnEnter: function applyValueOnEnter(value, state) {
|
|
@@ -462,7 +521,7 @@ var ComboBoxVue2 = {
|
|
|
462
521
|
dataItems = _c === void 0 ? [] : _c,
|
|
463
522
|
textField = _b.textField,
|
|
464
523
|
allowCustom = _b.allowCustom;
|
|
465
|
-
var opened = this
|
|
524
|
+
var opened = this.isOpen;
|
|
466
525
|
var currentValueText = getItemValue(this.computedValue(), textField);
|
|
467
526
|
var valueIndex = currentValueText === value ? this.index : getItemIndexByText(dataItems, value, textField);
|
|
468
527
|
var itemSelected = valueIndex !== -1;
|
|
@@ -496,11 +555,11 @@ var ComboBoxVue2 = {
|
|
|
496
555
|
dataItems = _c === void 0 ? [] : _c,
|
|
497
556
|
textField = _b.textField,
|
|
498
557
|
allowCustom = _b.allowCustom;
|
|
499
|
-
var opened = this
|
|
558
|
+
var opened = this.isOpen;
|
|
500
559
|
var valueItemText = getItemValue(this.computedValue(), textField);
|
|
501
560
|
this.suggested = '';
|
|
502
561
|
if (text === valueItemText || text === '' && !isPresent(valueItemText)) {
|
|
503
|
-
if (opened) {
|
|
562
|
+
if (opened && !this.adaptiveState) {
|
|
504
563
|
this.base.togglePopup(state);
|
|
505
564
|
}
|
|
506
565
|
return this.applyState(state);
|
|
@@ -519,13 +578,13 @@ var ComboBoxVue2 = {
|
|
|
519
578
|
state.data.currentText = undefined;
|
|
520
579
|
this.base.filterChanged('', state);
|
|
521
580
|
}
|
|
522
|
-
if (opened) {
|
|
581
|
+
if (opened && !this.adaptiveState) {
|
|
523
582
|
this.base.togglePopup(state);
|
|
524
583
|
}
|
|
525
584
|
this.applyState(state);
|
|
526
585
|
},
|
|
527
586
|
selectFocusedItem: function selectFocusedItem(text, state) {
|
|
528
|
-
var opened = this
|
|
587
|
+
var opened = this.isOpen;
|
|
529
588
|
var _a = this.$props,
|
|
530
589
|
_b = _a.dataItems,
|
|
531
590
|
dataItems = _b === void 0 ? [] : _b,
|
|
@@ -576,7 +635,7 @@ var ComboBoxVue2 = {
|
|
|
576
635
|
this.isScrolling = false;
|
|
577
636
|
}
|
|
578
637
|
var keyCode = event.keyCode;
|
|
579
|
-
var opened = this
|
|
638
|
+
var opened = this.isOpen;
|
|
580
639
|
var state = this.base.initState();
|
|
581
640
|
state.event = event;
|
|
582
641
|
if (!event.altKey && (keyCode === Keys.up || keyCode === Keys.down)) {
|
|
@@ -597,6 +656,10 @@ var ComboBoxVue2 = {
|
|
|
597
656
|
event.preventDefault();
|
|
598
657
|
this.applyValueOnEnter(event.currentTarget.value, state);
|
|
599
658
|
} else if (keyCode === Keys.esc) {
|
|
659
|
+
if (this.adaptiveState) {
|
|
660
|
+
this.toggleBtnClick(event); // Handle the closing on "Esc" key press in adaptive mode
|
|
661
|
+
}
|
|
662
|
+
|
|
600
663
|
togglePopup();
|
|
601
664
|
}
|
|
602
665
|
} else {
|
|
@@ -610,7 +673,7 @@ var ComboBoxVue2 = {
|
|
|
610
673
|
inputOnChange: function inputOnChange(event) {
|
|
611
674
|
var state = this.base.initState();
|
|
612
675
|
state.event = event;
|
|
613
|
-
var opened = this
|
|
676
|
+
var opened = this.isOpen;
|
|
614
677
|
var input = event.currentTarget;
|
|
615
678
|
var value = input.value;
|
|
616
679
|
if (this.$props.suggest) {
|
|
@@ -656,7 +719,7 @@ var ComboBoxVue2 = {
|
|
|
656
719
|
state.data.currentText = undefined;
|
|
657
720
|
}
|
|
658
721
|
this.triggerOnChange(null, state);
|
|
659
|
-
var opened = this
|
|
722
|
+
var opened = this.isOpen;
|
|
660
723
|
if (opened) {
|
|
661
724
|
this.base.togglePopup(state);
|
|
662
725
|
}
|
|
@@ -714,6 +777,12 @@ var ComboBoxVue2 = {
|
|
|
714
777
|
this.base.applyState(state);
|
|
715
778
|
this.valueDuringOnChange = undefined;
|
|
716
779
|
},
|
|
780
|
+
calculateMedia: function calculateMedia(entries) {
|
|
781
|
+
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
|
|
782
|
+
var entry = entries_1[_i];
|
|
783
|
+
this.windowWidth = entry.target.clientWidth;
|
|
784
|
+
}
|
|
785
|
+
},
|
|
717
786
|
repositionPopup: function repositionPopup() {
|
|
718
787
|
this.base.repositionPopup();
|
|
719
788
|
},
|
|
@@ -727,6 +796,7 @@ var ComboBoxVue2 = {
|
|
|
727
796
|
var groupField = this.$props.groupField;
|
|
728
797
|
var _b = this.$props.dataItems,
|
|
729
798
|
dataItems = _b === void 0 ? [] : _b;
|
|
799
|
+
var group;
|
|
730
800
|
if (!groupField || !dataItems.length) {
|
|
731
801
|
return;
|
|
732
802
|
}
|
|
@@ -735,8 +805,8 @@ var ComboBoxVue2 = {
|
|
|
735
805
|
var scrollTop = target.scrollTop - vs.skip * itemHeight;
|
|
736
806
|
if (groupField) {
|
|
737
807
|
dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
|
|
808
|
+
group = dataItems[0][groupField];
|
|
738
809
|
}
|
|
739
|
-
var group = dataItems[0][groupField];
|
|
740
810
|
for (var i = 1; i < dataItems.length; i++) {
|
|
741
811
|
if (itemHeight * i > scrollTop) {
|
|
742
812
|
break;
|
|
@@ -753,6 +823,7 @@ var ComboBoxVue2 = {
|
|
|
753
823
|
},
|
|
754
824
|
render: function render(createElement) {
|
|
755
825
|
var _a;
|
|
826
|
+
var _this = this;
|
|
756
827
|
var h = gh || createElement;
|
|
757
828
|
var _b = this.$props,
|
|
758
829
|
dir = _b.dir,
|
|
@@ -769,7 +840,12 @@ var ComboBoxVue2 = {
|
|
|
769
840
|
virtual = _b.virtual,
|
|
770
841
|
size = _b.size,
|
|
771
842
|
fillMode = _b.fillMode,
|
|
772
|
-
rounded = _b.rounded
|
|
843
|
+
rounded = _b.rounded,
|
|
844
|
+
adaptiveTitle = _b.adaptiveTitle,
|
|
845
|
+
header = _b.header,
|
|
846
|
+
footer = _b.footer,
|
|
847
|
+
groupStickyHeaderItemRender = _b.groupStickyHeaderItemRender,
|
|
848
|
+
placeholder = _b.placeholder;
|
|
773
849
|
var focused = this.currentFocused;
|
|
774
850
|
var isValid = !this.$props.validityStyles || this.validity().valid;
|
|
775
851
|
var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;
|
|
@@ -784,12 +860,146 @@ var ComboBoxVue2 = {
|
|
|
784
860
|
height: '200px'
|
|
785
861
|
}, this.$props.popupSettings);
|
|
786
862
|
var ariaLabelExpandButton = provideLocalizationService(this).toLanguageString(expandButton, messages[expandButton]);
|
|
863
|
+
var opened = this.isOpen;
|
|
864
|
+
var renderAdaptive = this.adaptiveState;
|
|
787
865
|
vs.enabled = virtual !== undefined;
|
|
788
866
|
if (virtual !== undefined) {
|
|
789
867
|
vs.skip = virtual.skip;
|
|
790
868
|
vs.total = virtual.total;
|
|
791
869
|
vs.pageSize = virtual.pageSize;
|
|
792
870
|
}
|
|
871
|
+
if (this.group === undefined && this.$props.groupField !== undefined) {
|
|
872
|
+
this.group = getItemValue(this.$props.dataItems[0], this.$props.groupField);
|
|
873
|
+
}
|
|
874
|
+
var handleMobileFilterChange = function handleMobileFilterChange(event) {
|
|
875
|
+
var state = _this.base.initState();
|
|
876
|
+
state.event = event;
|
|
877
|
+
var eventTargetValue = event.event.target.value;
|
|
878
|
+
state.data.text = eventTargetValue;
|
|
879
|
+
_this.base.filterChanged(eventTargetValue, state);
|
|
880
|
+
_this.applyState(state);
|
|
881
|
+
};
|
|
882
|
+
var adaptiveActionSheetHeaderTemplateDef = function adaptiveActionSheetHeaderTemplateDef() {
|
|
883
|
+
return [h("div", {
|
|
884
|
+
"class": "k-actionsheet-titlebar-group k-hbox"
|
|
885
|
+
}, [h("div", {
|
|
886
|
+
"class": "k-actionsheet-title"
|
|
887
|
+
}, [h("div", {
|
|
888
|
+
"class": "k-text-center"
|
|
889
|
+
}, [adaptiveTitle]), placeholder && h("div", {
|
|
890
|
+
"class": "k-actionsheet-subtitle k-text-center"
|
|
891
|
+
}, [placeholder])]), h("div", {
|
|
892
|
+
"class": "k-actionsheet-actions"
|
|
893
|
+
}, [h(KButton, {
|
|
894
|
+
tabindex: 5,
|
|
895
|
+
attrs: this.v3 ? undefined : {
|
|
896
|
+
tabindex: 5,
|
|
897
|
+
"aria-label": "Cancel",
|
|
898
|
+
"aria-disabled": "false",
|
|
899
|
+
type: "button",
|
|
900
|
+
fillMode: "flat",
|
|
901
|
+
icon: "x",
|
|
902
|
+
svgIcon: xIcon
|
|
903
|
+
},
|
|
904
|
+
"aria-label": "Cancel",
|
|
905
|
+
"aria-disabled": "false",
|
|
906
|
+
type: "button",
|
|
907
|
+
fillMode: "flat",
|
|
908
|
+
onClick: _this.toggleBtnClick,
|
|
909
|
+
on: this.v3 ? undefined : {
|
|
910
|
+
"click": _this.toggleBtnClick
|
|
911
|
+
},
|
|
912
|
+
icon: "x",
|
|
913
|
+
svgIcon: xIcon
|
|
914
|
+
})])]), h("div", {
|
|
915
|
+
"class": "k-actionsheet-titlebar-group k-actionsheet-filter"
|
|
916
|
+
}, [renderMobileListFilter.call(_this)])];
|
|
917
|
+
};
|
|
918
|
+
var adaptiveActionSheetHeaderTemplate = templateRendering.call(this, adaptiveActionSheetHeaderTemplateDef, getListeners.call(this));
|
|
919
|
+
var adaptiveActionSheetContentTemplateDef = function adaptiveActionSheetContentTemplateDef() {
|
|
920
|
+
var _a;
|
|
921
|
+
var headerToRender = base.getTemplateDef.call(_this, header, h);
|
|
922
|
+
var footerToRender = base.getTemplateDef.call(_this, footer, h);
|
|
923
|
+
var groupStickyHeaderTemplate = templateRendering.call(_this, groupStickyHeaderItemRender, getListeners.call(_this));
|
|
924
|
+
var dataItems = _this.$props.dataItems || [];
|
|
925
|
+
return h("div", {
|
|
926
|
+
"class": "k-list-container"
|
|
927
|
+
}, [headerToRender && h("div", {
|
|
928
|
+
"class": "k-list-header"
|
|
929
|
+
}, [headerToRender]), h("div", {
|
|
930
|
+
"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))
|
|
931
|
+
}, [header && h("div", {
|
|
932
|
+
"class": "k-list-header"
|
|
933
|
+
}, [header]), _this.group && dataItems.length !== 0 && h(GroupStickyHeader, {
|
|
934
|
+
group: _this.group,
|
|
935
|
+
attrs: this.v3 ? undefined : {
|
|
936
|
+
group: _this.group,
|
|
937
|
+
render: groupStickyHeaderTemplate
|
|
938
|
+
},
|
|
939
|
+
render: groupStickyHeaderTemplate
|
|
940
|
+
}), renderList.call(_this), footerToRender && h("div", {
|
|
941
|
+
className: "k-list-footer",
|
|
942
|
+
attrs: this.v3 ? undefined : {
|
|
943
|
+
className: "k-list-footer"
|
|
944
|
+
}
|
|
945
|
+
}, [footerToRender])])]);
|
|
946
|
+
};
|
|
947
|
+
var adaptiveActionSheetContentTemplate = templateRendering.call(this, adaptiveActionSheetContentTemplateDef, getListeners.call(this));
|
|
948
|
+
var renderAdaptiveListContainer = function renderAdaptiveListContainer() {
|
|
949
|
+
return h(ActionSheet, {
|
|
950
|
+
expand: opened,
|
|
951
|
+
attrs: this.v3 ? undefined : {
|
|
952
|
+
expand: opened,
|
|
953
|
+
animation: true,
|
|
954
|
+
animationStyles: this.animationStyles,
|
|
955
|
+
className: this.classNameAdaptive,
|
|
956
|
+
contentClassName: '!k-overflow-hidden',
|
|
957
|
+
header: adaptiveActionSheetHeaderTemplate,
|
|
958
|
+
content: adaptiveActionSheetContentTemplate,
|
|
959
|
+
navigatableElements: ['input.k-input-inner', '.k-actionsheet-actions > button']
|
|
960
|
+
},
|
|
961
|
+
animation: true,
|
|
962
|
+
animationStyles: this.animationStyles,
|
|
963
|
+
className: this.classNameAdaptive,
|
|
964
|
+
contentClassName: '!k-overflow-hidden',
|
|
965
|
+
header: adaptiveActionSheetHeaderTemplate,
|
|
966
|
+
content: adaptiveActionSheetContentTemplate,
|
|
967
|
+
onClose: this.toggleBtnClick,
|
|
968
|
+
on: this.v3 ? undefined : {
|
|
969
|
+
"close": this.toggleBtnClick
|
|
970
|
+
},
|
|
971
|
+
navigatableElements: ['input.k-input-inner', '.k-actionsheet-actions > button']
|
|
972
|
+
});
|
|
973
|
+
};
|
|
974
|
+
var renderMobileListFilter = function renderMobileListFilter() {
|
|
975
|
+
var state = this.base.initState();
|
|
976
|
+
var mobileText = state.data.text;
|
|
977
|
+
return h(ListFilter, {
|
|
978
|
+
adaptiveMode: true,
|
|
979
|
+
attrs: this.v3 ? undefined : {
|
|
980
|
+
adaptiveMode: true,
|
|
981
|
+
value: mobileText,
|
|
982
|
+
size: this.$props.size,
|
|
983
|
+
rounded: this.$props.rounded,
|
|
984
|
+
fillMode: this.$props.fillMode
|
|
985
|
+
},
|
|
986
|
+
value: mobileText,
|
|
987
|
+
ref: 'filterInput',
|
|
988
|
+
onChange: function onChange(ev) {
|
|
989
|
+
return handleMobileFilterChange(ev);
|
|
990
|
+
},
|
|
991
|
+
on: this.v3 ? undefined : {
|
|
992
|
+
"change": function onChange(ev) {
|
|
993
|
+
return handleMobileFilterChange(ev);
|
|
994
|
+
},
|
|
995
|
+
"keydown": this.onInputKeyDown
|
|
996
|
+
},
|
|
997
|
+
onKeydown: this.onInputKeyDown,
|
|
998
|
+
size: this.$props.size,
|
|
999
|
+
rounded: this.$props.rounded,
|
|
1000
|
+
fillMode: this.$props.fillMode
|
|
1001
|
+
});
|
|
1002
|
+
};
|
|
793
1003
|
var renderList = function renderList() {
|
|
794
1004
|
var _this2 = this;
|
|
795
1005
|
var _a;
|
|
@@ -806,7 +1016,6 @@ var ComboBoxVue2 = {
|
|
|
806
1016
|
};
|
|
807
1017
|
}
|
|
808
1018
|
var skip = virtual.skip;
|
|
809
|
-
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
810
1019
|
var translate = "translateY(".concat(vs.translate, "px)");
|
|
811
1020
|
var focusedIndex = opened ? this.getFocusedIndex() : undefined;
|
|
812
1021
|
var value = isPresent(text) && text !== selectedItemText ? null : this.computedValue();
|
|
@@ -827,7 +1036,7 @@ var ComboBoxVue2 = {
|
|
|
827
1036
|
valueField: dataItemKey,
|
|
828
1037
|
optionsGuid: base.guid,
|
|
829
1038
|
wrapperStyle: {
|
|
830
|
-
maxHeight: popupSettings.height
|
|
1039
|
+
maxHeight: !renderAdaptive ? popupSettings.height : undefined
|
|
831
1040
|
},
|
|
832
1041
|
wrapperCssClass: classNames('k-list-content', (_a = {}, _a['k-list-scroller'] = !this.$props.virtual, _a)),
|
|
833
1042
|
listStyle: vs.enabled ? {
|
|
@@ -848,7 +1057,7 @@ var ComboBoxVue2 = {
|
|
|
848
1057
|
optionsGuid: base.guid,
|
|
849
1058
|
ref: 'list',
|
|
850
1059
|
wrapperStyle: {
|
|
851
|
-
maxHeight: popupSettings.height
|
|
1060
|
+
maxHeight: !renderAdaptive ? popupSettings.height : undefined
|
|
852
1061
|
},
|
|
853
1062
|
wrapperCssClass: classNames('k-list-content', (_a = {}, _a['k-list-scroller'] = !this.$props.virtual, _a)),
|
|
854
1063
|
listStyle: vs.enabled ? {
|
|
@@ -880,18 +1089,9 @@ var ComboBoxVue2 = {
|
|
|
880
1089
|
var renderListContainer = function renderListContainer() {
|
|
881
1090
|
var _this3 = this;
|
|
882
1091
|
var _a;
|
|
883
|
-
var headerTemplate = templateRendering.call(this, this.$props.header, getListeners.call(this));
|
|
884
|
-
var footerTemplate = templateRendering.call(this, this.$props.footer, getListeners.call(this));
|
|
885
1092
|
var groupStickyHeaderTemplate = templateRendering.call(this, this.$props.groupStickyHeaderItemRender, getListeners.call(this));
|
|
886
|
-
var
|
|
887
|
-
|
|
888
|
-
template: headerTemplate
|
|
889
|
-
});
|
|
890
|
-
var footer = getTemplate.call(this, {
|
|
891
|
-
h: h,
|
|
892
|
-
template: footerTemplate
|
|
893
|
-
});
|
|
894
|
-
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
1093
|
+
var headerListContainer = base.getTemplateDef.call(this, header);
|
|
1094
|
+
var footerListContainer = base.getTemplateDef.call(this, footer);
|
|
895
1095
|
var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
|
|
896
1096
|
var dataItems = this.$props.dataItems || [];
|
|
897
1097
|
if (this.group === undefined && this.$props.groupField !== undefined) {
|
|
@@ -928,36 +1128,35 @@ var ComboBoxVue2 = {
|
|
|
928
1128
|
}),
|
|
929
1129
|
dir: dir !== undefined ? dir : this.base.dirCalculated
|
|
930
1130
|
}, this.v3 ? function () {
|
|
931
|
-
return [
|
|
1131
|
+
return [headerListContainer && h("div", {
|
|
932
1132
|
"class": "k-list-header"
|
|
933
|
-
}, [
|
|
1133
|
+
}, [headerListContainer]), _this3.group && dataItems.length !== 0 && h(GroupStickyHeader, {
|
|
934
1134
|
group: _this3.group,
|
|
935
1135
|
attrs: _this3.v3 ? undefined : {
|
|
936
1136
|
group: _this3.group,
|
|
937
1137
|
render: groupStickyHeaderTemplate
|
|
938
1138
|
},
|
|
939
1139
|
render: groupStickyHeaderTemplate
|
|
940
|
-
}), renderList.call(_this3),
|
|
1140
|
+
}), renderList.call(_this3), footerListContainer && h("div", {
|
|
941
1141
|
"class": "k-list-footer"
|
|
942
|
-
}, [
|
|
943
|
-
} : [
|
|
1142
|
+
}, [footerListContainer])];
|
|
1143
|
+
} : [headerListContainer && h("div", {
|
|
944
1144
|
"class": "k-list-header"
|
|
945
|
-
}, [
|
|
1145
|
+
}, [headerListContainer]), _this3.group && dataItems.length !== 0 && h(GroupStickyHeader, {
|
|
946
1146
|
group: _this3.group,
|
|
947
1147
|
attrs: _this3.v3 ? undefined : {
|
|
948
1148
|
group: _this3.group,
|
|
949
1149
|
render: groupStickyHeaderTemplate
|
|
950
1150
|
},
|
|
951
1151
|
render: groupStickyHeaderTemplate
|
|
952
|
-
}), renderList.call(_this3),
|
|
1152
|
+
}), renderList.call(_this3), footerListContainer && h("div", {
|
|
953
1153
|
"class": "k-list-footer"
|
|
954
|
-
}, [
|
|
1154
|
+
}, [footerListContainer])])
|
|
955
1155
|
);
|
|
956
1156
|
};
|
|
957
1157
|
var renderSearchBar = function renderSearchBar(searchText, searchId) {
|
|
958
1158
|
var _this = this;
|
|
959
1159
|
var _a = this.$props,
|
|
960
|
-
placeholder = _a.placeholder,
|
|
961
1160
|
tabIndex = _a.tabIndex,
|
|
962
1161
|
_b = _a.dataItems,
|
|
963
1162
|
dataItems = _b === void 0 ? [] : _b,
|
|
@@ -967,7 +1166,6 @@ var ComboBoxVue2 = {
|
|
|
967
1166
|
skip: 0
|
|
968
1167
|
};
|
|
969
1168
|
}
|
|
970
|
-
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
971
1169
|
var value = this.computedValue();
|
|
972
1170
|
var selectedIndex = Math.max(0, dataItems.findIndex(function (i) {
|
|
973
1171
|
return areSame(i, value, dataItemKey);
|
|
@@ -1022,7 +1220,7 @@ var ComboBoxVue2 = {
|
|
|
1022
1220
|
})
|
|
1023
1221
|
);
|
|
1024
1222
|
};
|
|
1025
|
-
var
|
|
1223
|
+
var comboboxDefault = h("span", {
|
|
1026
1224
|
"class": classNames('k-combobox 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-loading'] = loading, _a['k-required'] = this.required, _a['k-disabled'] = disabled, _a['k-focus'] = focused && !disabled, _a), className),
|
|
1027
1225
|
ref: setRef(this, 'kendoAnchor', this.anchor),
|
|
1028
1226
|
style: !label ? style : __assign(__assign({}, style), {
|
|
@@ -1081,7 +1279,11 @@ var ComboBoxVue2 = {
|
|
|
1081
1279
|
onMousedown: function mousedown(e) {
|
|
1082
1280
|
return e.preventDefault();
|
|
1083
1281
|
}
|
|
1084
|
-
}), renderListContainer.call(this)]);
|
|
1282
|
+
}), !renderAdaptive && renderListContainer.call(this)]);
|
|
1283
|
+
// The following one combines the default rendering of the Combobox and the Adaptive rendering.
|
|
1284
|
+
// This is needed because of Vue 2 specifics
|
|
1285
|
+
var combobox = [comboboxDefault, renderAdaptive && renderAdaptiveListContainer.call(this)];
|
|
1286
|
+
var comboboxToRender = isV3 ? combobox : this.$props.adaptive ? h("span", [combobox]) : comboboxDefault;
|
|
1085
1287
|
return label ? h("span", {
|
|
1086
1288
|
"class": this.spanClassNames,
|
|
1087
1289
|
onFocusin: this.handleFocus,
|
|
@@ -1092,7 +1294,7 @@ var ComboBoxVue2 = {
|
|
|
1092
1294
|
attrs: this.v3 ? undefined : {
|
|
1093
1295
|
dir: this.$props.dir
|
|
1094
1296
|
}
|
|
1095
|
-
}, [
|
|
1297
|
+
}, [comboboxToRender, this.$props.label ? id ? h("label", {
|
|
1096
1298
|
"for": id,
|
|
1097
1299
|
attrs: this.v3 ? undefined : {
|
|
1098
1300
|
"for": id
|
|
@@ -1100,7 +1302,7 @@ var ComboBoxVue2 = {
|
|
|
1100
1302
|
"class": "k-label"
|
|
1101
1303
|
}, [this.$props.label]) : h("span", {
|
|
1102
1304
|
"class": "k-label"
|
|
1103
|
-
}, [this.$props.label]) : null]) :
|
|
1305
|
+
}, [this.$props.label]) : null]) : comboboxToRender;
|
|
1104
1306
|
}
|
|
1105
1307
|
};
|
|
1106
1308
|
/**
|
|
@@ -266,4 +266,12 @@ export interface ComboBoxProps extends FormComponentProps {
|
|
|
266
266
|
* Fires when a ComboBox sticky group header item is about to be rendered. Used to override the default appearance of the sticky group header of the component.
|
|
267
267
|
*/
|
|
268
268
|
groupStickyHeaderItemRender?: any;
|
|
269
|
+
/**
|
|
270
|
+
* Provides different rendering of the popup element based on the screen dimensions ([see example]({% slug adaptive_rendering_combobox %})).
|
|
271
|
+
*/
|
|
272
|
+
adaptive?: boolean;
|
|
273
|
+
/**
|
|
274
|
+
* Specifies the text that is rendered as title in the adaptive popup ([see example]({% slug adaptive_rendering_combobox %})).
|
|
275
|
+
*/
|
|
276
|
+
adaptiveTitle?: string;
|
|
269
277
|
}
|