@progress/kendo-angular-treelist 19.3.0-develop.31 → 19.3.0-develop.33
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/esm2022/column-menu/column-chooser.component.mjs +1 -1
- package/esm2022/column-menu/column-list.component.mjs +6 -5
- package/esm2022/column-menu/column-menu-item.directive.mjs +1 -1
- package/esm2022/filtering/cell/filter-cell-operators.component.mjs +2 -2
- package/esm2022/filtering/menu/filter-menu-dropdownlist.directive.mjs +1 -1
- package/esm2022/navigation/navigation.service.mjs +15 -9
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/header/header.component.mjs +7 -6
- package/esm2022/rendering/list.component.mjs +5 -3
- package/esm2022/rendering/table-body.component.mjs +1 -1
- package/esm2022/rendering/toolbar/toolbar.component.mjs +2 -2
- package/esm2022/selection/selection.service.mjs +1 -1
- package/fesm2022/progress-kendo-angular-treelist.mjs +40 -30
- package/package.json +18 -18
- package/rendering/list.component.d.ts +1 -1
- package/schematics/ngAdd/index.js +3 -3
@@ -85,7 +85,7 @@ export class ColumnChooserComponent {
|
|
85
85
|
const popupAriaElement = popupElement.querySelector('.k-popup');
|
86
86
|
this.ngZone.runOutsideAngular(() => {
|
87
87
|
this.escapeListener = this.renderer.listen(popupAriaElement, 'keydown', (e) => {
|
88
|
-
if (e.
|
88
|
+
if (e.code === Keys.Escape) {
|
89
89
|
this.close(true);
|
90
90
|
}
|
91
91
|
});
|
@@ -10,7 +10,7 @@ import { ColumnMenuChooserItemCheckedDirective } from './column-chooser-item-che
|
|
10
10
|
import { ColumnMenuService } from './column-menu.service';
|
11
11
|
import { ColumnListKeyboardNavigation } from './column-list-kb-nav.service';
|
12
12
|
import { Subscription } from 'rxjs';
|
13
|
-
import { Keys } from '@progress/kendo-angular-common';
|
13
|
+
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
14
14
|
import * as i0 from "@angular/core";
|
15
15
|
import * as i1 from "./column-list-kb-nav.service";
|
16
16
|
/**
|
@@ -128,7 +128,8 @@ export class ColumnListComponent {
|
|
128
128
|
}
|
129
129
|
}
|
130
130
|
onKeydown = (e) => {
|
131
|
-
|
131
|
+
const code = normalizeNumpadKeys(e);
|
132
|
+
if (code !== Keys.Tab) {
|
132
133
|
e.preventDefault();
|
133
134
|
}
|
134
135
|
if (e.key === 'Tab' && !e.shiftKey && this.autoSync) {
|
@@ -142,13 +143,13 @@ export class ColumnListComponent {
|
|
142
143
|
}
|
143
144
|
});
|
144
145
|
}
|
145
|
-
if (
|
146
|
+
if (code === Keys.ArrowDown) {
|
146
147
|
this.listNavigationService.next();
|
147
148
|
}
|
148
|
-
else if (
|
149
|
+
else if (code === Keys.ArrowUp) {
|
149
150
|
this.listNavigationService.prev();
|
150
151
|
}
|
151
|
-
else if (
|
152
|
+
else if (code === Keys.Space && e.target.classList.contains('k-column-list-item')) {
|
152
153
|
this.listNavigationService.toggleCheckedState();
|
153
154
|
}
|
154
155
|
};
|
@@ -104,7 +104,7 @@ export class FilterCellOperatorsComponent {
|
|
104
104
|
* @hidden
|
105
105
|
*/
|
106
106
|
clearKeydown(args) {
|
107
|
-
if (args.
|
107
|
+
if (args.code === Keys.Enter || args.code === Keys.NumpadEnter || args.code === Keys.Space) {
|
108
108
|
this.clear.emit();
|
109
109
|
}
|
110
110
|
}
|
@@ -115,7 +115,7 @@ export class FilterCellOperatorsComponent {
|
|
115
115
|
if (args.defaultPrevented) {
|
116
116
|
return;
|
117
117
|
}
|
118
|
-
if (args.
|
118
|
+
if ((args.code === Keys.Enter || args.code === Keys.NumpadEnter) && !this.dropdown.isOpen) {
|
119
119
|
this.dropdown.toggle(true);
|
120
120
|
args.preventDefault();
|
121
121
|
}
|
@@ -25,7 +25,7 @@ export class FilterMenuDropDownListDirective {
|
|
25
25
|
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
26
26
|
}
|
27
27
|
keydownHandler = (e) => {
|
28
|
-
if (e.
|
28
|
+
if (e.code === Keys.Escape && this.host.isOpen) {
|
29
29
|
e.stopPropagation();
|
30
30
|
this.host.toggle(false);
|
31
31
|
}
|
@@ -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 { ChangeDetectorRef, EventEmitter, Injectable, NgZone, Optional } from '@angular/core';
|
6
|
-
import { isDocumentAvailable, Keys } from '@progress/kendo-angular-common';
|
6
|
+
import { isDocumentAvailable, Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
7
7
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
8
8
|
import { from, interval, Subscription } from 'rxjs';
|
9
9
|
import { filter, map, switchMap, switchMapTo, take, takeUntil } from 'rxjs/operators';
|
@@ -181,7 +181,7 @@ export class NavigationService {
|
|
181
181
|
.subscribe(() => this.cursor.reset(0, 0)));
|
182
182
|
this.subs.add(this.domEvents.keydown
|
183
183
|
.subscribe(args => this.onKeydown(args)));
|
184
|
-
this.subs.add(this.domEvents.keydown.pipe(filter(args => args.
|
184
|
+
this.subs.add(this.domEvents.keydown.pipe(filter(args => args.code === Keys.Tab && this.mode === 2 /* NavigationMode.Content */), switchMapTo(this.domEvents.focusOut.pipe(takeUntil(
|
185
185
|
// Timeout if focusOut doesn't fire very soon
|
186
186
|
interval(0).pipe(take(1))))))
|
187
187
|
.subscribe(() => this.onTabout()));
|
@@ -398,8 +398,10 @@ export class NavigationService {
|
|
398
398
|
if (!this.onCellKeydown(args)) {
|
399
399
|
return;
|
400
400
|
}
|
401
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
402
|
+
const code = normalizeNumpadKeys(args);
|
401
403
|
const row = this.cursor.row;
|
402
|
-
switch (
|
404
|
+
switch (code) {
|
403
405
|
case Keys.Space:
|
404
406
|
this.updateSelection(args);
|
405
407
|
preventDefault = this.selectionService.enabled;
|
@@ -541,13 +543,15 @@ export class NavigationService {
|
|
541
543
|
if (!this.onCellKeydown(args)) {
|
542
544
|
return;
|
543
545
|
}
|
544
|
-
|
545
|
-
|
546
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
547
|
+
const code = normalizeNumpadKeys(args);
|
548
|
+
const confirm = !args.defaultPrevented && code === Keys.Enter && isTextInput(args.target);
|
549
|
+
if (code === Keys.Escape || code === Keys.F2 || confirm) {
|
546
550
|
this.leaveCell();
|
547
551
|
this.cursor.reset();
|
548
552
|
args.stopPropagation();
|
549
553
|
}
|
550
|
-
else if (isNavigationKey(
|
554
|
+
else if (isNavigationKey(code) && this.cursor.cell.focusGroup.isNavigable()) {
|
551
555
|
this.onCursorKeydown(args);
|
552
556
|
if (args.defaultPrevented) {
|
553
557
|
this.leaveCell();
|
@@ -555,10 +559,12 @@ export class NavigationService {
|
|
555
559
|
}
|
556
560
|
}
|
557
561
|
onCellKeydown(args) {
|
562
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
563
|
+
const code = normalizeNumpadKeys(args);
|
558
564
|
if (this.editService.isEditingCell()) {
|
559
|
-
const confirm =
|
560
|
-
const cancel =
|
561
|
-
const navigate = isNavigationKey(
|
565
|
+
const confirm = code === Keys.Enter || code === Keys.NumpadEnter;
|
566
|
+
const cancel = code === Keys.Escape;
|
567
|
+
const navigate = isNavigationKey(code);
|
562
568
|
if (confirm) {
|
563
569
|
return !this.editService.closeCell(args);
|
564
570
|
}
|
@@ -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: 1754589919,
|
14
|
+
version: '19.3.0-develop.33',
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
16
16
|
};
|
@@ -8,7 +8,7 @@ import { NgFor, NgIf, NgClass, NgStyle } from '@angular/common';
|
|
8
8
|
import { Subscription, of, merge } from "rxjs";
|
9
9
|
import { filter, map, switchMap, tap, takeUntil } from 'rxjs/operators';
|
10
10
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
11
|
-
import { Keys, DraggableDirective, TemplateContextDirective } from '@progress/kendo-angular-common';
|
11
|
+
import { Keys, DraggableDirective, TemplateContextDirective, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
12
12
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
13
13
|
import { sortAscSmallIcon, sortDescSmallIcon } from '@progress/kendo-svg-icons';
|
14
14
|
import { isColumnComponent } from '../../columns/column.component';
|
@@ -224,14 +224,15 @@ export class HeaderComponent {
|
|
224
224
|
: event[`${multiSortKey}Key`];
|
225
225
|
}
|
226
226
|
onHeaderKeydown(column, args) {
|
227
|
-
|
227
|
+
const code = normalizeNumpadKeys(args);
|
228
|
+
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu) {
|
228
229
|
args.preventDefault();
|
229
230
|
args.stopImmediatePropagation();
|
230
231
|
const filterMenu = this.filterMenus.find(fm => fm.column === column);
|
231
232
|
filterMenu.toggle(filterMenu.anchor.nativeElement, filterMenu.template);
|
232
233
|
return;
|
233
234
|
}
|
234
|
-
if (
|
235
|
+
if (code === Keys.ArrowDown && args.altKey && this.showColumnMenu(column)) {
|
235
236
|
args.preventDefault();
|
236
237
|
args.stopImmediatePropagation();
|
237
238
|
const columnMenu = this.columnMenus.find(cm => cm.column === column);
|
@@ -239,12 +240,12 @@ export class HeaderComponent {
|
|
239
240
|
return;
|
240
241
|
}
|
241
242
|
const isCtrlOrMeta = args.ctrlKey || args.metaKey;
|
242
|
-
const isLeftOrRightArrow =
|
243
|
+
const isLeftOrRightArrow = code === Keys.ArrowLeft || code === Keys.ArrowRight;
|
243
244
|
const isReorderingKeyShortcut = isLeftOrRightArrow && isCtrlOrMeta;
|
244
245
|
if (isReorderingKeyShortcut && this.isReorderable(column)) {
|
245
246
|
args.preventDefault();
|
246
247
|
const columnsCount = this.columnInfoService.leafNamedColumns.length;
|
247
|
-
const reorderDirection =
|
248
|
+
const reorderDirection = code === Keys.ArrowLeft ? -1 : 1;
|
248
249
|
const rtlMultiplier = this.contextService.localization.rtl ? -1 : 1;
|
249
250
|
const reorderDirectionOffset = reorderDirection * rtlMultiplier;
|
250
251
|
const newIndex = column.leafIndex + reorderDirectionOffset;
|
@@ -261,7 +262,7 @@ export class HeaderComponent {
|
|
261
262
|
if (!this.sortable || args.defaultPrevented || column.sortable === false) {
|
262
263
|
return;
|
263
264
|
}
|
264
|
-
if (
|
265
|
+
if (code === Keys.Enter && isPresent(column.field)) {
|
265
266
|
const modifier = this.matchModifier(args);
|
266
267
|
this.sortService.sort(this.toggleSort(column, modifier));
|
267
268
|
}
|
@@ -19,7 +19,7 @@ import { SuspendService } from '../scrolling/suspend.service';
|
|
19
19
|
import { expandColumns, sumColumnWidths } from "../columns/column-common";
|
20
20
|
import { ScrollSyncService } from "../scrolling/scroll-sync.service";
|
21
21
|
import { ResizeService } from "../layout/resize.service";
|
22
|
-
import { EventsOutsideAngularDirective, ResizeSensorComponent } from "@progress/kendo-angular-common";
|
22
|
+
import { EventsOutsideAngularDirective, normalizeNumpadKeys, ResizeSensorComponent } from "@progress/kendo-angular-common";
|
23
23
|
import { BrowserSupportService } from "../layout/browser-support.service";
|
24
24
|
import { EditService } from '../editing/edit.service';
|
25
25
|
import { NavigationService } from '../navigation/navigation.service';
|
@@ -291,8 +291,10 @@ export class ListComponent {
|
|
291
291
|
}
|
292
292
|
}
|
293
293
|
lockedKeydown(args) {
|
294
|
-
|
295
|
-
|
294
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
295
|
+
const code = normalizeNumpadKeys(args);
|
296
|
+
if (code === Keys.PageDown || code === Keys.PageUp) {
|
297
|
+
const dir = code === Keys.PageDown ? 1 : -1;
|
296
298
|
const element = this.container.nativeElement;
|
297
299
|
element.scrollTop += element.offsetHeight * dir * 0.8;
|
298
300
|
args.preventDefault();
|
@@ -297,7 +297,7 @@ export class TableBodyComponent {
|
|
297
297
|
this.domEvents.cellClick.emit(args);
|
298
298
|
}
|
299
299
|
cellKeydownHandler(args) {
|
300
|
-
if (args.
|
300
|
+
if (args.code === Keys.Enter || args.code === Keys.NumpadEnter) {
|
301
301
|
this.clickHandler(args);
|
302
302
|
}
|
303
303
|
}
|
@@ -6,7 +6,7 @@
|
|
6
6
|
import { Component, Input, HostBinding, Renderer2, ElementRef } from '@angular/core';
|
7
7
|
import { NgIf, NgTemplateOutlet } from '@angular/common';
|
8
8
|
import { Subscription } from 'rxjs';
|
9
|
-
import { Keys, isDocumentAvailable } from '@progress/kendo-angular-common';
|
9
|
+
import { Keys, isDocumentAvailable, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
10
10
|
import { ContextService } from './../../common/provider.service';
|
11
11
|
import * as i0 from "@angular/core";
|
12
12
|
import * as i1 from "./../../common/provider.service";
|
@@ -44,7 +44,7 @@ export class ToolbarComponent {
|
|
44
44
|
}
|
45
45
|
onKeyDown(event) {
|
46
46
|
if (this.navigable && isDocumentAvailable() && this.navigationService.navigableElements.length) {
|
47
|
-
const keyCode = event
|
47
|
+
const keyCode = normalizeNumpadKeys(event);
|
48
48
|
if (keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowRight) {
|
49
49
|
event.preventDefault();
|
50
50
|
const dir = keyCode === Keys.ArrowLeft ? -1 : 1;
|
@@ -111,7 +111,7 @@ export class SelectionService {
|
|
111
111
|
}
|
112
112
|
const { dataItem, column, columnIndex, originalEvent } = args;
|
113
113
|
const ctrlKey = originalEvent.ctrlKey || originalEvent.metaKey;
|
114
|
-
if ((originalEvent.
|
114
|
+
if (((originalEvent.code === Keys.Enter || originalEvent.code === Keys.NumpadEnter) && !ctrlKey) || (originalEvent.button && originalEvent.button !== 0)) {
|
115
115
|
return;
|
116
116
|
}
|
117
117
|
const selected = this.isSelected(dataItem, column, columnIndex);
|
@@ -5,7 +5,7 @@
|
|
5
5
|
import * as i0 from '@angular/core';
|
6
6
|
import { Directive, Optional, EventEmitter, Injectable, QueryList, Input, ContentChildren, ContentChild, InjectionToken, forwardRef, Component, SkipSelf, Host, isDevMode, SecurityContext, Inject, Output, HostBinding, Pipe, ViewChild, ViewChildren, Self, HostListener, NgZone, TemplateRef, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
|
7
7
|
import * as i1$4 from '@progress/kendo-angular-common';
|
8
|
-
import { isDocumentAvailable, isPresent as isPresent$1, hasClasses as hasClasses$1, Keys, anyChanged, isChanged as isChanged$1, ResizeSensorComponent, EventsOutsideAngularDirective, KendoInput, replaceMessagePlaceholder, guid, DraggableDirective, TemplateContextDirective, hasObservers, ResizeBatchService } from '@progress/kendo-angular-common';
|
8
|
+
import { isDocumentAvailable, isPresent as isPresent$1, hasClasses as hasClasses$1, Keys, normalizeNumpadKeys, anyChanged, isChanged as isChanged$1, ResizeSensorComponent, EventsOutsideAngularDirective, KendoInput, replaceMessagePlaceholder, guid, DraggableDirective, TemplateContextDirective, hasObservers, ResizeBatchService } from '@progress/kendo-angular-common';
|
9
9
|
import * as i2 from '@progress/kendo-angular-icons';
|
10
10
|
import { IconWrapperComponent, IconsService, KENDO_ICONS } from '@progress/kendo-angular-icons';
|
11
11
|
import { DatePickerComponent, DatePickerCustomMessagesComponent, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService as NavigationService$1 } from '@progress/kendo-angular-dateinputs';
|
@@ -49,8 +49,8 @@ const packageMetadata = {
|
|
49
49
|
productName: 'Kendo UI for Angular',
|
50
50
|
productCode: 'KENDOUIANGULAR',
|
51
51
|
productCodes: ['KENDOUIANGULAR'],
|
52
|
-
publishDate:
|
53
|
-
version: '19.3.0-develop.
|
52
|
+
publishDate: 1754589919,
|
53
|
+
version: '19.3.0-develop.33',
|
54
54
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
55
55
|
};
|
56
56
|
|
@@ -4358,7 +4358,7 @@ class SelectionService {
|
|
4358
4358
|
}
|
4359
4359
|
const { dataItem, column, columnIndex, originalEvent } = args;
|
4360
4360
|
const ctrlKey = originalEvent.ctrlKey || originalEvent.metaKey;
|
4361
|
-
if ((originalEvent.
|
4361
|
+
if (((originalEvent.code === Keys.Enter || originalEvent.code === Keys.NumpadEnter) && !ctrlKey) || (originalEvent.button && originalEvent.button !== 0)) {
|
4362
4362
|
return;
|
4363
4363
|
}
|
4364
4364
|
const selected = this.isSelected(dataItem, column, columnIndex);
|
@@ -4659,7 +4659,7 @@ class NavigationService {
|
|
4659
4659
|
.subscribe(() => this.cursor.reset(0, 0)));
|
4660
4660
|
this.subs.add(this.domEvents.keydown
|
4661
4661
|
.subscribe(args => this.onKeydown(args)));
|
4662
|
-
this.subs.add(this.domEvents.keydown.pipe(filter(args => args.
|
4662
|
+
this.subs.add(this.domEvents.keydown.pipe(filter(args => args.code === Keys.Tab && this.mode === 2 /* NavigationMode.Content */), switchMapTo(this.domEvents.focusOut.pipe(takeUntil(
|
4663
4663
|
// Timeout if focusOut doesn't fire very soon
|
4664
4664
|
interval(0).pipe(take(1))))))
|
4665
4665
|
.subscribe(() => this.onTabout()));
|
@@ -4876,8 +4876,10 @@ class NavigationService {
|
|
4876
4876
|
if (!this.onCellKeydown(args)) {
|
4877
4877
|
return;
|
4878
4878
|
}
|
4879
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
4880
|
+
const code = normalizeNumpadKeys(args);
|
4879
4881
|
const row = this.cursor.row;
|
4880
|
-
switch (
|
4882
|
+
switch (code) {
|
4881
4883
|
case Keys.Space:
|
4882
4884
|
this.updateSelection(args);
|
4883
4885
|
preventDefault = this.selectionService.enabled;
|
@@ -5019,13 +5021,15 @@ class NavigationService {
|
|
5019
5021
|
if (!this.onCellKeydown(args)) {
|
5020
5022
|
return;
|
5021
5023
|
}
|
5022
|
-
|
5023
|
-
|
5024
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
5025
|
+
const code = normalizeNumpadKeys(args);
|
5026
|
+
const confirm = !args.defaultPrevented && code === Keys.Enter && isTextInput(args.target);
|
5027
|
+
if (code === Keys.Escape || code === Keys.F2 || confirm) {
|
5024
5028
|
this.leaveCell();
|
5025
5029
|
this.cursor.reset();
|
5026
5030
|
args.stopPropagation();
|
5027
5031
|
}
|
5028
|
-
else if (isNavigationKey(
|
5032
|
+
else if (isNavigationKey(code) && this.cursor.cell.focusGroup.isNavigable()) {
|
5029
5033
|
this.onCursorKeydown(args);
|
5030
5034
|
if (args.defaultPrevented) {
|
5031
5035
|
this.leaveCell();
|
@@ -5033,10 +5037,12 @@ class NavigationService {
|
|
5033
5037
|
}
|
5034
5038
|
}
|
5035
5039
|
onCellKeydown(args) {
|
5040
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
5041
|
+
const code = normalizeNumpadKeys(args);
|
5036
5042
|
if (this.editService.isEditingCell()) {
|
5037
|
-
const confirm =
|
5038
|
-
const cancel =
|
5039
|
-
const navigate = isNavigationKey(
|
5043
|
+
const confirm = code === Keys.Enter || code === Keys.NumpadEnter;
|
5044
|
+
const cancel = code === Keys.Escape;
|
5045
|
+
const navigate = isNavigationKey(code);
|
5040
5046
|
if (confirm) {
|
5041
5047
|
return !this.editService.closeCell(args);
|
5042
5048
|
}
|
@@ -6775,7 +6781,7 @@ class TableBodyComponent {
|
|
6775
6781
|
this.domEvents.cellClick.emit(args);
|
6776
6782
|
}
|
6777
6783
|
cellKeydownHandler(args) {
|
6778
|
-
if (args.
|
6784
|
+
if (args.code === Keys.Enter || args.code === Keys.NumpadEnter) {
|
6779
6785
|
this.clickHandler(args);
|
6780
6786
|
}
|
6781
6787
|
}
|
@@ -8000,8 +8006,10 @@ class ListComponent {
|
|
8000
8006
|
}
|
8001
8007
|
}
|
8002
8008
|
lockedKeydown(args) {
|
8003
|
-
|
8004
|
-
|
8009
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
8010
|
+
const code = normalizeNumpadKeys(args);
|
8011
|
+
if (code === Keys.PageDown || code === Keys.PageUp) {
|
8012
|
+
const dir = code === Keys.PageDown ? 1 : -1;
|
8005
8013
|
const element = this.container.nativeElement;
|
8006
8014
|
element.scrollTop += element.offsetHeight * dir * 0.8;
|
8007
8015
|
args.preventDefault();
|
@@ -9509,7 +9517,7 @@ class FilterCellOperatorsComponent {
|
|
9509
9517
|
* @hidden
|
9510
9518
|
*/
|
9511
9519
|
clearKeydown(args) {
|
9512
|
-
if (args.
|
9520
|
+
if (args.code === Keys.Enter || args.code === Keys.NumpadEnter || args.code === Keys.Space) {
|
9513
9521
|
this.clear.emit();
|
9514
9522
|
}
|
9515
9523
|
}
|
@@ -9520,7 +9528,7 @@ class FilterCellOperatorsComponent {
|
|
9520
9528
|
if (args.defaultPrevented) {
|
9521
9529
|
return;
|
9522
9530
|
}
|
9523
|
-
if (args.
|
9531
|
+
if ((args.code === Keys.Enter || args.code === Keys.NumpadEnter) && !this.dropdown.isOpen) {
|
9524
9532
|
this.dropdown.toggle(true);
|
9525
9533
|
args.preventDefault();
|
9526
9534
|
}
|
@@ -11025,7 +11033,7 @@ class FilterMenuDropDownListDirective {
|
|
11025
11033
|
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
11026
11034
|
}
|
11027
11035
|
keydownHandler = (e) => {
|
11028
|
-
if (e.
|
11036
|
+
if (e.code === Keys.Escape && this.host.isOpen) {
|
11029
11037
|
e.stopPropagation();
|
11030
11038
|
this.host.toggle(false);
|
11031
11039
|
}
|
@@ -13200,7 +13208,8 @@ class ColumnListComponent {
|
|
13200
13208
|
}
|
13201
13209
|
}
|
13202
13210
|
onKeydown = (e) => {
|
13203
|
-
|
13211
|
+
const code = normalizeNumpadKeys(e);
|
13212
|
+
if (code !== Keys.Tab) {
|
13204
13213
|
e.preventDefault();
|
13205
13214
|
}
|
13206
13215
|
if (e.key === 'Tab' && !e.shiftKey && this.autoSync) {
|
@@ -13214,13 +13223,13 @@ class ColumnListComponent {
|
|
13214
13223
|
}
|
13215
13224
|
});
|
13216
13225
|
}
|
13217
|
-
if (
|
13226
|
+
if (code === Keys.ArrowDown) {
|
13218
13227
|
this.listNavigationService.next();
|
13219
13228
|
}
|
13220
|
-
else if (
|
13229
|
+
else if (code === Keys.ArrowUp) {
|
13221
13230
|
this.listNavigationService.prev();
|
13222
13231
|
}
|
13223
|
-
else if (
|
13232
|
+
else if (code === Keys.Space && e.target.classList.contains('k-column-list-item')) {
|
13224
13233
|
this.listNavigationService.toggleCheckedState();
|
13225
13234
|
}
|
13226
13235
|
};
|
@@ -13896,7 +13905,7 @@ class ColumnMenuItemDirective {
|
|
13896
13905
|
}
|
13897
13906
|
}
|
13898
13907
|
onTab = (e) => {
|
13899
|
-
if (e.
|
13908
|
+
if (e.code !== Keys.Tab) {
|
13900
13909
|
return;
|
13901
13910
|
}
|
13902
13911
|
if (this.isFirst && e.shiftKey && e.target === this.columnMenuItems[0]) {
|
@@ -14961,14 +14970,15 @@ class HeaderComponent {
|
|
14961
14970
|
: event[`${multiSortKey}Key`];
|
14962
14971
|
}
|
14963
14972
|
onHeaderKeydown(column, args) {
|
14964
|
-
|
14973
|
+
const code = normalizeNumpadKeys(args);
|
14974
|
+
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu) {
|
14965
14975
|
args.preventDefault();
|
14966
14976
|
args.stopImmediatePropagation();
|
14967
14977
|
const filterMenu = this.filterMenus.find(fm => fm.column === column);
|
14968
14978
|
filterMenu.toggle(filterMenu.anchor.nativeElement, filterMenu.template);
|
14969
14979
|
return;
|
14970
14980
|
}
|
14971
|
-
if (
|
14981
|
+
if (code === Keys.ArrowDown && args.altKey && this.showColumnMenu(column)) {
|
14972
14982
|
args.preventDefault();
|
14973
14983
|
args.stopImmediatePropagation();
|
14974
14984
|
const columnMenu = this.columnMenus.find(cm => cm.column === column);
|
@@ -14976,12 +14986,12 @@ class HeaderComponent {
|
|
14976
14986
|
return;
|
14977
14987
|
}
|
14978
14988
|
const isCtrlOrMeta = args.ctrlKey || args.metaKey;
|
14979
|
-
const isLeftOrRightArrow =
|
14989
|
+
const isLeftOrRightArrow = code === Keys.ArrowLeft || code === Keys.ArrowRight;
|
14980
14990
|
const isReorderingKeyShortcut = isLeftOrRightArrow && isCtrlOrMeta;
|
14981
14991
|
if (isReorderingKeyShortcut && this.isReorderable(column)) {
|
14982
14992
|
args.preventDefault();
|
14983
14993
|
const columnsCount = this.columnInfoService.leafNamedColumns.length;
|
14984
|
-
const reorderDirection =
|
14994
|
+
const reorderDirection = code === Keys.ArrowLeft ? -1 : 1;
|
14985
14995
|
const rtlMultiplier = this.contextService.localization.rtl ? -1 : 1;
|
14986
14996
|
const reorderDirectionOffset = reorderDirection * rtlMultiplier;
|
14987
14997
|
const newIndex = column.leafIndex + reorderDirectionOffset;
|
@@ -14998,7 +15008,7 @@ class HeaderComponent {
|
|
14998
15008
|
if (!this.sortable || args.defaultPrevented || column.sortable === false) {
|
14999
15009
|
return;
|
15000
15010
|
}
|
15001
|
-
if (
|
15011
|
+
if (code === Keys.Enter && isPresent(column.field)) {
|
15002
15012
|
const modifier = this.matchModifier(args);
|
15003
15013
|
this.sortService.sort(this.toggleSort(column, modifier));
|
15004
15014
|
}
|
@@ -15708,7 +15718,7 @@ class ToolbarComponent {
|
|
15708
15718
|
}
|
15709
15719
|
onKeyDown(event) {
|
15710
15720
|
if (this.navigable && isDocumentAvailable() && this.navigationService.navigableElements.length) {
|
15711
|
-
const keyCode = event
|
15721
|
+
const keyCode = normalizeNumpadKeys(event);
|
15712
15722
|
if (keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowRight) {
|
15713
15723
|
event.preventDefault();
|
15714
15724
|
const dir = keyCode === Keys.ArrowLeft ? -1 : 1;
|
@@ -22755,7 +22765,7 @@ class ColumnChooserComponent {
|
|
22755
22765
|
const popupAriaElement = popupElement.querySelector('.k-popup');
|
22756
22766
|
this.ngZone.runOutsideAngular(() => {
|
22757
22767
|
this.escapeListener = this.renderer.listen(popupAriaElement, 'keydown', (e) => {
|
22758
|
-
if (e.
|
22768
|
+
if (e.code === Keys.Escape) {
|
22759
22769
|
this.close(true);
|
22760
22770
|
}
|
22761
22771
|
});
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@progress/kendo-angular-treelist",
|
3
|
-
"version": "19.3.0-develop.
|
3
|
+
"version": "19.3.0-develop.33",
|
4
4
|
"description": "Kendo UI TreeList for Angular - Display hierarchical data in an Angular tree grid view that supports sorting, filtering, paging, and much more.",
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
6
6
|
"author": "Progress",
|
@@ -24,7 +24,7 @@
|
|
24
24
|
"package": {
|
25
25
|
"productName": "Kendo UI for Angular",
|
26
26
|
"productCode": "KENDOUIANGULAR",
|
27
|
-
"publishDate":
|
27
|
+
"publishDate": 1754589919,
|
28
28
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
29
29
|
}
|
30
30
|
},
|
@@ -37,26 +37,26 @@
|
|
37
37
|
"@progress/kendo-data-query": "^1.0.0",
|
38
38
|
"@progress/kendo-drawing": "^1.21.0",
|
39
39
|
"@progress/kendo-licensing": "^1.7.0",
|
40
|
-
"@progress/kendo-angular-buttons": "19.3.0-develop.
|
41
|
-
"@progress/kendo-angular-common": "19.3.0-develop.
|
42
|
-
"@progress/kendo-angular-dateinputs": "19.3.0-develop.
|
43
|
-
"@progress/kendo-angular-dropdowns": "19.3.0-develop.
|
44
|
-
"@progress/kendo-angular-excel-export": "19.3.0-develop.
|
45
|
-
"@progress/kendo-angular-icons": "19.3.0-develop.
|
46
|
-
"@progress/kendo-angular-inputs": "19.3.0-develop.
|
47
|
-
"@progress/kendo-angular-intl": "19.3.0-develop.
|
48
|
-
"@progress/kendo-angular-l10n": "19.3.0-develop.
|
49
|
-
"@progress/kendo-angular-label": "19.3.0-develop.
|
50
|
-
"@progress/kendo-angular-pager": "19.3.0-develop.
|
51
|
-
"@progress/kendo-angular-pdf-export": "19.3.0-develop.
|
52
|
-
"@progress/kendo-angular-popup": "19.3.0-develop.
|
53
|
-
"@progress/kendo-angular-toolbar": "19.3.0-develop.
|
54
|
-
"@progress/kendo-angular-utils": "19.3.0-develop.
|
40
|
+
"@progress/kendo-angular-buttons": "19.3.0-develop.33",
|
41
|
+
"@progress/kendo-angular-common": "19.3.0-develop.33",
|
42
|
+
"@progress/kendo-angular-dateinputs": "19.3.0-develop.33",
|
43
|
+
"@progress/kendo-angular-dropdowns": "19.3.0-develop.33",
|
44
|
+
"@progress/kendo-angular-excel-export": "19.3.0-develop.33",
|
45
|
+
"@progress/kendo-angular-icons": "19.3.0-develop.33",
|
46
|
+
"@progress/kendo-angular-inputs": "19.3.0-develop.33",
|
47
|
+
"@progress/kendo-angular-intl": "19.3.0-develop.33",
|
48
|
+
"@progress/kendo-angular-l10n": "19.3.0-develop.33",
|
49
|
+
"@progress/kendo-angular-label": "19.3.0-develop.33",
|
50
|
+
"@progress/kendo-angular-pager": "19.3.0-develop.33",
|
51
|
+
"@progress/kendo-angular-pdf-export": "19.3.0-develop.33",
|
52
|
+
"@progress/kendo-angular-popup": "19.3.0-develop.33",
|
53
|
+
"@progress/kendo-angular-toolbar": "19.3.0-develop.33",
|
54
|
+
"@progress/kendo-angular-utils": "19.3.0-develop.33",
|
55
55
|
"rxjs": "^6.5.3 || ^7.0.0"
|
56
56
|
},
|
57
57
|
"dependencies": {
|
58
58
|
"tslib": "^2.3.1",
|
59
|
-
"@progress/kendo-angular-schematics": "19.3.0-develop.
|
59
|
+
"@progress/kendo-angular-schematics": "19.3.0-develop.33",
|
60
60
|
"@progress/kendo-common": "^1.0.1",
|
61
61
|
"@progress/kendo-file-saver": "^1.0.0"
|
62
62
|
},
|
@@ -113,7 +113,7 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
|
|
113
113
|
init(): void;
|
114
114
|
lockedScroll(): void;
|
115
115
|
lockedMousewheel(args: any): void;
|
116
|
-
lockedKeydown(args:
|
116
|
+
lockedKeydown(args: KeyboardEvent): void;
|
117
117
|
updateViewportColumns(range?: any): void;
|
118
118
|
private attachContainerScroll;
|
119
119
|
private createScroller;
|
@@ -4,13 +4,13 @@ const schematics_1 = require("@angular-devkit/schematics");
|
|
4
4
|
function default_1(options) {
|
5
5
|
const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'TreeListModule', package: 'treelist', peerDependencies: {
|
6
6
|
// peer dep of the dropdowns
|
7
|
-
'@progress/kendo-angular-treeview': '19.3.0-develop.
|
7
|
+
'@progress/kendo-angular-treeview': '19.3.0-develop.33',
|
8
8
|
// peer dependency of kendo-angular-inputs
|
9
|
-
'@progress/kendo-angular-dialog': '19.3.0-develop.
|
9
|
+
'@progress/kendo-angular-dialog': '19.3.0-develop.33',
|
10
10
|
// peer dependency of kendo-angular-icons
|
11
11
|
'@progress/kendo-svg-icons': '^4.0.0',
|
12
12
|
// peer dependency of kendo-angular-dateinputs
|
13
|
-
'@progress/kendo-angular-navigation': '19.3.0-develop.
|
13
|
+
'@progress/kendo-angular-navigation': '19.3.0-develop.33',
|
14
14
|
} });
|
15
15
|
return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
|
16
16
|
}
|