@progress/kendo-angular-dropdowns 12.0.0-develop.6 → 12.0.0-develop.8
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/autocomplete/autocomplete.component.d.ts +82 -20
- package/comboboxes/combobox.component.d.ts +76 -8
- package/comboboxes/multicolumncombobox.component.d.ts +4 -0
- package/common/action-sheet.component.d.ts +43 -0
- package/common/list.component.d.ts +2 -1
- package/common/localization/messages.d.ts +9 -1
- package/common/selection/selectable.directive.d.ts +2 -1
- package/common/shared.module.d.ts +11 -7
- package/common/util.d.ts +39 -2
- package/dropdownlist/dropdownlist.component.d.ts +78 -9
- package/dropdowntrees/dropdowntree.component.d.ts +80 -8
- package/dropdowntrees/multiselecttree.component.d.ts +90 -6
- package/esm2020/autocomplete/autocomplete.component.mjs +294 -116
- package/esm2020/comboboxes/combobox.component.mjs +251 -60
- package/esm2020/comboboxes/multicolumncombobox.component.mjs +110 -119
- package/esm2020/common/action-sheet.component.mjs +243 -0
- package/esm2020/common/list.component.mjs +11 -2
- package/esm2020/common/localization/messages.mjs +5 -1
- package/esm2020/common/selection/selectable.directive.mjs +3 -3
- package/esm2020/common/shared.module.mjs +13 -6
- package/esm2020/common/util.mjs +68 -2
- package/esm2020/dropdownlist/dropdownlist.component.mjs +245 -64
- package/esm2020/dropdowntrees/dropdowntree.component.mjs +254 -56
- package/esm2020/dropdowntrees/multiselecttree.component.mjs +291 -55
- package/esm2020/index.mjs +1 -0
- package/esm2020/multiselect/multiselect.component.mjs +320 -88
- package/esm2020/package-metadata.mjs +2 -2
- package/fesm2015/progress-kendo-angular-dropdowns.mjs +2085 -552
- package/fesm2020/progress-kendo-angular-dropdowns.mjs +2054 -545
- package/index.d.ts +2 -0
- package/multiselect/multiselect.component.d.ts +87 -10
- package/package.json +9 -8
- package/schematics/ngAdd/index.js +2 -2
|
@@ -19,7 +19,7 @@ import { DisabledItemsService } from '../common/disabled-items/disabled-items.se
|
|
|
19
19
|
import { merge, of, Subject, Subscription } from 'rxjs';
|
|
20
20
|
import { catchError, filter, map, partition, tap, throttleTime } from 'rxjs/operators';
|
|
21
21
|
import { isChanged, isDocumentAvailable, KendoInput, hasObservers, anyChanged } from '@progress/kendo-angular-common';
|
|
22
|
-
import { isPresent, guid, getter, isEmptyString, isUntouched, inDropDown, getSizeClass, getRoundedClass, getFillModeClass } from '../common/util';
|
|
22
|
+
import { isPresent, guid, getter, isEmptyString, isUntouched, inDropDown, getSizeClass, getRoundedClass, getFillModeClass, isTruthy, windowSize, setListBoxAriaLabelLebBy, setActionSheetTitle, updateActionSheetAdaptiveAppearance, animationDuration } from '../common/util';
|
|
23
23
|
import { NavigationAction } from '../common/navigation/navigation-action';
|
|
24
24
|
import { Keys } from '@progress/kendo-angular-common';
|
|
25
25
|
import { PreventableEvent } from '../common/models/preventable-event';
|
|
@@ -33,6 +33,7 @@ import { ListComponent } from '../common/list.component';
|
|
|
33
33
|
import { normalizeVirtualizationSettings } from '../common/models/virtualization-settings';
|
|
34
34
|
import { pointers } from '@progress/kendo-common';
|
|
35
35
|
import { caretAltDownIcon, xIcon } from '@progress/kendo-svg-icons';
|
|
36
|
+
import { ResponsiveRendererComponent } from '../common/action-sheet.component';
|
|
36
37
|
import * as i0 from "@angular/core";
|
|
37
38
|
import * as i1 from "@progress/kendo-angular-l10n";
|
|
38
39
|
import * as i2 from "@progress/kendo-angular-popup";
|
|
@@ -42,11 +43,12 @@ import * as i5 from "../common/disabled-items/disabled-items.service";
|
|
|
42
43
|
import * as i6 from "../common/data.service";
|
|
43
44
|
import * as i7 from "../common/searchbar.component";
|
|
44
45
|
import * as i8 from "@progress/kendo-angular-icons";
|
|
45
|
-
import * as i9 from "
|
|
46
|
-
import * as i10 from "
|
|
47
|
-
import * as i11 from "../common/
|
|
48
|
-
import * as i12 from "
|
|
49
|
-
import * as i13 from "
|
|
46
|
+
import * as i9 from "@progress/kendo-angular-common";
|
|
47
|
+
import * as i10 from "../common/action-sheet.component";
|
|
48
|
+
import * as i11 from "../common/list.component";
|
|
49
|
+
import * as i12 from "../common/localization/localized-messages.directive";
|
|
50
|
+
import * as i13 from "@angular/common";
|
|
51
|
+
import * as i14 from "../common/templates/template-context.directive";
|
|
50
52
|
/**
|
|
51
53
|
* @hidden
|
|
52
54
|
*/
|
|
@@ -88,6 +90,10 @@ export class ComboBoxComponent {
|
|
|
88
90
|
this.cdr = cdr;
|
|
89
91
|
this.renderer = renderer;
|
|
90
92
|
this.touchEnabled = touchEnabled;
|
|
93
|
+
/**
|
|
94
|
+
* @hidden
|
|
95
|
+
*/
|
|
96
|
+
this.animationDuration = animationDuration;
|
|
91
97
|
/**
|
|
92
98
|
* @hidden
|
|
93
99
|
*/
|
|
@@ -157,12 +163,15 @@ export class ComboBoxComponent {
|
|
|
157
163
|
*/
|
|
158
164
|
this.placeholder = "";
|
|
159
165
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* > The `listHeight` property affects only the list of suggestions and not the whole popup container.
|
|
163
|
-
* > To set the height of the popup container, use `popupSettings.height`.
|
|
166
|
+
* Enables or disables the adaptive mode. By default the adaptive rendering is disabled.
|
|
164
167
|
*/
|
|
165
|
-
this.
|
|
168
|
+
this.adaptiveMode = 'none';
|
|
169
|
+
/**
|
|
170
|
+
* Sets the title of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
171
|
+
* By default the ActionSheet title uses the text provided for the label of the AutoComplete.
|
|
172
|
+
*/
|
|
173
|
+
this.title = '';
|
|
174
|
+
this._listHeight = 200;
|
|
166
175
|
/**
|
|
167
176
|
* Enables the auto-completion of the text based on the first data item.
|
|
168
177
|
*/
|
|
@@ -237,6 +246,10 @@ export class ComboBoxComponent {
|
|
|
237
246
|
this.onBlur = new EventEmitter();
|
|
238
247
|
this.widgetClasses = true;
|
|
239
248
|
this._isFocused = false;
|
|
249
|
+
/**
|
|
250
|
+
* @hidden
|
|
251
|
+
*/
|
|
252
|
+
this.windowSize = 'large';
|
|
240
253
|
this.listBoxId = `k-${guid()}`;
|
|
241
254
|
this.optionPrefix = `k-${guid()}`;
|
|
242
255
|
this.onChangeCallback = (_) => { };
|
|
@@ -266,6 +279,18 @@ export class ComboBoxComponent {
|
|
|
266
279
|
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
267
280
|
this.data = [];
|
|
268
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* @hidden
|
|
284
|
+
*/
|
|
285
|
+
get actionSheet() {
|
|
286
|
+
return this.responsiveRendererComponent?.actionSheet;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* @hidden
|
|
290
|
+
*/
|
|
291
|
+
get actionSheetSearchBar() {
|
|
292
|
+
return this.responsiveRendererComponent?.actionSheetSearchBar;
|
|
293
|
+
}
|
|
269
294
|
set text(text) {
|
|
270
295
|
this._text = isPresent(text) ? text.toString() : "";
|
|
271
296
|
}
|
|
@@ -367,6 +392,22 @@ export class ComboBoxComponent {
|
|
|
367
392
|
}
|
|
368
393
|
return this._valuePrimitive;
|
|
369
394
|
}
|
|
395
|
+
/**
|
|
396
|
+
* Sets the subtitle of the ActionSheet that is rendered instead of the Popup when using small screen devices.
|
|
397
|
+
* By default the ActionSheet subtitle uses the text provided for the `placeholder` of the AutoComplete.
|
|
398
|
+
*/
|
|
399
|
+
set subtitle(_subtitle) {
|
|
400
|
+
this._subtitle = _subtitle;
|
|
401
|
+
}
|
|
402
|
+
get subtitle() {
|
|
403
|
+
return this._subtitle || this.placeholder;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* @hidden
|
|
407
|
+
*/
|
|
408
|
+
get isAdaptiveModeEnabled() {
|
|
409
|
+
return this.adaptiveMode === 'auto';
|
|
410
|
+
}
|
|
370
411
|
/**
|
|
371
412
|
* Configures the popup of the ComboBox.
|
|
372
413
|
*
|
|
@@ -383,6 +424,24 @@ export class ComboBoxComponent {
|
|
|
383
424
|
get popupSettings() {
|
|
384
425
|
return this._popupSettings;
|
|
385
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* Sets the height of the options list in the popup. By default, `listHeight` is 200px.
|
|
429
|
+
*
|
|
430
|
+
* > The `listHeight` property affects only the list of options and not the whole popup container.
|
|
431
|
+
* > To set the height of the popup container, use `popupSettings.height`.
|
|
432
|
+
*
|
|
433
|
+
* > When using `adaptiveMode` and the screen size is `small` or `medium` the `listHeight` property is set to null.
|
|
434
|
+
*/
|
|
435
|
+
set listHeight(_listHeight) {
|
|
436
|
+
this._listHeight = _listHeight;
|
|
437
|
+
}
|
|
438
|
+
;
|
|
439
|
+
get listHeight() {
|
|
440
|
+
if (this.isAdaptive) {
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
return this._listHeight;
|
|
444
|
+
}
|
|
386
445
|
/**
|
|
387
446
|
* Defines a Boolean function that is executed for each data item in the component
|
|
388
447
|
* ([see examples]({% slug disableditems_combobox %})). Determines whether the item will be disabled.
|
|
@@ -499,6 +558,19 @@ export class ComboBoxComponent {
|
|
|
499
558
|
return 'visible';
|
|
500
559
|
}
|
|
501
560
|
}
|
|
561
|
+
/**
|
|
562
|
+
* @hidden
|
|
563
|
+
*/
|
|
564
|
+
get isActionSheetExpanded() {
|
|
565
|
+
return this.actionSheet?.expanded;
|
|
566
|
+
}
|
|
567
|
+
;
|
|
568
|
+
/**
|
|
569
|
+
* @hidden
|
|
570
|
+
*/
|
|
571
|
+
get isAdaptive() {
|
|
572
|
+
return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
|
|
573
|
+
}
|
|
502
574
|
get popupWidth() {
|
|
503
575
|
let wrapperOffsetWidth = 0;
|
|
504
576
|
if (isDocumentAvailable()) {
|
|
@@ -521,6 +593,11 @@ export class ComboBoxComponent {
|
|
|
521
593
|
this.attachSelectClickHandler();
|
|
522
594
|
this.setComponentClasses();
|
|
523
595
|
}
|
|
596
|
+
ngAfterViewInit() {
|
|
597
|
+
this.windowSize = windowSize();
|
|
598
|
+
this.cdr.detectChanges();
|
|
599
|
+
this.renderer.setAttribute(this.actionSheet?.element.nativeElement, 'style', '--kendo-actionsheet-height: 60vh; --kendo-actionsheet-max-height: none');
|
|
600
|
+
}
|
|
524
601
|
createValueStream() {
|
|
525
602
|
const valueStream = this.valueSubject.pipe(filter((candidate) => {
|
|
526
603
|
const current = getter(this.value, this.valueField);
|
|
@@ -721,7 +798,7 @@ export class ComboBoxComponent {
|
|
|
721
798
|
}
|
|
722
799
|
}
|
|
723
800
|
/**
|
|
724
|
-
* Toggles the visibility of the popup. If you use the `toggle` method to open or close the popup,
|
|
801
|
+
* Toggles the visibility of the popup or actionSheet. If you use the `toggle` method to open or close the popup or actionSheet,
|
|
725
802
|
* the `open` and `close` events will not be fired.
|
|
726
803
|
*
|
|
727
804
|
* @param open - The state of the popup.
|
|
@@ -734,10 +811,19 @@ export class ComboBoxComponent {
|
|
|
734
811
|
});
|
|
735
812
|
}
|
|
736
813
|
/**
|
|
737
|
-
* Returns the current open state
|
|
814
|
+
* Returns the current open state. Returns `true` if the popup or actionSheet is open.
|
|
738
815
|
*/
|
|
739
816
|
get isOpen() {
|
|
740
|
-
return this._open;
|
|
817
|
+
return isTruthy(this._open || this.isActionSheetExpanded);
|
|
818
|
+
}
|
|
819
|
+
/**
|
|
820
|
+
* @hidden
|
|
821
|
+
*/
|
|
822
|
+
handleClick() {
|
|
823
|
+
this.windowSize = windowSize();
|
|
824
|
+
if (this.isAdaptive) {
|
|
825
|
+
this.togglePopup(true);
|
|
826
|
+
}
|
|
741
827
|
}
|
|
742
828
|
/**
|
|
743
829
|
* Resets the value of the ComboBox.
|
|
@@ -820,7 +906,14 @@ export class ComboBoxComponent {
|
|
|
820
906
|
* @hidden
|
|
821
907
|
*/
|
|
822
908
|
onResize() {
|
|
823
|
-
if (this.
|
|
909
|
+
if (this.isAdaptiveModeEnabled && this.windowSize !== windowSize()) {
|
|
910
|
+
if (this.isOpen) {
|
|
911
|
+
this.togglePopup(false);
|
|
912
|
+
}
|
|
913
|
+
this.windowSize = windowSize();
|
|
914
|
+
this.cdr.detectChanges();
|
|
915
|
+
}
|
|
916
|
+
if (this.isOpen && !this.isActionSheetExpanded) {
|
|
824
917
|
const popupWrapper = this.popupRef.popupElement;
|
|
825
918
|
const { min, max } = this.popupWidth;
|
|
826
919
|
popupWrapper.style.minWidth = min;
|
|
@@ -926,13 +1019,7 @@ export class ComboBoxComponent {
|
|
|
926
1019
|
return result;
|
|
927
1020
|
}
|
|
928
1021
|
search(text, startFrom = 0) {
|
|
929
|
-
|
|
930
|
-
if (text.length && this.dataService.itemsCount) {
|
|
931
|
-
index = this.dataService.findIndex(this.findIndexPredicate(text), startFrom);
|
|
932
|
-
}
|
|
933
|
-
else {
|
|
934
|
-
index = -1;
|
|
935
|
-
}
|
|
1022
|
+
const index = this.findIndex(text, startFrom);
|
|
936
1023
|
if (this.disabledItemsService.isIndexDisabled(index)) {
|
|
937
1024
|
if (index + 1 < this.dataService.itemsCount) {
|
|
938
1025
|
this.search(text, index + 1);
|
|
@@ -948,6 +1035,18 @@ export class ComboBoxComponent {
|
|
|
948
1035
|
}
|
|
949
1036
|
}
|
|
950
1037
|
}
|
|
1038
|
+
/**
|
|
1039
|
+
* @hidden
|
|
1040
|
+
*/
|
|
1041
|
+
onAdaptiveTextBoxChange(text) {
|
|
1042
|
+
if (this.filterable && this.filterText !== text) {
|
|
1043
|
+
this.filterText = text;
|
|
1044
|
+
this.filterChange.emit(text);
|
|
1045
|
+
}
|
|
1046
|
+
else {
|
|
1047
|
+
this.search(text);
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
951
1050
|
/**
|
|
952
1051
|
* @hidden
|
|
953
1052
|
*/
|
|
@@ -1005,6 +1104,10 @@ export class ComboBoxComponent {
|
|
|
1005
1104
|
((action === NavigationAction.Enter && this.isOpen) || action !== NavigationAction.Enter)) {
|
|
1006
1105
|
event.preventDefault();
|
|
1007
1106
|
}
|
|
1107
|
+
if (action === NavigationAction.Tab && this.isActionSheetExpanded) {
|
|
1108
|
+
event.stopImmediatePropagation();
|
|
1109
|
+
this.togglePopup(false);
|
|
1110
|
+
}
|
|
1008
1111
|
}
|
|
1009
1112
|
handleEnter() {
|
|
1010
1113
|
const text = this.text;
|
|
@@ -1036,32 +1139,34 @@ export class ComboBoxComponent {
|
|
|
1036
1139
|
* @hidden
|
|
1037
1140
|
*/
|
|
1038
1141
|
handleBlur() {
|
|
1039
|
-
this.
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1142
|
+
if (!this.isActionSheetExpanded) {
|
|
1143
|
+
this._filtering = false;
|
|
1144
|
+
this.searchbar.input.nativeElement.scrollLeft = 0; // Firefox doesn't auto-scroll to the left on blur like other browsers
|
|
1145
|
+
this.isFocused = false;
|
|
1146
|
+
const unresolvedSelection = getter(this.dataItem, this.valueField) !== getter(this.value, this.valueField);
|
|
1147
|
+
const currentText = this.searchbar.value;
|
|
1148
|
+
const textHasChanged = currentText !== (getter(this.dataItem, this.textField) || '');
|
|
1149
|
+
const valueHasChanged = unresolvedSelection || textHasChanged;
|
|
1150
|
+
const runInZone = valueHasChanged || hasObservers(this.onBlur) || hasObservers(this.close) || isUntouched(this.wrapper.nativeElement);
|
|
1151
|
+
if (runInZone) {
|
|
1152
|
+
this.zone.run(() => {
|
|
1153
|
+
if (valueHasChanged) {
|
|
1154
|
+
const lowerCaseMatch = isPresent(this.focusedItemText) && this.focusedItemText.toLowerCase() === currentText.toLowerCase();
|
|
1155
|
+
if (lowerCaseMatch || unresolvedSelection) {
|
|
1156
|
+
this.selectionService.change(this.selectionService.focused);
|
|
1157
|
+
}
|
|
1158
|
+
else {
|
|
1159
|
+
this.change(currentText, true);
|
|
1160
|
+
}
|
|
1056
1161
|
}
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1162
|
+
this.onBlur.emit();
|
|
1163
|
+
this.onTouchedCallback();
|
|
1164
|
+
this.togglePopup(false);
|
|
1165
|
+
});
|
|
1166
|
+
}
|
|
1167
|
+
else {
|
|
1060
1168
|
this.togglePopup(false);
|
|
1061
|
-
}
|
|
1062
|
-
}
|
|
1063
|
-
else {
|
|
1064
|
-
this.togglePopup(false);
|
|
1169
|
+
}
|
|
1065
1170
|
}
|
|
1066
1171
|
}
|
|
1067
1172
|
/**
|
|
@@ -1124,6 +1229,9 @@ export class ComboBoxComponent {
|
|
|
1124
1229
|
}
|
|
1125
1230
|
else {
|
|
1126
1231
|
this.valueSubject.next(candidate);
|
|
1232
|
+
if (this.isActionSheetExpanded) {
|
|
1233
|
+
this.togglePopup(false);
|
|
1234
|
+
}
|
|
1127
1235
|
}
|
|
1128
1236
|
}
|
|
1129
1237
|
emitValueChange() {
|
|
@@ -1197,6 +1305,11 @@ export class ComboBoxComponent {
|
|
|
1197
1305
|
if (this.virtual) {
|
|
1198
1306
|
this.virtual.skip = 0;
|
|
1199
1307
|
}
|
|
1308
|
+
this.windowSize = windowSize();
|
|
1309
|
+
if (this.isAdaptive) {
|
|
1310
|
+
this.openActionSheet();
|
|
1311
|
+
return;
|
|
1312
|
+
}
|
|
1200
1313
|
const horizontalAlign = this.direction === "rtl" ? "right" : "left";
|
|
1201
1314
|
const anchorPosition = { horizontal: horizontalAlign, vertical: "bottom" };
|
|
1202
1315
|
const popupPosition = { horizontal: horizontalAlign, vertical: "top" };
|
|
@@ -1228,7 +1341,9 @@ export class ComboBoxComponent {
|
|
|
1228
1341
|
}
|
|
1229
1342
|
this.popupRef.popupOpen.subscribe(() => {
|
|
1230
1343
|
this.cdr.detectChanges();
|
|
1344
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
1231
1345
|
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
1346
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
1232
1347
|
this.opened.emit();
|
|
1233
1348
|
});
|
|
1234
1349
|
this.popupRef.popupClose.subscribe(() => {
|
|
@@ -1239,7 +1354,11 @@ export class ComboBoxComponent {
|
|
|
1239
1354
|
_toggle(open) {
|
|
1240
1355
|
this._open = open;
|
|
1241
1356
|
this.destroyPopup();
|
|
1357
|
+
if (this.isActionSheetExpanded) {
|
|
1358
|
+
this.closeActionSheet();
|
|
1359
|
+
}
|
|
1242
1360
|
if (this._open) {
|
|
1361
|
+
this.windowSize = windowSize();
|
|
1243
1362
|
this.createPopup();
|
|
1244
1363
|
}
|
|
1245
1364
|
}
|
|
@@ -1295,9 +1414,40 @@ export class ComboBoxComponent {
|
|
|
1295
1414
|
this.renderer.addClass(this.wrapper.nativeElement, getFillModeClass('input', this.fillMode));
|
|
1296
1415
|
}
|
|
1297
1416
|
}
|
|
1417
|
+
findIndex(value, startFrom = 0) {
|
|
1418
|
+
let index;
|
|
1419
|
+
if (value && value.length && this.dataService.itemsCount) {
|
|
1420
|
+
index = this.dataService.findIndex(this.findIndexPredicate(value), startFrom);
|
|
1421
|
+
}
|
|
1422
|
+
else {
|
|
1423
|
+
index = -1;
|
|
1424
|
+
}
|
|
1425
|
+
;
|
|
1426
|
+
return index;
|
|
1427
|
+
}
|
|
1428
|
+
closeActionSheet() {
|
|
1429
|
+
this.actionSheet.toggle(false);
|
|
1430
|
+
this.actionSheetSearchBar.value = '';
|
|
1431
|
+
this.filterable && this.filterChange.emit('');
|
|
1432
|
+
this.searchbar.input.nativeElement.focus();
|
|
1433
|
+
this.closed.emit();
|
|
1434
|
+
}
|
|
1435
|
+
openActionSheet() {
|
|
1436
|
+
this.windowSize = windowSize();
|
|
1437
|
+
this.actionSheet.toggle(true);
|
|
1438
|
+
this.cdr.detectChanges();
|
|
1439
|
+
setListBoxAriaLabelLebBy(this.optionsList, this.searchbar.input, this.renderer);
|
|
1440
|
+
this.title = setActionSheetTitle(this.searchbar.input, this.title);
|
|
1441
|
+
updateActionSheetAdaptiveAppearance(this.actionSheet, this.windowSize, this.renderer);
|
|
1442
|
+
this.cdr.detectChanges();
|
|
1443
|
+
this.opened.emit();
|
|
1444
|
+
this.optionsList.scrollToItem(this.selectionService.focused);
|
|
1445
|
+
this.selectionService.focus(this.selectionService.focused);
|
|
1446
|
+
this.actionSheetSearchBar.focus();
|
|
1447
|
+
}
|
|
1298
1448
|
}
|
|
1299
1449
|
ComboBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ComboBoxComponent, deps: [{ token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i2.PopupService }, { token: i3.SelectionService }, { token: i4.NavigationService }, { token: i5.DisabledItemsService }, { token: i6.DataService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: TOUCH_ENABLED, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1300
|
-
ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ComboBoxComponent, selector: "kendo-combobox", inputs: { focusableId: "focusableId", allowCustom: "allowCustom", data: "data", value: "value", textField: "textField", valueField: "valueField", valuePrimitive: "valuePrimitive", valueNormalizer: "valueNormalizer", placeholder: "placeholder", popupSettings: "popupSettings", listHeight: "listHeight", iconClass: "iconClass", loading: "loading", suggest: "suggest", clearButton: "clearButton", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", selectionChange: "selectionChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-combobox": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
|
|
1450
|
+
ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ComboBoxComponent, selector: "kendo-combobox", inputs: { focusableId: "focusableId", allowCustom: "allowCustom", data: "data", value: "value", textField: "textField", valueField: "valueField", valuePrimitive: "valuePrimitive", valueNormalizer: "valueNormalizer", placeholder: "placeholder", adaptiveMode: "adaptiveMode", title: "title", subtitle: "subtitle", popupSettings: "popupSettings", listHeight: "listHeight", iconClass: "iconClass", loading: "loading", suggest: "suggest", clearButton: "clearButton", disabled: "disabled", itemDisabled: "itemDisabled", readonly: "readonly", tabindex: "tabindex", tabIndex: "tabIndex", filterable: "filterable", virtual: "virtual", size: "size", rounded: "rounded", fillMode: "fillMode" }, outputs: { valueChange: "valueChange", selectionChange: "selectionChange", filterChange: "filterChange", open: "open", opened: "opened", close: "close", closed: "closed", onFocus: "focus", onBlur: "blur" }, host: { properties: { "class.k-combobox": "this.widgetClasses", "class.k-input": "this.widgetClasses", "class.k-disabled": "this.isDisabled", "class.k-loading": "this.isLoading", "attr.dir": "this.dir" } }, providers: [
|
|
1301
1451
|
COMBOBOX_VALUE_ACCESSOR,
|
|
1302
1452
|
DataService,
|
|
1303
1453
|
SelectionService,
|
|
@@ -1314,7 +1464,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
1314
1464
|
{
|
|
1315
1465
|
provide: KendoInput, useExisting: forwardRef(() => ComboBoxComponent)
|
|
1316
1466
|
}
|
|
1317
|
-
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }], exportAs: ["kendoComboBox"], usesOnChanges: true, ngImport: i0, template: `
|
|
1467
|
+
], queries: [{ propertyName: "template", first: true, predicate: ItemTemplateDirective, descendants: true }, { propertyName: "headerTemplate", first: true, predicate: HeaderTemplateDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: FooterTemplateDirective, descendants: true }, { propertyName: "noDataTemplate", first: true, predicate: NoDataTemplateDirective, descendants: true }, { propertyName: "groupTemplate", first: true, predicate: GroupTemplateDirective, descendants: true }, { propertyName: "fixedGroupTemplate", first: true, predicate: FixedGroupTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "responsiveRendererComponent", first: true, predicate: ResponsiveRendererComponent, descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "searchbar", first: true, predicate: SearchBarComponent, descendants: true, static: true }, { propertyName: "optionsList", first: true, predicate: ["optionsList"], descendants: true }, { propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }], exportAs: ["kendoComboBox"], usesOnChanges: true, ngImport: i0, template: `
|
|
1318
1468
|
<ng-container kendoComboBoxLocalizedMessages
|
|
1319
1469
|
i18n-noDataText="kendo.combobox.noDataText|The text displayed in the popup when there are no items"
|
|
1320
1470
|
noDataText="NO DATA FOUND"
|
|
@@ -1341,13 +1491,14 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
1341
1491
|
[userInput]="text"
|
|
1342
1492
|
[suggestedText]="getSuggestion()"
|
|
1343
1493
|
[disabled]="disabled"
|
|
1344
|
-
[readonly]="readonly"
|
|
1494
|
+
[readonly]="readonly || isAdaptive"
|
|
1345
1495
|
[tabIndex]="tabIndex"
|
|
1346
1496
|
[placeholder]="placeholder"
|
|
1347
1497
|
(onNavigate)="handleNavigate($event)"
|
|
1348
1498
|
(valueChange)="searchBarChange($event)"
|
|
1349
1499
|
(onBlur)="handleBlur()"
|
|
1350
1500
|
(onFocus)="handleFocus()"
|
|
1501
|
+
(click)="handleClick()"
|
|
1351
1502
|
></kendo-searchbar>
|
|
1352
1503
|
<span
|
|
1353
1504
|
*ngIf="clearButton && !loading && !disabled && !readonly && text?.length"
|
|
@@ -1387,6 +1538,25 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
1387
1538
|
<span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
|
|
1388
1539
|
</button>
|
|
1389
1540
|
<ng-template #popupTemplate>
|
|
1541
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
1542
|
+
</ng-template>
|
|
1543
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
1544
|
+
<ng-container #container></ng-container>
|
|
1545
|
+
|
|
1546
|
+
<!--adaptive rendering-->
|
|
1547
|
+
<responsive-renderer
|
|
1548
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
1549
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
1550
|
+
[title]="title"
|
|
1551
|
+
[showTextInput]="true"
|
|
1552
|
+
[subtitle]="subtitle"
|
|
1553
|
+
(closePopup)="togglePopup(false)"
|
|
1554
|
+
(textInputChange)="onAdaptiveTextBoxChange($event)"
|
|
1555
|
+
(navigate)="handleNavigate($event)"
|
|
1556
|
+
[placeholder]="placeholder"
|
|
1557
|
+
>
|
|
1558
|
+
</responsive-renderer>
|
|
1559
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
1390
1560
|
<!--header template-->
|
|
1391
1561
|
<ng-template *ngIf="headerTemplate"
|
|
1392
1562
|
[templateContext]="{
|
|
@@ -1430,11 +1600,7 @@ ComboBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
1430
1600
|
}">
|
|
1431
1601
|
</ng-template>
|
|
1432
1602
|
</ng-template>
|
|
1433
|
-
|
|
1434
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
1435
|
-
</ng-template>
|
|
1436
|
-
<ng-container #container></ng-container>
|
|
1437
|
-
`, isInline: true, components: [{ type: i7.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i9.ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i11.LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
1603
|
+
`, isInline: true, components: [{ type: i7.SearchBarComponent, selector: "kendo-searchbar", inputs: ["id", "tagListId", "activeDescendant", "disabled", "readonly", "tabIndex", "role", "isLoading", "ariaControls", "ariaExpanded", "isSuggestable", "isFilterable", "userInput", "suggestedText", "placeholder"], outputs: ["valueChange", "onBlur", "onFocus", "onClick", "onNavigate"] }, { type: i8.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass"], exportAs: ["kendoIconWrapper"] }, { type: i9.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { type: i10.ResponsiveRendererComponent, selector: "responsive-renderer", inputs: ["title", "showActionButtons", "subtitle", "size", "showTextInput", "sharedPopupActionSheetTemplate", "isActionSheetExpanded", "text", "placeholder"], outputs: ["closePopup", "textInputChange", "navigate", "onExpand", "onCollapse", "onApply", "onCancel"] }, { type: i11.ListComponent, selector: "kendo-list", inputs: ["selected", "focused", "textField", "valueField", "height", "template", "groupTemplate", "fixedGroupTemplate", "show", "id", "optionPrefix", "multipleSelection", "virtual", "type", "checkboxes", "ariaLive", "isMultiselect", "isActionSheetExpanded", "data", "size", "rounded"], outputs: ["onClick", "pageChange", "listResize"] }], directives: [{ type: i12.LocalizedMessagesDirective, selector: "\n [kendoDropDownListLocalizedMessages],\n [kendoDropDownTreeLocalizedMessages],\n [kendoComboBoxLocalizedMessages],\n [kendoMultiColumnComboBoxLocalizedMessages],\n [kendoAutoCompleteLocalizedMessages],\n [kendoMultiSelectLocalizedMessages],\n [kendoMultiSelectTreeLocalizedMessages]\n " }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i14.TemplateContextDirective, selector: "[templateContext]", inputs: ["templateContext"] }] });
|
|
1438
1604
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ComboBoxComponent, decorators: [{
|
|
1439
1605
|
type: Component,
|
|
1440
1606
|
args: [{
|
|
@@ -1485,13 +1651,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
1485
1651
|
[userInput]="text"
|
|
1486
1652
|
[suggestedText]="getSuggestion()"
|
|
1487
1653
|
[disabled]="disabled"
|
|
1488
|
-
[readonly]="readonly"
|
|
1654
|
+
[readonly]="readonly || isAdaptive"
|
|
1489
1655
|
[tabIndex]="tabIndex"
|
|
1490
1656
|
[placeholder]="placeholder"
|
|
1491
1657
|
(onNavigate)="handleNavigate($event)"
|
|
1492
1658
|
(valueChange)="searchBarChange($event)"
|
|
1493
1659
|
(onBlur)="handleBlur()"
|
|
1494
1660
|
(onFocus)="handleFocus()"
|
|
1661
|
+
(click)="handleClick()"
|
|
1495
1662
|
></kendo-searchbar>
|
|
1496
1663
|
<span
|
|
1497
1664
|
*ngIf="clearButton && !loading && !disabled && !readonly && text?.length"
|
|
@@ -1531,6 +1698,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
1531
1698
|
<span *ngIf="loading || iconClass" class="k-button-icon k-icon" [ngClass]="buttonClasses"></span>
|
|
1532
1699
|
</button>
|
|
1533
1700
|
<ng-template #popupTemplate>
|
|
1701
|
+
<ng-container *ngTemplateOutlet="sharedPopupActionSheetTemplate"></ng-container>
|
|
1702
|
+
</ng-template>
|
|
1703
|
+
<kendo-resize-sensor *ngIf="isOpen || isAdaptiveModeEnabled" (resize)="onResize()"></kendo-resize-sensor>
|
|
1704
|
+
<ng-container #container></ng-container>
|
|
1705
|
+
|
|
1706
|
+
<!--adaptive rendering-->
|
|
1707
|
+
<responsive-renderer
|
|
1708
|
+
[sharedPopupActionSheetTemplate]="sharedPopupActionSheetTemplate"
|
|
1709
|
+
[isActionSheetExpanded]="isActionSheetExpanded"
|
|
1710
|
+
[title]="title"
|
|
1711
|
+
[showTextInput]="true"
|
|
1712
|
+
[subtitle]="subtitle"
|
|
1713
|
+
(closePopup)="togglePopup(false)"
|
|
1714
|
+
(textInputChange)="onAdaptiveTextBoxChange($event)"
|
|
1715
|
+
(navigate)="handleNavigate($event)"
|
|
1716
|
+
[placeholder]="placeholder"
|
|
1717
|
+
>
|
|
1718
|
+
</responsive-renderer>
|
|
1719
|
+
<ng-template #sharedPopupActionSheetTemplate>
|
|
1534
1720
|
<!--header template-->
|
|
1535
1721
|
<ng-template *ngIf="headerTemplate"
|
|
1536
1722
|
[templateContext]="{
|
|
@@ -1574,10 +1760,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
1574
1760
|
}">
|
|
1575
1761
|
</ng-template>
|
|
1576
1762
|
</ng-template>
|
|
1577
|
-
<ng-template [ngIf]="isOpen">
|
|
1578
|
-
<kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
|
|
1579
|
-
</ng-template>
|
|
1580
|
-
<ng-container #container></ng-container>
|
|
1581
1763
|
`
|
|
1582
1764
|
}]
|
|
1583
1765
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i2.PopupService }, { type: i3.SelectionService }, { type: i4.NavigationService }, { type: i5.DisabledItemsService }, { type: i6.DataService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
|
@@ -1585,7 +1767,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
1585
1767
|
}, {
|
|
1586
1768
|
type: Inject,
|
|
1587
1769
|
args: [TOUCH_ENABLED]
|
|
1588
|
-
}] }]; }, propDecorators: {
|
|
1770
|
+
}] }]; }, propDecorators: { responsiveRendererComponent: [{
|
|
1771
|
+
type: ViewChild,
|
|
1772
|
+
args: [ResponsiveRendererComponent]
|
|
1773
|
+
}], focusableId: [{
|
|
1589
1774
|
type: Input
|
|
1590
1775
|
}], allowCustom: [{
|
|
1591
1776
|
type: Input
|
|
@@ -1603,6 +1788,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
1603
1788
|
type: Input
|
|
1604
1789
|
}], placeholder: [{
|
|
1605
1790
|
type: Input
|
|
1791
|
+
}], adaptiveMode: [{
|
|
1792
|
+
type: Input
|
|
1793
|
+
}], title: [{
|
|
1794
|
+
type: Input
|
|
1795
|
+
}], subtitle: [{
|
|
1796
|
+
type: Input
|
|
1606
1797
|
}], popupSettings: [{
|
|
1607
1798
|
type: Input
|
|
1608
1799
|
}], listHeight: [{
|