@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
|
@@ -37,6 +37,9 @@ var ClearButton_1 = require("../common/ClearButton");
|
|
|
37
37
|
var kendo_vue_intl_1 = require("@progress/kendo-vue-intl");
|
|
38
38
|
var main_1 = require("../messages/main");
|
|
39
39
|
var kendo_svg_icons_1 = require("@progress/kendo-svg-icons");
|
|
40
|
+
var constants_1 = require("../common/constants");
|
|
41
|
+
var kendo_vue_layout_1 = require("@progress/kendo-vue-layout");
|
|
42
|
+
var ListFilter_1 = require("../common/ListFilter");
|
|
40
43
|
var VALIDATION_MESSAGE = 'Please enter a valid value!';
|
|
41
44
|
/**
|
|
42
45
|
* @hidden
|
|
@@ -184,6 +187,14 @@ var ComboBoxVue2 = {
|
|
|
184
187
|
},
|
|
185
188
|
groupField: {
|
|
186
189
|
type: String
|
|
190
|
+
},
|
|
191
|
+
adaptive: {
|
|
192
|
+
type: Boolean,
|
|
193
|
+
default: undefined
|
|
194
|
+
},
|
|
195
|
+
adaptiveTitle: {
|
|
196
|
+
type: String,
|
|
197
|
+
default: undefined
|
|
187
198
|
}
|
|
188
199
|
},
|
|
189
200
|
inject: {
|
|
@@ -208,10 +219,13 @@ var ComboBoxVue2 = {
|
|
|
208
219
|
suggested: '',
|
|
209
220
|
group: undefined,
|
|
210
221
|
isScrolling: false,
|
|
211
|
-
itemHeight: 0
|
|
222
|
+
itemHeight: 0,
|
|
223
|
+
state: undefined,
|
|
224
|
+
windowWidth: 0
|
|
212
225
|
};
|
|
213
226
|
},
|
|
214
227
|
created: function created() {
|
|
228
|
+
this.observer = null;
|
|
215
229
|
this.valueDuringOnChange = undefined;
|
|
216
230
|
this.currentText = undefined;
|
|
217
231
|
this.currentValue = undefined;
|
|
@@ -238,6 +252,10 @@ var ComboBoxVue2 = {
|
|
|
238
252
|
};
|
|
239
253
|
},
|
|
240
254
|
mounted: function mounted() {
|
|
255
|
+
this.observer = kendo_vue_common_1.canUseDOM && new ResizeObserver(this.calculateMedia);
|
|
256
|
+
if ((document === null || document === void 0 ? void 0 : document.body) && this.observer) {
|
|
257
|
+
this.observer.observe(document.body);
|
|
258
|
+
}
|
|
241
259
|
this.hasMounted = true;
|
|
242
260
|
// @ts-ignore
|
|
243
261
|
this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;
|
|
@@ -246,6 +264,11 @@ var ComboBoxVue2 = {
|
|
|
246
264
|
this.base.didMount();
|
|
247
265
|
this.setValidity();
|
|
248
266
|
},
|
|
267
|
+
destroyed: !!isV3 ? undefined : function () {
|
|
268
|
+
if (this.observer) {
|
|
269
|
+
this.observer.disconnect();
|
|
270
|
+
}
|
|
271
|
+
},
|
|
249
272
|
updated: function updated() {
|
|
250
273
|
var _a;
|
|
251
274
|
var _b = this.$props,
|
|
@@ -255,7 +278,7 @@ var ComboBoxVue2 = {
|
|
|
255
278
|
virtual = _b.virtual,
|
|
256
279
|
groupField = _b.groupField,
|
|
257
280
|
textField = _b.textField;
|
|
258
|
-
var opened = this
|
|
281
|
+
var opened = this.isOpen;
|
|
259
282
|
var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;
|
|
260
283
|
var opening = !prevOpened && opened;
|
|
261
284
|
var closing = prevOpened && !opened;
|
|
@@ -337,6 +360,13 @@ var ComboBoxVue2 = {
|
|
|
337
360
|
this.virtualTotalHasChanged = true;
|
|
338
361
|
}
|
|
339
362
|
this.virtualHasChanged = true;
|
|
363
|
+
},
|
|
364
|
+
isOpen: function isOpen() {
|
|
365
|
+
var _this = this;
|
|
366
|
+
setTimeout(function () {
|
|
367
|
+
var listItem = document.querySelector('.k-list-item');
|
|
368
|
+
_this.itemHeight = _this.base.getListItemHeight(listItem);
|
|
369
|
+
}, 100);
|
|
340
370
|
}
|
|
341
371
|
},
|
|
342
372
|
computed: {
|
|
@@ -364,6 +394,30 @@ var ComboBoxVue2 = {
|
|
|
364
394
|
'k-rtl': this.$props.dir === 'rtl'
|
|
365
395
|
};
|
|
366
396
|
}
|
|
397
|
+
},
|
|
398
|
+
isOpen: {
|
|
399
|
+
get: function get() {
|
|
400
|
+
return this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
animationStyles: {
|
|
404
|
+
get: function get() {
|
|
405
|
+
return this.windowWidth <= constants_1.MOBILE_SMALL_DEVICE ? {
|
|
406
|
+
top: 0,
|
|
407
|
+
width: '100%',
|
|
408
|
+
height: '100%'
|
|
409
|
+
} : undefined;
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
classNameAdaptive: {
|
|
413
|
+
get: function get() {
|
|
414
|
+
return this.windowWidth <= constants_1.MOBILE_SMALL_DEVICE ? 'k-adaptive-actionsheet k-actionsheet-fullscreen' : 'k-adaptive-actionsheet k-actionsheet-bottom';
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
adaptiveState: {
|
|
418
|
+
get: function get() {
|
|
419
|
+
return this.windowWidth <= constants_1.MOBILE_MEDIUM_DEVICE && this.$props.adaptive;
|
|
420
|
+
}
|
|
367
421
|
}
|
|
368
422
|
},
|
|
369
423
|
methods: {
|
|
@@ -457,8 +511,13 @@ var ComboBoxVue2 = {
|
|
|
457
511
|
},
|
|
458
512
|
toggleBtnClick: function toggleBtnClick(event) {
|
|
459
513
|
var state = this.base.initState();
|
|
514
|
+
var opened = this.isOpen;
|
|
515
|
+
var renderAdaptive = this.adaptiveState;
|
|
460
516
|
state.event = event;
|
|
461
517
|
this.base.togglePopup(state);
|
|
518
|
+
if (!opened && renderAdaptive) {
|
|
519
|
+
this.base.filterChanged('', state);
|
|
520
|
+
}
|
|
462
521
|
this.applyState(state);
|
|
463
522
|
},
|
|
464
523
|
applyValueOnEnter: function applyValueOnEnter(value, state) {
|
|
@@ -468,7 +527,7 @@ var ComboBoxVue2 = {
|
|
|
468
527
|
dataItems = _c === void 0 ? [] : _c,
|
|
469
528
|
textField = _b.textField,
|
|
470
529
|
allowCustom = _b.allowCustom;
|
|
471
|
-
var opened = this
|
|
530
|
+
var opened = this.isOpen;
|
|
472
531
|
var currentValueText = (0, utils_1.getItemValue)(this.computedValue(), textField);
|
|
473
532
|
var valueIndex = currentValueText === value ? this.index : (0, utils_1.getItemIndexByText)(dataItems, value, textField);
|
|
474
533
|
var itemSelected = valueIndex !== -1;
|
|
@@ -502,11 +561,11 @@ var ComboBoxVue2 = {
|
|
|
502
561
|
dataItems = _c === void 0 ? [] : _c,
|
|
503
562
|
textField = _b.textField,
|
|
504
563
|
allowCustom = _b.allowCustom;
|
|
505
|
-
var opened = this
|
|
564
|
+
var opened = this.isOpen;
|
|
506
565
|
var valueItemText = (0, utils_1.getItemValue)(this.computedValue(), textField);
|
|
507
566
|
this.suggested = '';
|
|
508
567
|
if (text === valueItemText || text === '' && !(0, utils_1.isPresent)(valueItemText)) {
|
|
509
|
-
if (opened) {
|
|
568
|
+
if (opened && !this.adaptiveState) {
|
|
510
569
|
this.base.togglePopup(state);
|
|
511
570
|
}
|
|
512
571
|
return this.applyState(state);
|
|
@@ -525,13 +584,13 @@ var ComboBoxVue2 = {
|
|
|
525
584
|
state.data.currentText = undefined;
|
|
526
585
|
this.base.filterChanged('', state);
|
|
527
586
|
}
|
|
528
|
-
if (opened) {
|
|
587
|
+
if (opened && !this.adaptiveState) {
|
|
529
588
|
this.base.togglePopup(state);
|
|
530
589
|
}
|
|
531
590
|
this.applyState(state);
|
|
532
591
|
},
|
|
533
592
|
selectFocusedItem: function selectFocusedItem(text, state) {
|
|
534
|
-
var opened = this
|
|
593
|
+
var opened = this.isOpen;
|
|
535
594
|
var _a = this.$props,
|
|
536
595
|
_b = _a.dataItems,
|
|
537
596
|
dataItems = _b === void 0 ? [] : _b,
|
|
@@ -582,7 +641,7 @@ var ComboBoxVue2 = {
|
|
|
582
641
|
this.isScrolling = false;
|
|
583
642
|
}
|
|
584
643
|
var keyCode = event.keyCode;
|
|
585
|
-
var opened = this
|
|
644
|
+
var opened = this.isOpen;
|
|
586
645
|
var state = this.base.initState();
|
|
587
646
|
state.event = event;
|
|
588
647
|
if (!event.altKey && (keyCode === kendo_vue_common_1.Keys.up || keyCode === kendo_vue_common_1.Keys.down)) {
|
|
@@ -603,6 +662,10 @@ var ComboBoxVue2 = {
|
|
|
603
662
|
event.preventDefault();
|
|
604
663
|
this.applyValueOnEnter(event.currentTarget.value, state);
|
|
605
664
|
} else if (keyCode === kendo_vue_common_1.Keys.esc) {
|
|
665
|
+
if (this.adaptiveState) {
|
|
666
|
+
this.toggleBtnClick(event); // Handle the closing on "Esc" key press in adaptive mode
|
|
667
|
+
}
|
|
668
|
+
|
|
606
669
|
togglePopup();
|
|
607
670
|
}
|
|
608
671
|
} else {
|
|
@@ -616,7 +679,7 @@ var ComboBoxVue2 = {
|
|
|
616
679
|
inputOnChange: function inputOnChange(event) {
|
|
617
680
|
var state = this.base.initState();
|
|
618
681
|
state.event = event;
|
|
619
|
-
var opened = this
|
|
682
|
+
var opened = this.isOpen;
|
|
620
683
|
var input = event.currentTarget;
|
|
621
684
|
var value = input.value;
|
|
622
685
|
if (this.$props.suggest) {
|
|
@@ -662,7 +725,7 @@ var ComboBoxVue2 = {
|
|
|
662
725
|
state.data.currentText = undefined;
|
|
663
726
|
}
|
|
664
727
|
this.triggerOnChange(null, state);
|
|
665
|
-
var opened = this
|
|
728
|
+
var opened = this.isOpen;
|
|
666
729
|
if (opened) {
|
|
667
730
|
this.base.togglePopup(state);
|
|
668
731
|
}
|
|
@@ -720,6 +783,12 @@ var ComboBoxVue2 = {
|
|
|
720
783
|
this.base.applyState(state);
|
|
721
784
|
this.valueDuringOnChange = undefined;
|
|
722
785
|
},
|
|
786
|
+
calculateMedia: function calculateMedia(entries) {
|
|
787
|
+
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
|
|
788
|
+
var entry = entries_1[_i];
|
|
789
|
+
this.windowWidth = entry.target.clientWidth;
|
|
790
|
+
}
|
|
791
|
+
},
|
|
723
792
|
repositionPopup: function repositionPopup() {
|
|
724
793
|
this.base.repositionPopup();
|
|
725
794
|
},
|
|
@@ -733,6 +802,7 @@ var ComboBoxVue2 = {
|
|
|
733
802
|
var groupField = this.$props.groupField;
|
|
734
803
|
var _b = this.$props.dataItems,
|
|
735
804
|
dataItems = _b === void 0 ? [] : _b;
|
|
805
|
+
var group;
|
|
736
806
|
if (!groupField || !dataItems.length) {
|
|
737
807
|
return;
|
|
738
808
|
}
|
|
@@ -741,8 +811,8 @@ var ComboBoxVue2 = {
|
|
|
741
811
|
var scrollTop = target.scrollTop - vs.skip * itemHeight;
|
|
742
812
|
if (groupField) {
|
|
743
813
|
dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
|
|
814
|
+
group = dataItems[0][groupField];
|
|
744
815
|
}
|
|
745
|
-
var group = dataItems[0][groupField];
|
|
746
816
|
for (var i = 1; i < dataItems.length; i++) {
|
|
747
817
|
if (itemHeight * i > scrollTop) {
|
|
748
818
|
break;
|
|
@@ -759,6 +829,7 @@ var ComboBoxVue2 = {
|
|
|
759
829
|
},
|
|
760
830
|
render: function render(createElement) {
|
|
761
831
|
var _a;
|
|
832
|
+
var _this = this;
|
|
762
833
|
var h = gh || createElement;
|
|
763
834
|
var _b = this.$props,
|
|
764
835
|
dir = _b.dir,
|
|
@@ -775,7 +846,12 @@ var ComboBoxVue2 = {
|
|
|
775
846
|
virtual = _b.virtual,
|
|
776
847
|
size = _b.size,
|
|
777
848
|
fillMode = _b.fillMode,
|
|
778
|
-
rounded = _b.rounded
|
|
849
|
+
rounded = _b.rounded,
|
|
850
|
+
adaptiveTitle = _b.adaptiveTitle,
|
|
851
|
+
header = _b.header,
|
|
852
|
+
footer = _b.footer,
|
|
853
|
+
groupStickyHeaderItemRender = _b.groupStickyHeaderItemRender,
|
|
854
|
+
placeholder = _b.placeholder;
|
|
779
855
|
var focused = this.currentFocused;
|
|
780
856
|
var isValid = !this.$props.validityStyles || this.validity().valid;
|
|
781
857
|
var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;
|
|
@@ -790,12 +866,146 @@ var ComboBoxVue2 = {
|
|
|
790
866
|
height: '200px'
|
|
791
867
|
}, this.$props.popupSettings);
|
|
792
868
|
var ariaLabelExpandButton = (0, kendo_vue_intl_1.provideLocalizationService)(this).toLanguageString(main_1.expandButton, main_1.messages[main_1.expandButton]);
|
|
869
|
+
var opened = this.isOpen;
|
|
870
|
+
var renderAdaptive = this.adaptiveState;
|
|
793
871
|
vs.enabled = virtual !== undefined;
|
|
794
872
|
if (virtual !== undefined) {
|
|
795
873
|
vs.skip = virtual.skip;
|
|
796
874
|
vs.total = virtual.total;
|
|
797
875
|
vs.pageSize = virtual.pageSize;
|
|
798
876
|
}
|
|
877
|
+
if (this.group === undefined && this.$props.groupField !== undefined) {
|
|
878
|
+
this.group = (0, utils_1.getItemValue)(this.$props.dataItems[0], this.$props.groupField);
|
|
879
|
+
}
|
|
880
|
+
var handleMobileFilterChange = function handleMobileFilterChange(event) {
|
|
881
|
+
var state = _this.base.initState();
|
|
882
|
+
state.event = event;
|
|
883
|
+
var eventTargetValue = event.event.target.value;
|
|
884
|
+
state.data.text = eventTargetValue;
|
|
885
|
+
_this.base.filterChanged(eventTargetValue, state);
|
|
886
|
+
_this.applyState(state);
|
|
887
|
+
};
|
|
888
|
+
var adaptiveActionSheetHeaderTemplateDef = function adaptiveActionSheetHeaderTemplateDef() {
|
|
889
|
+
return [h("div", {
|
|
890
|
+
"class": "k-actionsheet-titlebar-group k-hbox"
|
|
891
|
+
}, [h("div", {
|
|
892
|
+
"class": "k-actionsheet-title"
|
|
893
|
+
}, [h("div", {
|
|
894
|
+
"class": "k-text-center"
|
|
895
|
+
}, [adaptiveTitle]), placeholder && h("div", {
|
|
896
|
+
"class": "k-actionsheet-subtitle k-text-center"
|
|
897
|
+
}, [placeholder])]), h("div", {
|
|
898
|
+
"class": "k-actionsheet-actions"
|
|
899
|
+
}, [h(kendo_vue_buttons_1.Button, {
|
|
900
|
+
tabindex: 5,
|
|
901
|
+
attrs: this.v3 ? undefined : {
|
|
902
|
+
tabindex: 5,
|
|
903
|
+
"aria-label": "Cancel",
|
|
904
|
+
"aria-disabled": "false",
|
|
905
|
+
type: "button",
|
|
906
|
+
fillMode: "flat",
|
|
907
|
+
icon: "x",
|
|
908
|
+
svgIcon: kendo_svg_icons_1.xIcon
|
|
909
|
+
},
|
|
910
|
+
"aria-label": "Cancel",
|
|
911
|
+
"aria-disabled": "false",
|
|
912
|
+
type: "button",
|
|
913
|
+
fillMode: "flat",
|
|
914
|
+
onClick: _this.toggleBtnClick,
|
|
915
|
+
on: this.v3 ? undefined : {
|
|
916
|
+
"click": _this.toggleBtnClick
|
|
917
|
+
},
|
|
918
|
+
icon: "x",
|
|
919
|
+
svgIcon: kendo_svg_icons_1.xIcon
|
|
920
|
+
})])]), h("div", {
|
|
921
|
+
"class": "k-actionsheet-titlebar-group k-actionsheet-filter"
|
|
922
|
+
}, [renderMobileListFilter.call(_this)])];
|
|
923
|
+
};
|
|
924
|
+
var adaptiveActionSheetHeaderTemplate = kendo_vue_common_1.templateRendering.call(this, adaptiveActionSheetHeaderTemplateDef, kendo_vue_common_1.getListeners.call(this));
|
|
925
|
+
var adaptiveActionSheetContentTemplateDef = function adaptiveActionSheetContentTemplateDef() {
|
|
926
|
+
var _a;
|
|
927
|
+
var headerToRender = base.getTemplateDef.call(_this, header, h);
|
|
928
|
+
var footerToRender = base.getTemplateDef.call(_this, footer, h);
|
|
929
|
+
var groupStickyHeaderTemplate = kendo_vue_common_1.templateRendering.call(_this, groupStickyHeaderItemRender, kendo_vue_common_1.getListeners.call(_this));
|
|
930
|
+
var dataItems = _this.$props.dataItems || [];
|
|
931
|
+
return h("div", {
|
|
932
|
+
"class": "k-list-container"
|
|
933
|
+
}, [headerToRender && h("div", {
|
|
934
|
+
"class": "k-list-header"
|
|
935
|
+
}, [headerToRender]), h("div", {
|
|
936
|
+
"class": (0, kendo_vue_common_1.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))
|
|
937
|
+
}, [header && h("div", {
|
|
938
|
+
"class": "k-list-header"
|
|
939
|
+
}, [header]), _this.group && dataItems.length !== 0 && h(GroupStickyHeader_1.GroupStickyHeader, {
|
|
940
|
+
group: _this.group,
|
|
941
|
+
attrs: this.v3 ? undefined : {
|
|
942
|
+
group: _this.group,
|
|
943
|
+
render: groupStickyHeaderTemplate
|
|
944
|
+
},
|
|
945
|
+
render: groupStickyHeaderTemplate
|
|
946
|
+
}), renderList.call(_this), footerToRender && h("div", {
|
|
947
|
+
className: "k-list-footer",
|
|
948
|
+
attrs: this.v3 ? undefined : {
|
|
949
|
+
className: "k-list-footer"
|
|
950
|
+
}
|
|
951
|
+
}, [footerToRender])])]);
|
|
952
|
+
};
|
|
953
|
+
var adaptiveActionSheetContentTemplate = kendo_vue_common_1.templateRendering.call(this, adaptiveActionSheetContentTemplateDef, kendo_vue_common_1.getListeners.call(this));
|
|
954
|
+
var renderAdaptiveListContainer = function renderAdaptiveListContainer() {
|
|
955
|
+
return h(kendo_vue_layout_1.ActionSheet, {
|
|
956
|
+
expand: opened,
|
|
957
|
+
attrs: this.v3 ? undefined : {
|
|
958
|
+
expand: opened,
|
|
959
|
+
animation: true,
|
|
960
|
+
animationStyles: this.animationStyles,
|
|
961
|
+
className: this.classNameAdaptive,
|
|
962
|
+
contentClassName: '!k-overflow-hidden',
|
|
963
|
+
header: adaptiveActionSheetHeaderTemplate,
|
|
964
|
+
content: adaptiveActionSheetContentTemplate,
|
|
965
|
+
navigatableElements: ['input.k-input-inner', '.k-actionsheet-actions > button']
|
|
966
|
+
},
|
|
967
|
+
animation: true,
|
|
968
|
+
animationStyles: this.animationStyles,
|
|
969
|
+
className: this.classNameAdaptive,
|
|
970
|
+
contentClassName: '!k-overflow-hidden',
|
|
971
|
+
header: adaptiveActionSheetHeaderTemplate,
|
|
972
|
+
content: adaptiveActionSheetContentTemplate,
|
|
973
|
+
onClose: this.toggleBtnClick,
|
|
974
|
+
on: this.v3 ? undefined : {
|
|
975
|
+
"close": this.toggleBtnClick
|
|
976
|
+
},
|
|
977
|
+
navigatableElements: ['input.k-input-inner', '.k-actionsheet-actions > button']
|
|
978
|
+
});
|
|
979
|
+
};
|
|
980
|
+
var renderMobileListFilter = function renderMobileListFilter() {
|
|
981
|
+
var state = this.base.initState();
|
|
982
|
+
var mobileText = state.data.text;
|
|
983
|
+
return h(ListFilter_1.ListFilter, {
|
|
984
|
+
adaptiveMode: true,
|
|
985
|
+
attrs: this.v3 ? undefined : {
|
|
986
|
+
adaptiveMode: true,
|
|
987
|
+
value: mobileText,
|
|
988
|
+
size: this.$props.size,
|
|
989
|
+
rounded: this.$props.rounded,
|
|
990
|
+
fillMode: this.$props.fillMode
|
|
991
|
+
},
|
|
992
|
+
value: mobileText,
|
|
993
|
+
ref: 'filterInput',
|
|
994
|
+
onChange: function onChange(ev) {
|
|
995
|
+
return handleMobileFilterChange(ev);
|
|
996
|
+
},
|
|
997
|
+
on: this.v3 ? undefined : {
|
|
998
|
+
"change": function onChange(ev) {
|
|
999
|
+
return handleMobileFilterChange(ev);
|
|
1000
|
+
},
|
|
1001
|
+
"keydown": this.onInputKeyDown
|
|
1002
|
+
},
|
|
1003
|
+
onKeydown: this.onInputKeyDown,
|
|
1004
|
+
size: this.$props.size,
|
|
1005
|
+
rounded: this.$props.rounded,
|
|
1006
|
+
fillMode: this.$props.fillMode
|
|
1007
|
+
});
|
|
1008
|
+
};
|
|
799
1009
|
var renderList = function renderList() {
|
|
800
1010
|
var _this2 = this;
|
|
801
1011
|
var _a;
|
|
@@ -812,7 +1022,6 @@ var ComboBoxVue2 = {
|
|
|
812
1022
|
};
|
|
813
1023
|
}
|
|
814
1024
|
var skip = virtual.skip;
|
|
815
|
-
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
816
1025
|
var translate = "translateY(".concat(vs.translate, "px)");
|
|
817
1026
|
var focusedIndex = opened ? this.getFocusedIndex() : undefined;
|
|
818
1027
|
var value = (0, utils_1.isPresent)(text) && text !== selectedItemText ? null : this.computedValue();
|
|
@@ -833,7 +1042,7 @@ var ComboBoxVue2 = {
|
|
|
833
1042
|
valueField: dataItemKey,
|
|
834
1043
|
optionsGuid: base.guid,
|
|
835
1044
|
wrapperStyle: {
|
|
836
|
-
maxHeight: popupSettings.height
|
|
1045
|
+
maxHeight: !renderAdaptive ? popupSettings.height : undefined
|
|
837
1046
|
},
|
|
838
1047
|
wrapperCssClass: (0, kendo_vue_common_1.classNames)('k-list-content', (_a = {}, _a['k-list-scroller'] = !this.$props.virtual, _a)),
|
|
839
1048
|
listStyle: vs.enabled ? {
|
|
@@ -854,7 +1063,7 @@ var ComboBoxVue2 = {
|
|
|
854
1063
|
optionsGuid: base.guid,
|
|
855
1064
|
ref: 'list',
|
|
856
1065
|
wrapperStyle: {
|
|
857
|
-
maxHeight: popupSettings.height
|
|
1066
|
+
maxHeight: !renderAdaptive ? popupSettings.height : undefined
|
|
858
1067
|
},
|
|
859
1068
|
wrapperCssClass: (0, kendo_vue_common_1.classNames)('k-list-content', (_a = {}, _a['k-list-scroller'] = !this.$props.virtual, _a)),
|
|
860
1069
|
listStyle: vs.enabled ? {
|
|
@@ -886,18 +1095,9 @@ var ComboBoxVue2 = {
|
|
|
886
1095
|
var renderListContainer = function renderListContainer() {
|
|
887
1096
|
var _this3 = this;
|
|
888
1097
|
var _a;
|
|
889
|
-
var headerTemplate = kendo_vue_common_1.templateRendering.call(this, this.$props.header, kendo_vue_common_1.getListeners.call(this));
|
|
890
|
-
var footerTemplate = kendo_vue_common_1.templateRendering.call(this, this.$props.footer, kendo_vue_common_1.getListeners.call(this));
|
|
891
1098
|
var groupStickyHeaderTemplate = kendo_vue_common_1.templateRendering.call(this, this.$props.groupStickyHeaderItemRender, kendo_vue_common_1.getListeners.call(this));
|
|
892
|
-
var
|
|
893
|
-
|
|
894
|
-
template: headerTemplate
|
|
895
|
-
});
|
|
896
|
-
var footer = kendo_vue_common_1.getTemplate.call(this, {
|
|
897
|
-
h: h,
|
|
898
|
-
template: footerTemplate
|
|
899
|
-
});
|
|
900
|
-
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
1099
|
+
var headerListContainer = base.getTemplateDef.call(this, header);
|
|
1100
|
+
var footerListContainer = base.getTemplateDef.call(this, footer);
|
|
901
1101
|
var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;
|
|
902
1102
|
var dataItems = this.$props.dataItems || [];
|
|
903
1103
|
if (this.group === undefined && this.$props.groupField !== undefined) {
|
|
@@ -934,36 +1134,35 @@ var ComboBoxVue2 = {
|
|
|
934
1134
|
}),
|
|
935
1135
|
dir: dir !== undefined ? dir : this.base.dirCalculated
|
|
936
1136
|
}, this.v3 ? function () {
|
|
937
|
-
return [
|
|
1137
|
+
return [headerListContainer && h("div", {
|
|
938
1138
|
"class": "k-list-header"
|
|
939
|
-
}, [
|
|
1139
|
+
}, [headerListContainer]), _this3.group && dataItems.length !== 0 && h(GroupStickyHeader_1.GroupStickyHeader, {
|
|
940
1140
|
group: _this3.group,
|
|
941
1141
|
attrs: _this3.v3 ? undefined : {
|
|
942
1142
|
group: _this3.group,
|
|
943
1143
|
render: groupStickyHeaderTemplate
|
|
944
1144
|
},
|
|
945
1145
|
render: groupStickyHeaderTemplate
|
|
946
|
-
}), renderList.call(_this3),
|
|
1146
|
+
}), renderList.call(_this3), footerListContainer && h("div", {
|
|
947
1147
|
"class": "k-list-footer"
|
|
948
|
-
}, [
|
|
949
|
-
} : [
|
|
1148
|
+
}, [footerListContainer])];
|
|
1149
|
+
} : [headerListContainer && h("div", {
|
|
950
1150
|
"class": "k-list-header"
|
|
951
|
-
}, [
|
|
1151
|
+
}, [headerListContainer]), _this3.group && dataItems.length !== 0 && h(GroupStickyHeader_1.GroupStickyHeader, {
|
|
952
1152
|
group: _this3.group,
|
|
953
1153
|
attrs: _this3.v3 ? undefined : {
|
|
954
1154
|
group: _this3.group,
|
|
955
1155
|
render: groupStickyHeaderTemplate
|
|
956
1156
|
},
|
|
957
1157
|
render: groupStickyHeaderTemplate
|
|
958
|
-
}), renderList.call(_this3),
|
|
1158
|
+
}), renderList.call(_this3), footerListContainer && h("div", {
|
|
959
1159
|
"class": "k-list-footer"
|
|
960
|
-
}, [
|
|
1160
|
+
}, [footerListContainer])])
|
|
961
1161
|
);
|
|
962
1162
|
};
|
|
963
1163
|
var renderSearchBar = function renderSearchBar(searchText, searchId) {
|
|
964
1164
|
var _this = this;
|
|
965
1165
|
var _a = this.$props,
|
|
966
|
-
placeholder = _a.placeholder,
|
|
967
1166
|
tabIndex = _a.tabIndex,
|
|
968
1167
|
_b = _a.dataItems,
|
|
969
1168
|
dataItems = _b === void 0 ? [] : _b,
|
|
@@ -973,7 +1172,6 @@ var ComboBoxVue2 = {
|
|
|
973
1172
|
skip: 0
|
|
974
1173
|
};
|
|
975
1174
|
}
|
|
976
|
-
var opened = this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
|
|
977
1175
|
var value = this.computedValue();
|
|
978
1176
|
var selectedIndex = Math.max(0, dataItems.findIndex(function (i) {
|
|
979
1177
|
return (0, utils_1.areSame)(i, value, dataItemKey);
|
|
@@ -1028,7 +1226,7 @@ var ComboBoxVue2 = {
|
|
|
1028
1226
|
})
|
|
1029
1227
|
);
|
|
1030
1228
|
};
|
|
1031
|
-
var
|
|
1229
|
+
var comboboxDefault = h("span", {
|
|
1032
1230
|
"class": (0, kendo_vue_common_1.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),
|
|
1033
1231
|
ref: (0, kendo_vue_common_1.setRef)(this, 'kendoAnchor', this.anchor),
|
|
1034
1232
|
style: !label ? style : __assign(__assign({}, style), {
|
|
@@ -1087,7 +1285,11 @@ var ComboBoxVue2 = {
|
|
|
1087
1285
|
onMousedown: function mousedown(e) {
|
|
1088
1286
|
return e.preventDefault();
|
|
1089
1287
|
}
|
|
1090
|
-
}), renderListContainer.call(this)]);
|
|
1288
|
+
}), !renderAdaptive && renderListContainer.call(this)]);
|
|
1289
|
+
// The following one combines the default rendering of the Combobox and the Adaptive rendering.
|
|
1290
|
+
// This is needed because of Vue 2 specifics
|
|
1291
|
+
var combobox = [comboboxDefault, renderAdaptive && renderAdaptiveListContainer.call(this)];
|
|
1292
|
+
var comboboxToRender = isV3 ? combobox : this.$props.adaptive ? h("span", [combobox]) : comboboxDefault;
|
|
1091
1293
|
return label ? h("span", {
|
|
1092
1294
|
"class": this.spanClassNames,
|
|
1093
1295
|
onFocusin: this.handleFocus,
|
|
@@ -1098,7 +1300,7 @@ var ComboBoxVue2 = {
|
|
|
1098
1300
|
attrs: this.v3 ? undefined : {
|
|
1099
1301
|
dir: this.$props.dir
|
|
1100
1302
|
}
|
|
1101
|
-
}, [
|
|
1303
|
+
}, [comboboxToRender, this.$props.label ? id ? h("label", {
|
|
1102
1304
|
"for": id,
|
|
1103
1305
|
attrs: this.v3 ? undefined : {
|
|
1104
1306
|
"for": id
|
|
@@ -1106,7 +1308,7 @@ var ComboBoxVue2 = {
|
|
|
1106
1308
|
"class": "k-label"
|
|
1107
1309
|
}, [this.$props.label]) : h("span", {
|
|
1108
1310
|
"class": "k-label"
|
|
1109
|
-
}, [this.$props.label]) : null]) :
|
|
1311
|
+
}, [this.$props.label]) : null]) : comboboxToRender;
|
|
1110
1312
|
}
|
|
1111
1313
|
};
|
|
1112
1314
|
exports.ComboBoxVue2 = ComboBoxVue2;
|
|
@@ -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
|
}
|