@progress/kendo-angular-dropdowns 19.3.0-develop.32 → 19.3.0-develop.34
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/common/searchbar.component.d.ts +1 -1
- package/esm2022/autocomplete/autocomplete.component.mjs +3 -2
- package/esm2022/comboboxes/combobox.component.mjs +10 -5
- package/esm2022/common/navigation/navigation.service.mjs +3 -2
- package/esm2022/common/searchbar.component.mjs +3 -2
- package/esm2022/common/shared-events.directive.mjs +1 -1
- package/esm2022/dropdownlist/dropdownlist.component.mjs +12 -7
- package/esm2022/dropdowntrees/dropdowntree.component.mjs +1 -1
- package/esm2022/dropdowntrees/multiselecttree.component.mjs +4 -3
- package/esm2022/multiselect/multiselect.component.mjs +9 -7
- package/esm2022/package-metadata.mjs +2 -2
- package/fesm2022/progress-kendo-angular-dropdowns.mjs +42 -26
- package/package.json +10 -10
- package/schematics/ngAdd/index.js +2 -2
@@ -85,7 +85,7 @@ export declare class SearchBarComponent implements OnChanges, OnInit, OnDestroy
|
|
85
85
|
handleInput(event: any): void;
|
86
86
|
handleFocus(event: any): void;
|
87
87
|
handleBlur(event: any): void;
|
88
|
-
handleKeydown(event:
|
88
|
+
handleKeydown(event: KeyboardEvent): void;
|
89
89
|
focus(): void;
|
90
90
|
blur(): void;
|
91
91
|
setInputSize(): void;
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Component, Renderer2, forwardRef, ElementRef, Input, Output, EventEmitter, ContentChild, ViewChild, ViewContainerRef, TemplateRef, HostBinding, isDevMode, ChangeDetectorRef, NgZone, Injector } from '@angular/core';
|
6
|
-
import { isDocumentAvailable, KendoInput, hasObservers, SuffixTemplateDirective, PrefixTemplateDirective, isControlRequired, SeparatorComponent, ResizeSensorComponent, TemplateContextDirective, guid } from '@progress/kendo-angular-common';
|
6
|
+
import { isDocumentAvailable, KendoInput, hasObservers, SuffixTemplateDirective, PrefixTemplateDirective, isControlRequired, SeparatorComponent, ResizeSensorComponent, TemplateContextDirective, guid, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
7
7
|
import { AdaptiveService } from '@progress/kendo-angular-utils';
|
8
8
|
import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
|
9
9
|
import { validatePackage } from '@progress/kendo-licensing';
|
@@ -988,7 +988,8 @@ export class AutoCompleteComponent {
|
|
988
988
|
this.subs.add(merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
989
989
|
if (this.isOpen) {
|
990
990
|
event.originalEvent.preventDefault();
|
991
|
-
|
991
|
+
const code = normalizeNumpadKeys(event.originalEvent);
|
992
|
+
this.optionsList.scrollWithOnePage(NavigationAction[code]);
|
992
993
|
}
|
993
994
|
}));
|
994
995
|
}
|
@@ -18,7 +18,7 @@ import { NavigationService } from '../common/navigation/navigation.service';
|
|
18
18
|
import { DisabledItemsService } from '../common/disabled-items/disabled-items.service';
|
19
19
|
import { merge, of, Subject, Subscription } from 'rxjs';
|
20
20
|
import { catchError, filter, map, partition, tap, throttleTime } from 'rxjs/operators';
|
21
|
-
import { isChanged, isDocumentAvailable, KendoInput, hasObservers, anyChanged, SuffixTemplateDirective, PrefixTemplateDirective, isControlRequired, MultiTabStop, SeparatorComponent, EventsOutsideAngularDirective, ResizeSensorComponent, Keys, TemplateContextDirective, guid } from '@progress/kendo-angular-common';
|
21
|
+
import { isChanged, isDocumentAvailable, KendoInput, hasObservers, anyChanged, SuffixTemplateDirective, PrefixTemplateDirective, isControlRequired, MultiTabStop, SeparatorComponent, EventsOutsideAngularDirective, ResizeSensorComponent, Keys, TemplateContextDirective, guid, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
22
22
|
import { AdaptiveService } from '@progress/kendo-angular-utils';
|
23
23
|
import { isPresent, getter, isEmptyString, isUntouched, inDropDown, getSizeClass, getRoundedClass, getFillModeClass, isTruthy, setListBoxAriaLabelledBy, setActionSheetTitle, animationDuration } from '../common/util';
|
24
24
|
import { NavigationAction } from '../common/navigation/navigation-action';
|
@@ -798,7 +798,8 @@ export class ComboBoxComponent extends MultiTabStop {
|
|
798
798
|
this.subs.add(merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
799
799
|
if (this.isOpen) {
|
800
800
|
event.originalEvent.preventDefault();
|
801
|
-
|
801
|
+
const code = normalizeNumpadKeys(event.originalEvent);
|
802
|
+
this.optionsList.scrollWithOnePage(NavigationAction[code]);
|
802
803
|
}
|
803
804
|
}));
|
804
805
|
this.subs.add(this.navigationService.esc.subscribe(this.handleEscape.bind(this)));
|
@@ -1147,14 +1148,18 @@ export class ComboBoxComponent extends MultiTabStop {
|
|
1147
1148
|
if (this.disabled || this.readonly) {
|
1148
1149
|
return;
|
1149
1150
|
}
|
1150
|
-
|
1151
|
+
// on some keyboards, Home and End keys are mapped to Numpad keys
|
1152
|
+
const code = normalizeNumpadKeys(event);
|
1153
|
+
const isHomeKey = code === Keys.Home;
|
1154
|
+
const isEndKey = code === Keys.End;
|
1155
|
+
if (isHomeKey || isEndKey) {
|
1151
1156
|
return;
|
1152
1157
|
}
|
1153
1158
|
if (!hasSelected) {
|
1154
|
-
if (
|
1159
|
+
if (code === Keys.ArrowDown) {
|
1155
1160
|
offset = -1;
|
1156
1161
|
}
|
1157
|
-
else if (
|
1162
|
+
else if (code === Keys.ArrowUp) {
|
1158
1163
|
offset = 1;
|
1159
1164
|
}
|
1160
1165
|
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Injectable, EventEmitter } from '@angular/core';
|
6
6
|
import { isPresent } from '../util';
|
7
|
-
import { Keys } from '@progress/kendo-angular-common';
|
7
|
+
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
8
8
|
import { NavigationAction } from './navigation-action';
|
9
9
|
import { DisabledItemsService } from '../disabled-items/disabled-items.service';
|
10
10
|
import { SelectionService } from '../selection/selection.service';
|
@@ -57,7 +57,8 @@ export class NavigationService {
|
|
57
57
|
this.selectionService = selectionService;
|
58
58
|
}
|
59
59
|
process(args) {
|
60
|
-
|
60
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
61
|
+
const keyCode = normalizeNumpadKeys(args.originalEvent);
|
61
62
|
const altKey = args.originalEvent.altKey;
|
62
63
|
const shiftKey = args.originalEvent.shiftKey;
|
63
64
|
const ctrlKey = args.originalEvent.ctrlKey || args.originalEvent.metaKey;
|
@@ -3,7 +3,7 @@
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Component, Renderer2, Input, Output, EventEmitter, ElementRef, HostBinding, Injector, NgZone } from '@angular/core';
|
6
|
-
import { isDocumentAvailable, isObjectPresent, isSafari, removeHTMLAttributes, setHTMLAttributes, Keys, parseAttributes } from '@progress/kendo-angular-common';
|
6
|
+
import { isDocumentAvailable, isObjectPresent, isSafari, removeHTMLAttributes, setHTMLAttributes, Keys, parseAttributes, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
7
7
|
import { combineStr, isJapanese } from './util';
|
8
8
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
9
9
|
import { Subscription } from 'rxjs';
|
@@ -269,7 +269,8 @@ export class SearchBarComponent {
|
|
269
269
|
this.onBlur.emit(event);
|
270
270
|
}
|
271
271
|
handleKeydown(event) {
|
272
|
-
|
272
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
273
|
+
const keyCode = normalizeNumpadKeys(event);
|
273
274
|
const keys = [Keys.ArrowUp, Keys.ArrowDown, Keys.ArrowLeft, Keys.ArrowRight, Keys.Enter,
|
274
275
|
Keys.Escape, Keys.Delete, Keys.Backspace, Keys.Home, Keys.End, Keys.PageDown, Keys.PageUp];
|
275
276
|
if (keys.indexOf(keyCode) > -1) {
|
@@ -63,7 +63,7 @@ export class SharedDropDownEventsDirective {
|
|
63
63
|
cursorInsideWrapper = false;
|
64
64
|
}));
|
65
65
|
this.subscriptions.add(this.renderer.listen(hostElement, 'keydown', (args) => {
|
66
|
-
if (args.
|
66
|
+
if (args.code === Keys.Tab) {
|
67
67
|
tabbing = true;
|
68
68
|
}
|
69
69
|
else {
|
@@ -8,7 +8,7 @@ import { validatePackage } from '@progress/kendo-licensing';
|
|
8
8
|
import { packageMetadata } from '../package-metadata';
|
9
9
|
import { merge, interval, Subscription } from 'rxjs';
|
10
10
|
import { concatMap, filter, map, skipWhile, take, takeUntil, tap } from 'rxjs/operators';
|
11
|
-
import { isDocumentAvailable, KendoInput, hasObservers, anyChanged, isChanged, EventsOutsideAngularDirective, ResizeSensorComponent, Keys, TemplateContextDirective, isSafari, guid } from '@progress/kendo-angular-common';
|
11
|
+
import { isDocumentAvailable, KendoInput, hasObservers, anyChanged, isChanged, EventsOutsideAngularDirective, ResizeSensorComponent, Keys, TemplateContextDirective, isSafari, guid, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
12
12
|
import { AdaptiveService } from '@progress/kendo-angular-utils';
|
13
13
|
import { isPresent, getter, shuffleData, sameCharsOnly, matchText, isUntouched, inDropDown, getSizeClass, getRoundedClass, getFillModeClass, isTruthy, setListBoxAriaLabelledBy, setActionSheetTitle, animationDuration } from '../common/util';
|
14
14
|
import { SelectionService } from '../common/selection/selection.service';
|
@@ -598,7 +598,11 @@ export class DropDownListComponent {
|
|
598
598
|
if (this.disabled || this.readonly) {
|
599
599
|
return;
|
600
600
|
}
|
601
|
-
|
601
|
+
// on some keyboards, Home and End keys are mapped to Numpad keys
|
602
|
+
const code = normalizeNumpadKeys(event);
|
603
|
+
const isHomeKey = code === Keys.Home;
|
604
|
+
const isEndKey = code === Keys.End;
|
605
|
+
const isHomeEnd = isHomeKey || isEndKey;
|
602
606
|
const isFilterFocused = this.filterable && this.isFocused && this.isOpen;
|
603
607
|
if (isFilterFocused && isHomeEnd) {
|
604
608
|
return;
|
@@ -606,10 +610,10 @@ export class DropDownListComponent {
|
|
606
610
|
const hasSelected = isPresent(this.selectionService.selected[0]);
|
607
611
|
const focusedItemNotSelected = isPresent(this.selectionService.focused) && !this.selectionService.isSelected(this.selectionService.focused);
|
608
612
|
if (!hasSelected || focusedItemNotSelected) {
|
609
|
-
if (
|
613
|
+
if (code === Keys.ArrowDown || code === Keys.ArrowRight && this.leftRightArrowsNavigation) {
|
610
614
|
offset = -1;
|
611
615
|
}
|
612
|
-
else if (
|
616
|
+
else if (code === Keys.ArrowUp || code === Keys.ArrowLeft && this.leftRightArrowsNavigation) {
|
613
617
|
offset = 1;
|
614
618
|
}
|
615
619
|
}
|
@@ -1061,7 +1065,8 @@ export class DropDownListComponent {
|
|
1061
1065
|
this.subs.add(merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
1062
1066
|
if (this.isOpen) {
|
1063
1067
|
event.originalEvent.preventDefault();
|
1064
|
-
|
1068
|
+
const code = normalizeNumpadKeys(event.originalEvent);
|
1069
|
+
this.optionsList.scrollWithOnePage(NavigationAction[code]);
|
1065
1070
|
}
|
1066
1071
|
}));
|
1067
1072
|
this.subs.add(this.navigationService.open.subscribe(() => this.togglePopup(true)));
|
@@ -1256,10 +1261,10 @@ export class DropDownListComponent {
|
|
1256
1261
|
}
|
1257
1262
|
}
|
1258
1263
|
onKeyPress(event) {
|
1259
|
-
if (event.which === 0 || event.
|
1264
|
+
if (event.which === 0 || event.code === Keys.Enter || event.code === Keys.NumpadEnter || event.key.length > 1) {
|
1260
1265
|
return;
|
1261
1266
|
}
|
1262
|
-
let character =
|
1267
|
+
let character = event.key;
|
1263
1268
|
if (this.ignoreCase) {
|
1264
1269
|
character = character.toLowerCase();
|
1265
1270
|
}
|
@@ -804,7 +804,7 @@ export class DropDownTreeComponent {
|
|
804
804
|
if (this.disabled || this.readonly) {
|
805
805
|
return;
|
806
806
|
}
|
807
|
-
if (event.
|
807
|
+
if (event.code === Keys.Tab && this.isActionSheetExpanded) {
|
808
808
|
this.togglePopup(false);
|
809
809
|
return;
|
810
810
|
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, forwardRef, HostBinding, Injector, Input, isDevMode, NgZone, Output, Renderer2, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';
|
6
6
|
import { NgControl, NG_VALUE_ACCESSOR } from '@angular/forms';
|
7
|
-
import { anyChanged, guid, hasObservers, Keys, KendoInput, isDocumentAvailable, EventsOutsideAngularDirective, ResizeSensorComponent, TemplateContextDirective } from '@progress/kendo-angular-common';
|
7
|
+
import { anyChanged, guid, hasObservers, Keys, KendoInput, isDocumentAvailable, EventsOutsideAngularDirective, ResizeSensorComponent, TemplateContextDirective, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
8
8
|
import { AdaptiveService } from '@progress/kendo-angular-utils';
|
9
9
|
import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
|
10
10
|
import { NavigationService } from '../common/navigation/navigation.service';
|
@@ -201,14 +201,15 @@ export class MultiSelectTreeComponent {
|
|
201
201
|
* @hidden
|
202
202
|
*/
|
203
203
|
handleKeydown(event, input) {
|
204
|
+
const code = normalizeNumpadKeys(event);
|
204
205
|
if (event.target === this.filterInput?.nativeElement &&
|
205
|
-
(
|
206
|
+
(code === Keys.ArrowLeft || code === Keys.ArrowRight)) {
|
206
207
|
return;
|
207
208
|
}
|
208
209
|
if (input) {
|
209
210
|
event.stopImmediatePropagation();
|
210
211
|
}
|
211
|
-
const deleteTag = this.isWrapperActive &&
|
212
|
+
const deleteTag = this.isWrapperActive && code === Keys.Backspace && this.tags.length > 0;
|
212
213
|
if (deleteTag) {
|
213
214
|
this.handleBackspace();
|
214
215
|
return;
|
@@ -6,7 +6,7 @@ import { isPresent, isArray, isObjectArray, resolveAllValues, selectedIndices, g
|
|
6
6
|
import { SearchBarComponent } from '../common/searchbar.component';
|
7
7
|
import { ViewChild, Renderer2, ViewContainerRef, Component, HostBinding, Input, ElementRef, TemplateRef, Output, EventEmitter, isDevMode, forwardRef, ContentChild, ChangeDetectorRef, KeyValueDiffers, NgZone, Injector } from '@angular/core';
|
8
8
|
import { Subscription, Subject, of, merge } from 'rxjs';
|
9
|
-
import { isChanged, isDocumentAvailable, KendoInput, hasObservers, anyChanged, SuffixTemplateDirective, PrefixTemplateDirective, isControlRequired, SeparatorComponent, ResizeSensorComponent, Keys, TemplateContextDirective, guid } from '@progress/kendo-angular-common';
|
9
|
+
import { isChanged, isDocumentAvailable, KendoInput, hasObservers, anyChanged, SuffixTemplateDirective, PrefixTemplateDirective, isControlRequired, SeparatorComponent, ResizeSensorComponent, Keys, TemplateContextDirective, guid, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
10
10
|
import { AdaptiveService } from '@progress/kendo-angular-utils';
|
11
11
|
import { catchError, filter, map, take, tap } from 'rxjs/operators';
|
12
12
|
import { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';
|
@@ -956,10 +956,11 @@ export class MultiSelectComponent {
|
|
956
956
|
* @hidden
|
957
957
|
*/
|
958
958
|
handleNavigate(event) {
|
959
|
-
const
|
960
|
-
const
|
961
|
-
const
|
962
|
-
|
959
|
+
const code = normalizeNumpadKeys(event);
|
960
|
+
const navigateInput = this.text && code !== Keys.ArrowDown && code !== Keys.ArrowUp;
|
961
|
+
const selectValue = this.text && code === Keys.Enter || code === Keys.Escape;
|
962
|
+
const deleteTag = !this.text && code === Keys.Backspace && this.tags.length > 0;
|
963
|
+
if (code === Keys.Backspace && this.isActionSheetExpanded) {
|
963
964
|
return;
|
964
965
|
}
|
965
966
|
if (deleteTag) {
|
@@ -1217,7 +1218,8 @@ export class MultiSelectComponent {
|
|
1217
1218
|
merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
1218
1219
|
if (this.isOpen) {
|
1219
1220
|
event.originalEvent.preventDefault();
|
1220
|
-
|
1221
|
+
const code = normalizeNumpadKeys(event.originalEvent);
|
1222
|
+
this.optionsList.scrollWithOnePage(NavigationAction[code]);
|
1221
1223
|
}
|
1222
1224
|
})
|
1223
1225
|
].forEach(s => this.subs.add(s));
|
@@ -1408,7 +1410,7 @@ export class MultiSelectComponent {
|
|
1408
1410
|
}
|
1409
1411
|
}
|
1410
1412
|
handleKeydown(event) {
|
1411
|
-
if (this.isFocused && this.isOpen && (event.ctrlKey || event.metaKey) && event.
|
1413
|
+
if (this.isFocused && this.isOpen && (event.ctrlKey || event.metaKey) && event.code === Keys.KeyA) {
|
1412
1414
|
event.preventDefault();
|
1413
1415
|
this.handleSelectAll();
|
1414
1416
|
}
|
@@ -10,7 +10,7 @@ export const packageMetadata = {
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
11
11
|
productCode: 'KENDOUIANGULAR',
|
12
12
|
productCodes: ['KENDOUIANGULAR'],
|
13
|
-
publishDate:
|
14
|
-
version: '19.3.0-develop.
|
13
|
+
publishDate: 1754894882,
|
14
|
+
version: '19.3.0-develop.34',
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
16
16
|
};
|
@@ -5,7 +5,7 @@
|
|
5
5
|
import * as i0 from '@angular/core';
|
6
6
|
import { EventEmitter, Component, Input, HostBinding, Output, Directive, Injectable, HostListener, ViewChildren, ViewChild, forwardRef, isDevMode, ViewContainerRef, ContentChild, ContentChildren, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
7
7
|
import * as i10 from '@progress/kendo-angular-common';
|
8
|
-
import { isDocumentAvailable, isObjectPresent, removeHTMLAttributes, parseAttributes, isSafari, Keys, setHTMLAttributes, replaceMessagePlaceholder, isChanged, TemplateContextDirective, ResizeSensorComponent, closest as closest$1, isControlRequired, guid, hasObservers, KendoInput, SuffixTemplateDirective, PrefixTemplateDirective, SeparatorComponent, MultiTabStop, anyChanged, EventsOutsideAngularDirective, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_ADORNMENTS, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
|
8
|
+
import { isDocumentAvailable, isObjectPresent, removeHTMLAttributes, parseAttributes, isSafari, normalizeNumpadKeys, Keys, setHTMLAttributes, replaceMessagePlaceholder, isChanged, TemplateContextDirective, ResizeSensorComponent, closest as closest$1, isControlRequired, guid, hasObservers, KendoInput, SuffixTemplateDirective, PrefixTemplateDirective, SeparatorComponent, MultiTabStop, anyChanged, EventsOutsideAngularDirective, ToggleButtonTabStopDirective, ResizeBatchService, KENDO_ADORNMENTS, KENDO_TOGGLEBUTTONTABSTOP } from '@progress/kendo-angular-common';
|
9
9
|
export { PrefixTemplateDirective, SeparatorComponent, SuffixTemplateDirective, ToggleButtonTabStopDirective } from '@progress/kendo-angular-common';
|
10
10
|
import * as i7 from '@progress/kendo-angular-utils';
|
11
11
|
import { AdaptiveService } from '@progress/kendo-angular-utils';
|
@@ -37,8 +37,8 @@ const packageMetadata = {
|
|
37
37
|
productName: 'Kendo UI for Angular',
|
38
38
|
productCode: 'KENDOUIANGULAR',
|
39
39
|
productCodes: ['KENDOUIANGULAR'],
|
40
|
-
publishDate:
|
41
|
-
version: '19.3.0-develop.
|
40
|
+
publishDate: 1754894882,
|
41
|
+
version: '19.3.0-develop.34',
|
42
42
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
43
43
|
};
|
44
44
|
|
@@ -672,7 +672,8 @@ class SearchBarComponent {
|
|
672
672
|
this.onBlur.emit(event);
|
673
673
|
}
|
674
674
|
handleKeydown(event) {
|
675
|
-
|
675
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
676
|
+
const keyCode = normalizeNumpadKeys(event);
|
676
677
|
const keys = [Keys.ArrowUp, Keys.ArrowDown, Keys.ArrowLeft, Keys.ArrowRight, Keys.Enter,
|
677
678
|
Keys.Escape, Keys.Delete, Keys.Backspace, Keys.Home, Keys.End, Keys.PageDown, Keys.PageUp];
|
678
679
|
if (keys.indexOf(keyCode) > -1) {
|
@@ -1532,7 +1533,8 @@ class NavigationService {
|
|
1532
1533
|
this.selectionService = selectionService;
|
1533
1534
|
}
|
1534
1535
|
process(args) {
|
1535
|
-
|
1536
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
1537
|
+
const keyCode = normalizeNumpadKeys(args.originalEvent);
|
1536
1538
|
const altKey = args.originalEvent.altKey;
|
1537
1539
|
const shiftKey = args.originalEvent.shiftKey;
|
1538
1540
|
const ctrlKey = args.originalEvent.ctrlKey || args.originalEvent.metaKey;
|
@@ -3055,7 +3057,7 @@ class SharedDropDownEventsDirective {
|
|
3055
3057
|
cursorInsideWrapper = false;
|
3056
3058
|
}));
|
3057
3059
|
this.subscriptions.add(this.renderer.listen(hostElement, 'keydown', (args) => {
|
3058
|
-
if (args.
|
3060
|
+
if (args.code === Keys.Tab) {
|
3059
3061
|
tabbing = true;
|
3060
3062
|
}
|
3061
3063
|
else {
|
@@ -4145,7 +4147,8 @@ class AutoCompleteComponent {
|
|
4145
4147
|
this.subs.add(merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
4146
4148
|
if (this.isOpen) {
|
4147
4149
|
event.originalEvent.preventDefault();
|
4148
|
-
|
4150
|
+
const code = normalizeNumpadKeys(event.originalEvent);
|
4151
|
+
this.optionsList.scrollWithOnePage(NavigationAction[code]);
|
4149
4152
|
}
|
4150
4153
|
}));
|
4151
4154
|
}
|
@@ -5603,7 +5606,8 @@ class ComboBoxComponent extends MultiTabStop {
|
|
5603
5606
|
this.subs.add(merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
5604
5607
|
if (this.isOpen) {
|
5605
5608
|
event.originalEvent.preventDefault();
|
5606
|
-
|
5609
|
+
const code = normalizeNumpadKeys(event.originalEvent);
|
5610
|
+
this.optionsList.scrollWithOnePage(NavigationAction[code]);
|
5607
5611
|
}
|
5608
5612
|
}));
|
5609
5613
|
this.subs.add(this.navigationService.esc.subscribe(this.handleEscape.bind(this)));
|
@@ -5952,14 +5956,18 @@ class ComboBoxComponent extends MultiTabStop {
|
|
5952
5956
|
if (this.disabled || this.readonly) {
|
5953
5957
|
return;
|
5954
5958
|
}
|
5955
|
-
|
5959
|
+
// on some keyboards, Home and End keys are mapped to Numpad keys
|
5960
|
+
const code = normalizeNumpadKeys(event);
|
5961
|
+
const isHomeKey = code === Keys.Home;
|
5962
|
+
const isEndKey = code === Keys.End;
|
5963
|
+
if (isHomeKey || isEndKey) {
|
5956
5964
|
return;
|
5957
5965
|
}
|
5958
5966
|
if (!hasSelected) {
|
5959
|
-
if (
|
5967
|
+
if (code === Keys.ArrowDown) {
|
5960
5968
|
offset = -1;
|
5961
5969
|
}
|
5962
|
-
else if (
|
5970
|
+
else if (code === Keys.ArrowUp) {
|
5963
5971
|
offset = 1;
|
5964
5972
|
}
|
5965
5973
|
}
|
@@ -7532,7 +7540,11 @@ class DropDownListComponent {
|
|
7532
7540
|
if (this.disabled || this.readonly) {
|
7533
7541
|
return;
|
7534
7542
|
}
|
7535
|
-
|
7543
|
+
// on some keyboards, Home and End keys are mapped to Numpad keys
|
7544
|
+
const code = normalizeNumpadKeys(event);
|
7545
|
+
const isHomeKey = code === Keys.Home;
|
7546
|
+
const isEndKey = code === Keys.End;
|
7547
|
+
const isHomeEnd = isHomeKey || isEndKey;
|
7536
7548
|
const isFilterFocused = this.filterable && this.isFocused && this.isOpen;
|
7537
7549
|
if (isFilterFocused && isHomeEnd) {
|
7538
7550
|
return;
|
@@ -7540,10 +7552,10 @@ class DropDownListComponent {
|
|
7540
7552
|
const hasSelected = isPresent(this.selectionService.selected[0]);
|
7541
7553
|
const focusedItemNotSelected = isPresent(this.selectionService.focused) && !this.selectionService.isSelected(this.selectionService.focused);
|
7542
7554
|
if (!hasSelected || focusedItemNotSelected) {
|
7543
|
-
if (
|
7555
|
+
if (code === Keys.ArrowDown || code === Keys.ArrowRight && this.leftRightArrowsNavigation) {
|
7544
7556
|
offset = -1;
|
7545
7557
|
}
|
7546
|
-
else if (
|
7558
|
+
else if (code === Keys.ArrowUp || code === Keys.ArrowLeft && this.leftRightArrowsNavigation) {
|
7547
7559
|
offset = 1;
|
7548
7560
|
}
|
7549
7561
|
}
|
@@ -7995,7 +8007,8 @@ class DropDownListComponent {
|
|
7995
8007
|
this.subs.add(merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
7996
8008
|
if (this.isOpen) {
|
7997
8009
|
event.originalEvent.preventDefault();
|
7998
|
-
|
8010
|
+
const code = normalizeNumpadKeys(event.originalEvent);
|
8011
|
+
this.optionsList.scrollWithOnePage(NavigationAction[code]);
|
7999
8012
|
}
|
8000
8013
|
}));
|
8001
8014
|
this.subs.add(this.navigationService.open.subscribe(() => this.togglePopup(true)));
|
@@ -8190,10 +8203,10 @@ class DropDownListComponent {
|
|
8190
8203
|
}
|
8191
8204
|
}
|
8192
8205
|
onKeyPress(event) {
|
8193
|
-
if (event.which === 0 || event.
|
8206
|
+
if (event.which === 0 || event.code === Keys.Enter || event.code === Keys.NumpadEnter || event.key.length > 1) {
|
8194
8207
|
return;
|
8195
8208
|
}
|
8196
|
-
let character =
|
8209
|
+
let character = event.key;
|
8197
8210
|
if (this.ignoreCase) {
|
8198
8211
|
character = character.toLowerCase();
|
8199
8212
|
}
|
@@ -10183,10 +10196,11 @@ class MultiSelectComponent {
|
|
10183
10196
|
* @hidden
|
10184
10197
|
*/
|
10185
10198
|
handleNavigate(event) {
|
10186
|
-
const
|
10187
|
-
const
|
10188
|
-
const
|
10189
|
-
|
10199
|
+
const code = normalizeNumpadKeys(event);
|
10200
|
+
const navigateInput = this.text && code !== Keys.ArrowDown && code !== Keys.ArrowUp;
|
10201
|
+
const selectValue = this.text && code === Keys.Enter || code === Keys.Escape;
|
10202
|
+
const deleteTag = !this.text && code === Keys.Backspace && this.tags.length > 0;
|
10203
|
+
if (code === Keys.Backspace && this.isActionSheetExpanded) {
|
10190
10204
|
return;
|
10191
10205
|
}
|
10192
10206
|
if (deleteTag) {
|
@@ -10444,7 +10458,8 @@ class MultiSelectComponent {
|
|
10444
10458
|
merge(this.navigationService.pagedown, this.navigationService.pageup).subscribe((event) => {
|
10445
10459
|
if (this.isOpen) {
|
10446
10460
|
event.originalEvent.preventDefault();
|
10447
|
-
|
10461
|
+
const code = normalizeNumpadKeys(event.originalEvent);
|
10462
|
+
this.optionsList.scrollWithOnePage(NavigationAction[code]);
|
10448
10463
|
}
|
10449
10464
|
})
|
10450
10465
|
].forEach(s => this.subs.add(s));
|
@@ -10635,7 +10650,7 @@ class MultiSelectComponent {
|
|
10635
10650
|
}
|
10636
10651
|
}
|
10637
10652
|
handleKeydown(event) {
|
10638
|
-
if (this.isFocused && this.isOpen && (event.ctrlKey || event.metaKey) && event.
|
10653
|
+
if (this.isFocused && this.isOpen && (event.ctrlKey || event.metaKey) && event.code === Keys.KeyA) {
|
10639
10654
|
event.preventDefault();
|
10640
10655
|
this.handleSelectAll();
|
10641
10656
|
}
|
@@ -13382,7 +13397,7 @@ class DropDownTreeComponent {
|
|
13382
13397
|
if (this.disabled || this.readonly) {
|
13383
13398
|
return;
|
13384
13399
|
}
|
13385
|
-
if (event.
|
13400
|
+
if (event.code === Keys.Tab && this.isActionSheetExpanded) {
|
13386
13401
|
this.togglePopup(false);
|
13387
13402
|
return;
|
13388
13403
|
}
|
@@ -15125,14 +15140,15 @@ class MultiSelectTreeComponent {
|
|
15125
15140
|
* @hidden
|
15126
15141
|
*/
|
15127
15142
|
handleKeydown(event, input) {
|
15143
|
+
const code = normalizeNumpadKeys(event);
|
15128
15144
|
if (event.target === this.filterInput?.nativeElement &&
|
15129
|
-
(
|
15145
|
+
(code === Keys.ArrowLeft || code === Keys.ArrowRight)) {
|
15130
15146
|
return;
|
15131
15147
|
}
|
15132
15148
|
if (input) {
|
15133
15149
|
event.stopImmediatePropagation();
|
15134
15150
|
}
|
15135
|
-
const deleteTag = this.isWrapperActive &&
|
15151
|
+
const deleteTag = this.isWrapperActive && code === Keys.Backspace && this.tags.length > 0;
|
15136
15152
|
if (deleteTag) {
|
15137
15153
|
this.handleBackspace();
|
15138
15154
|
return;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@progress/kendo-angular-dropdowns",
|
3
|
-
"version": "19.3.0-develop.
|
3
|
+
"version": "19.3.0-develop.34",
|
4
4
|
"description": "A wide variety of native Angular dropdown components including AutoComplete, ComboBox, DropDownList, DropDownTree, MultiColumnComboBox, MultiSelect, and MultiSelectTree ",
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
6
6
|
"author": "Progress",
|
@@ -100,7 +100,7 @@
|
|
100
100
|
"package": {
|
101
101
|
"productName": "Kendo UI for Angular",
|
102
102
|
"productCode": "KENDOUIANGULAR",
|
103
|
-
"publishDate":
|
103
|
+
"publishDate": 1754894882,
|
104
104
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
105
105
|
}
|
106
106
|
},
|
@@ -111,18 +111,18 @@
|
|
111
111
|
"@angular/forms": "16 - 20",
|
112
112
|
"@angular/platform-browser": "16 - 20",
|
113
113
|
"@progress/kendo-licensing": "^1.7.0",
|
114
|
-
"@progress/kendo-angular-common": "19.3.0-develop.
|
115
|
-
"@progress/kendo-angular-utils": "19.3.0-develop.
|
116
|
-
"@progress/kendo-angular-l10n": "19.3.0-develop.
|
117
|
-
"@progress/kendo-angular-navigation": "19.3.0-develop.
|
118
|
-
"@progress/kendo-angular-popup": "19.3.0-develop.
|
119
|
-
"@progress/kendo-angular-icons": "19.3.0-develop.
|
120
|
-
"@progress/kendo-angular-treeview": "19.3.0-develop.
|
114
|
+
"@progress/kendo-angular-common": "19.3.0-develop.34",
|
115
|
+
"@progress/kendo-angular-utils": "19.3.0-develop.34",
|
116
|
+
"@progress/kendo-angular-l10n": "19.3.0-develop.34",
|
117
|
+
"@progress/kendo-angular-navigation": "19.3.0-develop.34",
|
118
|
+
"@progress/kendo-angular-popup": "19.3.0-develop.34",
|
119
|
+
"@progress/kendo-angular-icons": "19.3.0-develop.34",
|
120
|
+
"@progress/kendo-angular-treeview": "19.3.0-develop.34",
|
121
121
|
"rxjs": "^6.5.3 || ^7.0.0"
|
122
122
|
},
|
123
123
|
"dependencies": {
|
124
124
|
"tslib": "^2.3.1",
|
125
|
-
"@progress/kendo-angular-schematics": "19.3.0-develop.
|
125
|
+
"@progress/kendo-angular-schematics": "19.3.0-develop.34",
|
126
126
|
"@progress/kendo-common": "^1.0.1",
|
127
127
|
"node-html-parser": "^7.0.1"
|
128
128
|
},
|
@@ -4,9 +4,9 @@ const schematics_1 = require("@angular-devkit/schematics");
|
|
4
4
|
function default_1(options) {
|
5
5
|
const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'DropDownsModule', package: 'dropdowns', peerDependencies: {
|
6
6
|
// peers of the treeview
|
7
|
-
'@progress/kendo-angular-inputs': '19.3.0-develop.
|
7
|
+
'@progress/kendo-angular-inputs': '19.3.0-develop.34',
|
8
8
|
// peers of inputs
|
9
|
-
'@progress/kendo-angular-intl': '19.3.0-develop.
|
9
|
+
'@progress/kendo-angular-intl': '19.3.0-develop.34',
|
10
10
|
'@progress/kendo-drawing': '^1.17.2',
|
11
11
|
// Peer dependency of icons
|
12
12
|
'@progress/kendo-svg-icons': '^4.0.0'
|