@progress/kendo-angular-grid 19.3.0-develop.32 → 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 +8 -7
- package/esm2022/column-menu/column-menu-item.directive.mjs +1 -1
- package/esm2022/editing-directives/in-cell-editing.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/grouping/group-panel.component.mjs +6 -5
- package/esm2022/navigation/navigation.service.mjs +24 -21
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/header/header.component.mjs +8 -7
- package/esm2022/rendering/list.component.mjs +5 -3
- package/esm2022/rendering/table-body.component.mjs +2 -2
- package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +11 -9
- package/esm2022/selection/selection-checkbox.directive.mjs +1 -1
- package/fesm2022/progress-kendo-angular-grid.mjs +68 -58
- package/grouping/group-panel.component.d.ts +1 -1
- package/package.json +21 -21
- package/schematics/ngAdd/index.js +4 -4
|
@@ -93,7 +93,7 @@ export class ColumnChooserComponent {
|
|
|
93
93
|
const popupAriaElement = popupElement.querySelector('.k-popup');
|
|
94
94
|
this.ngZone.runOutsideAngular(() => {
|
|
95
95
|
this.escapeListener = this.renderer.listen(popupAriaElement, 'keydown', (e) => {
|
|
96
|
-
if (e.
|
|
96
|
+
if (e.code === Keys.Escape) {
|
|
97
97
|
this.close(true);
|
|
98
98
|
}
|
|
99
99
|
});
|
|
@@ -6,7 +6,7 @@ import { Component, HostBinding, Input, ElementRef, NgZone, Renderer2, Output, E
|
|
|
6
6
|
import { ColumnMenuService } from './column-menu.service';
|
|
7
7
|
import { ColumnListKeyboardNavigation } from './column-list-kb-nav.service';
|
|
8
8
|
import { ColumnMenuChooserItemCheckedDirective } from './column-chooser-item-checked.directive';
|
|
9
|
-
import { Keys } from '@progress/kendo-angular-common';
|
|
9
|
+
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
|
10
10
|
import { Subscription } from 'rxjs';
|
|
11
11
|
import { NgFor, NgIf, NgClass } from '@angular/common';
|
|
12
12
|
import { CheckBoxComponent } from '@progress/kendo-angular-inputs';
|
|
@@ -157,13 +157,14 @@ export class ColumnListComponent {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
onKeydown = (e) => {
|
|
160
|
-
|
|
160
|
+
const code = normalizeNumpadKeys(e);
|
|
161
|
+
if (code !== Keys.Tab) {
|
|
161
162
|
e.preventDefault();
|
|
162
163
|
}
|
|
163
|
-
if (
|
|
164
|
+
if (code === 'Tab' && !e.shiftKey && this.autoSync) {
|
|
164
165
|
e.preventDefault();
|
|
165
166
|
}
|
|
166
|
-
if (
|
|
167
|
+
if (code === 'Tab' && e.shiftKey) {
|
|
167
168
|
this.ngZone.run(() => {
|
|
168
169
|
if (e.target.matches('.k-column-list-item')) {
|
|
169
170
|
e.preventDefault();
|
|
@@ -171,13 +172,13 @@ export class ColumnListComponent {
|
|
|
171
172
|
}
|
|
172
173
|
});
|
|
173
174
|
}
|
|
174
|
-
if (
|
|
175
|
+
if (code === Keys.ArrowDown) {
|
|
175
176
|
this.listNavigationService.next();
|
|
176
177
|
}
|
|
177
|
-
else if (
|
|
178
|
+
else if (code === Keys.ArrowUp) {
|
|
178
179
|
this.listNavigationService.prev();
|
|
179
180
|
}
|
|
180
|
-
else if (
|
|
181
|
+
else if (code === Keys.Space && e.target.classList.contains('k-column-list-item')) {
|
|
181
182
|
this.listNavigationService.toggleCheckedState();
|
|
182
183
|
}
|
|
183
184
|
};
|
|
@@ -74,7 +74,7 @@ export class InCellEditingDirective extends EditingDirectiveBase {
|
|
|
74
74
|
args.preventDefault();
|
|
75
75
|
}
|
|
76
76
|
else if (formGroup.dirty) {
|
|
77
|
-
if (args.originalEvent && args.originalEvent.
|
|
77
|
+
if (args.originalEvent && args.originalEvent.code === Keys.Escape) {
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
80
|
this.editService.assignValues(dataItem, formGroup.value);
|
|
@@ -114,7 +114,7 @@ export class FilterCellOperatorsComponent {
|
|
|
114
114
|
* @hidden
|
|
115
115
|
*/
|
|
116
116
|
clearKeydown(args) {
|
|
117
|
-
if (args.
|
|
117
|
+
if (args.code === Keys.Enter || args.code === Keys.NumpadEnter || args.code === Keys.Space) {
|
|
118
118
|
this.clear.emit();
|
|
119
119
|
}
|
|
120
120
|
}
|
|
@@ -125,7 +125,7 @@ export class FilterCellOperatorsComponent {
|
|
|
125
125
|
if (args.defaultPrevented) {
|
|
126
126
|
return;
|
|
127
127
|
}
|
|
128
|
-
if (args.
|
|
128
|
+
if ((args.code === Keys.Enter || args.code === Keys.NumpadEnter) && !this.dropdown.isOpen) {
|
|
129
129
|
this.dropdown.toggle(true);
|
|
130
130
|
args.preventDefault();
|
|
131
131
|
}
|
|
@@ -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
|
}
|
|
@@ -16,7 +16,7 @@ import { ContextService } from '../common/provider.service';
|
|
|
16
16
|
import { PopupService } from '@progress/kendo-angular-popup';
|
|
17
17
|
import { ChipComponent, ChipListComponent } from '@progress/kendo-angular-buttons';
|
|
18
18
|
import { closest } from '../rendering/common/dom-queries';
|
|
19
|
-
import { DraggableDirective, EventsOutsideAngularDirective, Keys } from '@progress/kendo-angular-common';
|
|
19
|
+
import { DraggableDirective, EventsOutsideAngularDirective, Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
|
20
20
|
import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
21
21
|
import { DraggableColumnDirective } from '../dragdrop/draggable-column.directive';
|
|
22
22
|
import { NgIf, NgFor } from '@angular/common';
|
|
@@ -176,18 +176,19 @@ export class GroupPanelComponent {
|
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
178
|
handleKeyDown = (e) => {
|
|
179
|
-
|
|
179
|
+
const code = normalizeNumpadKeys(e);
|
|
180
|
+
if (code === Keys.ArrowDown || code === Keys.ArrowUp) {
|
|
180
181
|
e.preventDefault();
|
|
181
182
|
const relatedItemType = e.target.matches(':first-child') ? 'next' : 'previous';
|
|
182
183
|
this.activateMenuItem(e.target, relatedItemType);
|
|
183
184
|
}
|
|
184
|
-
else if (
|
|
185
|
+
else if (code === Keys.Escape) {
|
|
185
186
|
this.destroyMenu(true);
|
|
186
187
|
}
|
|
187
|
-
else if (
|
|
188
|
+
else if (code === Keys.Tab) {
|
|
188
189
|
this.destroyMenu(true);
|
|
189
190
|
}
|
|
190
|
-
else if (
|
|
191
|
+
else if (code === Keys.Space || code === Keys.Enter) {
|
|
191
192
|
this.handleMenuClick(e);
|
|
192
193
|
}
|
|
193
194
|
};
|
|
@@ -11,7 +11,7 @@ import { GridFocusableElement } from './grid-focusable-element';
|
|
|
11
11
|
import { NavigationCursor } from './navigation-cursor';
|
|
12
12
|
import { NavigationModel } from './navigation-model';
|
|
13
13
|
import { DomEventsService } from '../common/dom-events.service';
|
|
14
|
-
import { hasClasses, isDocumentAvailable, isPresent, Keys } from '@progress/kendo-angular-common';
|
|
14
|
+
import { hasClasses, isDocumentAvailable, isPresent, Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
|
15
15
|
import { EditService } from '../editing/edit.service';
|
|
16
16
|
import { GroupsService } from '../grouping/groups.service';
|
|
17
17
|
import { PagerContextService } from '@progress/kendo-angular-pager';
|
|
@@ -226,7 +226,7 @@ export class NavigationService {
|
|
|
226
226
|
.subscribe(() => {
|
|
227
227
|
this.isShiftPressed = false;
|
|
228
228
|
}));
|
|
229
|
-
this.subs.add(this.domEvents.keydown.pipe(filter(args => args.
|
|
229
|
+
this.subs.add(this.domEvents.keydown.pipe(filter(args => args.code === Keys.Tab && this.mode === 2 /* NavigationMode.Content */), switchMapTo(this.domEvents.focusOut.pipe(takeUntil(
|
|
230
230
|
// Timeout if focusOut doesn't fire very soon
|
|
231
231
|
interval(0).pipe(take(1))))))
|
|
232
232
|
.subscribe(() => this.onTabout()));
|
|
@@ -501,14 +501,16 @@ export class NavigationService {
|
|
|
501
501
|
return;
|
|
502
502
|
}
|
|
503
503
|
const row = this.cursor.row;
|
|
504
|
-
|
|
505
|
-
const
|
|
506
|
-
const
|
|
504
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
505
|
+
const code = normalizeNumpadKeys(args);
|
|
506
|
+
const dir = code === Keys.ArrowDown ? 'Down' : 'Up';
|
|
507
|
+
const right = code === Keys.ArrowRight;
|
|
508
|
+
const isArrowKey = code === Keys.ArrowDown || code === Keys.ArrowUp || code === Keys.ArrowLeft || code === Keys.ArrowRight;
|
|
507
509
|
if (!this.isShiftPressed && args.shiftKey && isArrowKey) {
|
|
508
510
|
startNewSelection = true;
|
|
509
511
|
this.isShiftPressed = true;
|
|
510
512
|
}
|
|
511
|
-
switch (
|
|
513
|
+
switch (code) {
|
|
512
514
|
case Keys.ArrowDown:
|
|
513
515
|
case Keys.ArrowUp:
|
|
514
516
|
if (rowspan > 1) {
|
|
@@ -623,7 +625,7 @@ export class NavigationService {
|
|
|
623
625
|
case Keys.Enter:
|
|
624
626
|
case Keys.F2: {
|
|
625
627
|
if (this.stackedCellEntered) {
|
|
626
|
-
if (
|
|
628
|
+
if (code === Keys.F2 && row.dataRowIndex > -1) {
|
|
627
629
|
this.zone.run(() => {
|
|
628
630
|
this.editService.beginEdit(row.dataRowIndex);
|
|
629
631
|
});
|
|
@@ -639,7 +641,7 @@ export class NavigationService {
|
|
|
639
641
|
this.zone.run(() => this.detailsService.toggleRow(row.dataRowIndex, row.dataItem));
|
|
640
642
|
}
|
|
641
643
|
else {
|
|
642
|
-
if (
|
|
644
|
+
if (code === Keys.F2 && row.dataRowIndex > -1) {
|
|
643
645
|
this.zone.run(() => {
|
|
644
646
|
this.editService.beginEdit(row.dataRowIndex);
|
|
645
647
|
});
|
|
@@ -683,12 +685,11 @@ export class NavigationService {
|
|
|
683
685
|
if (!this.onCellKeydown(args)) {
|
|
684
686
|
return;
|
|
685
687
|
}
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
}
|
|
688
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
689
|
+
const code = normalizeNumpadKeys(args);
|
|
690
|
+
const confirm = !args.defaultPrevented && code === Keys.Enter && isTextInput(args.target);
|
|
691
|
+
if (code === Keys.Escape || code === Keys.F2 || confirm) {
|
|
692
|
+
if (this.tableCellEntered && code === Keys.F2 && this.activeRow.dataRowIndex > -1) {
|
|
692
693
|
this.zone.run(() => {
|
|
693
694
|
this.editService.beginEdit(this.activeRow.dataRowIndex);
|
|
694
695
|
});
|
|
@@ -699,7 +700,7 @@ export class NavigationService {
|
|
|
699
700
|
this.cursor.reset();
|
|
700
701
|
args.stopPropagation();
|
|
701
702
|
}
|
|
702
|
-
else if (isNavigationKey(
|
|
703
|
+
else if (isNavigationKey(code) && this.cursor.cell.focusGroup.isNavigable()) {
|
|
703
704
|
this.onCursorKeydown(args);
|
|
704
705
|
if (args.defaultPrevented) {
|
|
705
706
|
this.leaveCell();
|
|
@@ -708,9 +709,11 @@ export class NavigationService {
|
|
|
708
709
|
}
|
|
709
710
|
onCellKeydown(args) {
|
|
710
711
|
if (this.editService.isEditingCell()) {
|
|
711
|
-
|
|
712
|
-
const
|
|
713
|
-
const
|
|
712
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
713
|
+
const code = normalizeNumpadKeys(args);
|
|
714
|
+
const confirm = code === Keys.Enter;
|
|
715
|
+
const cancel = code === Keys.Escape;
|
|
716
|
+
const navigate = isNavigationKey(code);
|
|
714
717
|
if (confirm) {
|
|
715
718
|
this.editService.closeCell(args);
|
|
716
719
|
}
|
|
@@ -869,10 +872,10 @@ export class NavigationService {
|
|
|
869
872
|
if (!stackedCell || !tableCell) {
|
|
870
873
|
return;
|
|
871
874
|
}
|
|
872
|
-
if (args.
|
|
875
|
+
if (args.code === Keys.Tab) {
|
|
873
876
|
this.handleStackedTabNavigation(args);
|
|
874
877
|
}
|
|
875
|
-
else if (args.
|
|
878
|
+
else if (args.code === Keys.Backspace || args.code === Keys.Delete) {
|
|
876
879
|
if (this.activeRow && this.activeRow.dataRowIndex >= 0 && this.activeRow.dataItem) {
|
|
877
880
|
const row = this.cursor.row;
|
|
878
881
|
if (!row.groupItem && !this.cursor.cell.detailExpandCell) {
|
|
@@ -883,7 +886,7 @@ export class NavigationService {
|
|
|
883
886
|
}
|
|
884
887
|
}
|
|
885
888
|
}
|
|
886
|
-
else if (isInStackedCell && (args.
|
|
889
|
+
else if (isInStackedCell && (args.code === Keys.Enter || args.code === Keys.NumpadEnter || args.code === Keys.Escape)) {
|
|
887
890
|
this.editService.closeCell(args);
|
|
888
891
|
this.activeCell.focusGroup.activate();
|
|
889
892
|
this.activeCell.focusGroup.focusableChildren[this.stackedFocusedCellIndex]?.focus();
|
|
@@ -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: 1754589878,
|
|
14
|
+
version: '19.3.0-develop.33',
|
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
16
16
|
};
|
|
@@ -16,7 +16,7 @@ import { columnsToRender, sortColumns, isInSpanColumn } from "../../columns/colu
|
|
|
16
16
|
import { SinglePopupService } from '../../common/single-popup.service';
|
|
17
17
|
import { hasFilterMenu, hasFilterRow } from '../../filtering/filterable';
|
|
18
18
|
import { IdService } from '../../common/id.service';
|
|
19
|
-
import { DraggableDirective, isDocumentAvailable, Keys, TemplateContextDirective } from '@progress/kendo-angular-common';
|
|
19
|
+
import { DraggableDirective, isDocumentAvailable, Keys, normalizeNumpadKeys, TemplateContextDirective } from '@progress/kendo-angular-common';
|
|
20
20
|
import { DropTargetDirective } from '../../dragdrop/drop-target.directive';
|
|
21
21
|
import { DraggableColumnDirective } from '../../dragdrop/draggable-column.directive';
|
|
22
22
|
import { DragHintService } from '../../dragdrop/drag-hint.service';
|
|
@@ -168,14 +168,15 @@ export class HeaderComponent {
|
|
|
168
168
|
this.sortColumn(toggledColumn);
|
|
169
169
|
}
|
|
170
170
|
onHeaderKeydown(column, args) {
|
|
171
|
-
|
|
171
|
+
const code = normalizeNumpadKeys(args);
|
|
172
|
+
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu) {
|
|
172
173
|
args.preventDefault();
|
|
173
174
|
args.stopImmediatePropagation();
|
|
174
175
|
const filterMenu = this.filterMenus.find(fm => fm.column === column);
|
|
175
176
|
filterMenu.toggle(filterMenu.anchor.nativeElement, filterMenu.template);
|
|
176
177
|
return;
|
|
177
178
|
}
|
|
178
|
-
if (
|
|
179
|
+
if (code === Keys.ArrowDown && args.altKey && this.showColumnMenu(column)) {
|
|
179
180
|
args.preventDefault();
|
|
180
181
|
args.stopImmediatePropagation();
|
|
181
182
|
const columnMenu = this.columnMenus.find(cm => cm.column === column);
|
|
@@ -183,7 +184,7 @@ export class HeaderComponent {
|
|
|
183
184
|
return;
|
|
184
185
|
}
|
|
185
186
|
const isCtrlOrMeta = args.ctrlKey || args.metaKey;
|
|
186
|
-
const isGroupingKeyShortcut = (
|
|
187
|
+
const isGroupingKeyShortcut = (code === Keys.Enter || code === Keys.Space) && isCtrlOrMeta;
|
|
187
188
|
if (isGroupingKeyShortcut && this.isGroupable(column)) {
|
|
188
189
|
args.preventDefault();
|
|
189
190
|
args.stopImmediatePropagation();
|
|
@@ -199,12 +200,12 @@ export class HeaderComponent {
|
|
|
199
200
|
this.contextService.grid.groupChange.emit(this.groups);
|
|
200
201
|
return;
|
|
201
202
|
}
|
|
202
|
-
const isLeftOrRightArrow =
|
|
203
|
+
const isLeftOrRightArrow = code === Keys.ArrowLeft || code === Keys.ArrowRight;
|
|
203
204
|
const isReorderingKeyShortcut = isLeftOrRightArrow && isCtrlOrMeta;
|
|
204
205
|
if (isReorderingKeyShortcut && this.isReorderable(column)) {
|
|
205
206
|
args.preventDefault();
|
|
206
207
|
const columnsCount = this.columnInfoService.leafNamedColumns.length;
|
|
207
|
-
const reorderDirection =
|
|
208
|
+
const reorderDirection = code === Keys.ArrowLeft ? -1 : 1;
|
|
208
209
|
const rtlMultiplier = this.contextService.localization.rtl ? -1 : 1;
|
|
209
210
|
const reorderDirectionOffset = reorderDirection * rtlMultiplier;
|
|
210
211
|
const newIndex = column.leafIndex + reorderDirectionOffset;
|
|
@@ -221,7 +222,7 @@ export class HeaderComponent {
|
|
|
221
222
|
if (!this.sortable || args.defaultPrevented || column.sortable === false) {
|
|
222
223
|
return;
|
|
223
224
|
}
|
|
224
|
-
if (
|
|
225
|
+
if (code === Keys.Enter && isPresent(column.field)) {
|
|
225
226
|
const modifier = this.matchModifier(args);
|
|
226
227
|
this.sortService.sort(this.toggleSort(column, modifier));
|
|
227
228
|
}
|
|
@@ -21,7 +21,7 @@ import { GroupsService } from "../grouping/groups.service";
|
|
|
21
21
|
import { expandColumns, sumColumnWidths } from "../columns/column-common";
|
|
22
22
|
import { ScrollSyncService } from "../scrolling/scroll-sync.service";
|
|
23
23
|
import { ResizeService } from "../layout/resize.service";
|
|
24
|
-
import { EventsOutsideAngularDirective, isDocumentAvailable, ResizeSensorComponent } from "@progress/kendo-angular-common";
|
|
24
|
+
import { EventsOutsideAngularDirective, isDocumentAvailable, normalizeNumpadKeys, ResizeSensorComponent } from "@progress/kendo-angular-common";
|
|
25
25
|
import { BrowserSupportService } from "../layout/browser-support.service";
|
|
26
26
|
import { EditService } from '../editing/edit.service';
|
|
27
27
|
import { NavigationService } from '../navigation/navigation.service';
|
|
@@ -345,8 +345,10 @@ export class ListComponent {
|
|
|
345
345
|
}
|
|
346
346
|
}
|
|
347
347
|
lockedKeydown(args) {
|
|
348
|
-
|
|
349
|
-
|
|
348
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
349
|
+
const code = normalizeNumpadKeys(args);
|
|
350
|
+
if (code === Keys.PageDown || code === Keys.PageUp) {
|
|
351
|
+
const dir = code === Keys.PageDown ? 1 : -1;
|
|
350
352
|
const element = this.container.nativeElement;
|
|
351
353
|
element.scrollTop += element.offsetHeight * dir * 0.8;
|
|
352
354
|
args.preventDefault();
|
|
@@ -314,7 +314,7 @@ export class TableBodyComponent {
|
|
|
314
314
|
const element = this.element.nativeElement;
|
|
315
315
|
const target = this.eventTarget(eventArg);
|
|
316
316
|
const selectionEnabled = this.selectable && this.selectable.enabled !== false;
|
|
317
|
-
if (eventArg.
|
|
317
|
+
if (eventArg.code === Keys.Space) {
|
|
318
318
|
if (!selectionEnabled) {
|
|
319
319
|
return;
|
|
320
320
|
}
|
|
@@ -403,7 +403,7 @@ export class TableBodyComponent {
|
|
|
403
403
|
}));
|
|
404
404
|
}
|
|
405
405
|
cellKeydownHandler(args) {
|
|
406
|
-
if (args.
|
|
406
|
+
if (args.code === Keys.Enter || args.code === Keys.NumpadEnter || args.code === Keys.Space || (this.navigationService.tableCellEntered && args.code === Keys.F2)) {
|
|
407
407
|
this.clickHandler(args);
|
|
408
408
|
}
|
|
409
409
|
}
|
|
@@ -8,7 +8,7 @@ import { IconWrapperComponent } from '@progress/kendo-angular-icons';
|
|
|
8
8
|
import { chevronUpIcon, chevronDownIcon, xCircleIcon, plusCircleIcon, xIcon } from '@progress/kendo-svg-icons';
|
|
9
9
|
import { KENDO_BUTTON } from '@progress/kendo-angular-buttons';
|
|
10
10
|
import { take } from 'rxjs/operators';
|
|
11
|
-
import { isPresent } from '@progress/kendo-angular-common';
|
|
11
|
+
import { isPresent, Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "@progress/kendo-angular-buttons";
|
|
14
14
|
/**
|
|
@@ -172,30 +172,32 @@ export class GroupToolbarToolComponent {
|
|
|
172
172
|
this.currentFocusedItemIndex = currentIndex;
|
|
173
173
|
}
|
|
174
174
|
handleGroupedKeydown(column, index, ev) {
|
|
175
|
-
|
|
175
|
+
const code = normalizeNumpadKeys(ev);
|
|
176
|
+
if (code === Keys.Enter || code === Keys.Backspace || code === Keys.Delete) {
|
|
176
177
|
this.removeGroup(column, ev);
|
|
177
178
|
}
|
|
178
|
-
else if (
|
|
179
|
+
else if (code === Keys.ArrowUp && ev.shiftKey) {
|
|
179
180
|
this.moveGroupUp(column, ev);
|
|
180
181
|
}
|
|
181
|
-
else if (
|
|
182
|
+
else if (code === Keys.ArrowDown && ev.shiftKey) {
|
|
182
183
|
this.moveGroupDown(column, ev);
|
|
183
184
|
}
|
|
184
|
-
else if (
|
|
185
|
+
else if (code === Keys.ArrowUp) {
|
|
185
186
|
this.navigateToPreviousItem();
|
|
186
187
|
}
|
|
187
|
-
else if (
|
|
188
|
+
else if (code === Keys.ArrowDown) {
|
|
188
189
|
this.navigateToNextItem();
|
|
189
190
|
}
|
|
190
191
|
}
|
|
191
192
|
handleUngroupedKeydown(column, index, ev) {
|
|
192
|
-
|
|
193
|
+
const code = normalizeNumpadKeys(ev);
|
|
194
|
+
if (code === Keys.Enter) {
|
|
193
195
|
this.addGroup(column, ev);
|
|
194
196
|
}
|
|
195
|
-
else if (
|
|
197
|
+
else if (code === Keys.ArrowUp) {
|
|
196
198
|
this.navigateToPreviousItem();
|
|
197
199
|
}
|
|
198
|
-
else if (
|
|
200
|
+
else if (code === Keys.ArrowDown) {
|
|
199
201
|
this.navigateToNextItem();
|
|
200
202
|
}
|
|
201
203
|
}
|
|
@@ -6,7 +6,7 @@ import * as i0 from '@angular/core';
|
|
|
6
6
|
import { EventEmitter, Injectable, SecurityContext, InjectionToken, Optional, Inject, Directive, SkipSelf, Input, isDevMode, QueryList, Component, ContentChildren, ContentChild, forwardRef, Host, Output, HostBinding, Pipe, TemplateRef, ChangeDetectionStrategy, ViewChildren, ViewChild, Self, NgZone, HostListener, ElementRef, ViewContainerRef, ViewEncapsulation, inject, Injector, NgModule } from '@angular/core';
|
|
7
7
|
import { merge, of, Subject, zip as zip$1, from, Subscription, interval, fromEvent, Observable, BehaviorSubject } from 'rxjs';
|
|
8
8
|
import * as i1$3 from '@progress/kendo-angular-common';
|
|
9
|
-
import { isDocumentAvailable, Keys, hasClasses as hasClasses$1, isPresent as isPresent$1, anyChanged, TemplateContextDirective, DraggableDirective, EventsOutsideAngularDirective, replaceMessagePlaceholder, isChanged as isChanged$1, KendoInput, guid, closest as closest$1, hasObservers, ResizeSensorComponent, closestInScope as closestInScope$1, isFocusable as isFocusable$1, PreventableEvent as PreventableEvent$1, getLicenseMessage, shouldShowValidationUI, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
9
|
+
import { isDocumentAvailable, Keys, hasClasses as hasClasses$1, normalizeNumpadKeys, isPresent as isPresent$1, anyChanged, TemplateContextDirective, DraggableDirective, EventsOutsideAngularDirective, replaceMessagePlaceholder, isChanged as isChanged$1, KendoInput, guid, closest as closest$1, hasObservers, ResizeSensorComponent, closestInScope as closestInScope$1, isFocusable as isFocusable$1, PreventableEvent as PreventableEvent$1, getLicenseMessage, shouldShowValidationUI, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
10
10
|
import * as i1 from '@angular/platform-browser';
|
|
11
11
|
import * as i1$1 from '@progress/kendo-angular-icons';
|
|
12
12
|
import { IconWrapperComponent, IconsService, KENDO_ICONS } from '@progress/kendo-angular-icons';
|
|
@@ -3574,7 +3574,7 @@ class NavigationService {
|
|
|
3574
3574
|
.subscribe(() => {
|
|
3575
3575
|
this.isShiftPressed = false;
|
|
3576
3576
|
}));
|
|
3577
|
-
this.subs.add(this.domEvents.keydown.pipe(filter(args => args.
|
|
3577
|
+
this.subs.add(this.domEvents.keydown.pipe(filter(args => args.code === Keys.Tab && this.mode === 2 /* NavigationMode.Content */), switchMapTo(this.domEvents.focusOut.pipe(takeUntil(
|
|
3578
3578
|
// Timeout if focusOut doesn't fire very soon
|
|
3579
3579
|
interval(0).pipe(take(1))))))
|
|
3580
3580
|
.subscribe(() => this.onTabout()));
|
|
@@ -3849,14 +3849,16 @@ class NavigationService {
|
|
|
3849
3849
|
return;
|
|
3850
3850
|
}
|
|
3851
3851
|
const row = this.cursor.row;
|
|
3852
|
-
|
|
3853
|
-
const
|
|
3854
|
-
const
|
|
3852
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
3853
|
+
const code = normalizeNumpadKeys(args);
|
|
3854
|
+
const dir = code === Keys.ArrowDown ? 'Down' : 'Up';
|
|
3855
|
+
const right = code === Keys.ArrowRight;
|
|
3856
|
+
const isArrowKey = code === Keys.ArrowDown || code === Keys.ArrowUp || code === Keys.ArrowLeft || code === Keys.ArrowRight;
|
|
3855
3857
|
if (!this.isShiftPressed && args.shiftKey && isArrowKey) {
|
|
3856
3858
|
startNewSelection = true;
|
|
3857
3859
|
this.isShiftPressed = true;
|
|
3858
3860
|
}
|
|
3859
|
-
switch (
|
|
3861
|
+
switch (code) {
|
|
3860
3862
|
case Keys.ArrowDown:
|
|
3861
3863
|
case Keys.ArrowUp:
|
|
3862
3864
|
if (rowspan > 1) {
|
|
@@ -3971,7 +3973,7 @@ class NavigationService {
|
|
|
3971
3973
|
case Keys.Enter:
|
|
3972
3974
|
case Keys.F2: {
|
|
3973
3975
|
if (this.stackedCellEntered) {
|
|
3974
|
-
if (
|
|
3976
|
+
if (code === Keys.F2 && row.dataRowIndex > -1) {
|
|
3975
3977
|
this.zone.run(() => {
|
|
3976
3978
|
this.editService.beginEdit(row.dataRowIndex);
|
|
3977
3979
|
});
|
|
@@ -3987,7 +3989,7 @@ class NavigationService {
|
|
|
3987
3989
|
this.zone.run(() => this.detailsService.toggleRow(row.dataRowIndex, row.dataItem));
|
|
3988
3990
|
}
|
|
3989
3991
|
else {
|
|
3990
|
-
if (
|
|
3992
|
+
if (code === Keys.F2 && row.dataRowIndex > -1) {
|
|
3991
3993
|
this.zone.run(() => {
|
|
3992
3994
|
this.editService.beginEdit(row.dataRowIndex);
|
|
3993
3995
|
});
|
|
@@ -4031,12 +4033,11 @@ class NavigationService {
|
|
|
4031
4033
|
if (!this.onCellKeydown(args)) {
|
|
4032
4034
|
return;
|
|
4033
4035
|
}
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
}
|
|
4036
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
4037
|
+
const code = normalizeNumpadKeys(args);
|
|
4038
|
+
const confirm = !args.defaultPrevented && code === Keys.Enter && isTextInput(args.target);
|
|
4039
|
+
if (code === Keys.Escape || code === Keys.F2 || confirm) {
|
|
4040
|
+
if (this.tableCellEntered && code === Keys.F2 && this.activeRow.dataRowIndex > -1) {
|
|
4040
4041
|
this.zone.run(() => {
|
|
4041
4042
|
this.editService.beginEdit(this.activeRow.dataRowIndex);
|
|
4042
4043
|
});
|
|
@@ -4047,7 +4048,7 @@ class NavigationService {
|
|
|
4047
4048
|
this.cursor.reset();
|
|
4048
4049
|
args.stopPropagation();
|
|
4049
4050
|
}
|
|
4050
|
-
else if (isNavigationKey(
|
|
4051
|
+
else if (isNavigationKey(code) && this.cursor.cell.focusGroup.isNavigable()) {
|
|
4051
4052
|
this.onCursorKeydown(args);
|
|
4052
4053
|
if (args.defaultPrevented) {
|
|
4053
4054
|
this.leaveCell();
|
|
@@ -4056,9 +4057,11 @@ class NavigationService {
|
|
|
4056
4057
|
}
|
|
4057
4058
|
onCellKeydown(args) {
|
|
4058
4059
|
if (this.editService.isEditingCell()) {
|
|
4059
|
-
|
|
4060
|
-
const
|
|
4061
|
-
const
|
|
4060
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
4061
|
+
const code = normalizeNumpadKeys(args);
|
|
4062
|
+
const confirm = code === Keys.Enter;
|
|
4063
|
+
const cancel = code === Keys.Escape;
|
|
4064
|
+
const navigate = isNavigationKey(code);
|
|
4062
4065
|
if (confirm) {
|
|
4063
4066
|
this.editService.closeCell(args);
|
|
4064
4067
|
}
|
|
@@ -4217,10 +4220,10 @@ class NavigationService {
|
|
|
4217
4220
|
if (!stackedCell || !tableCell) {
|
|
4218
4221
|
return;
|
|
4219
4222
|
}
|
|
4220
|
-
if (args.
|
|
4223
|
+
if (args.code === Keys.Tab) {
|
|
4221
4224
|
this.handleStackedTabNavigation(args);
|
|
4222
4225
|
}
|
|
4223
|
-
else if (args.
|
|
4226
|
+
else if (args.code === Keys.Backspace || args.code === Keys.Delete) {
|
|
4224
4227
|
if (this.activeRow && this.activeRow.dataRowIndex >= 0 && this.activeRow.dataItem) {
|
|
4225
4228
|
const row = this.cursor.row;
|
|
4226
4229
|
if (!row.groupItem && !this.cursor.cell.detailExpandCell) {
|
|
@@ -4231,7 +4234,7 @@ class NavigationService {
|
|
|
4231
4234
|
}
|
|
4232
4235
|
}
|
|
4233
4236
|
}
|
|
4234
|
-
else if (isInStackedCell && (args.
|
|
4237
|
+
else if (isInStackedCell && (args.code === Keys.Enter || args.code === Keys.NumpadEnter || args.code === Keys.Escape)) {
|
|
4235
4238
|
this.editService.closeCell(args);
|
|
4236
4239
|
this.activeCell.focusGroup.activate();
|
|
4237
4240
|
this.activeCell.focusGroup.focusableChildren[this.stackedFocusedCellIndex]?.focus();
|
|
@@ -6118,18 +6121,19 @@ class GroupPanelComponent {
|
|
|
6118
6121
|
});
|
|
6119
6122
|
}
|
|
6120
6123
|
handleKeyDown = (e) => {
|
|
6121
|
-
|
|
6124
|
+
const code = normalizeNumpadKeys(e);
|
|
6125
|
+
if (code === Keys.ArrowDown || code === Keys.ArrowUp) {
|
|
6122
6126
|
e.preventDefault();
|
|
6123
6127
|
const relatedItemType = e.target.matches(':first-child') ? 'next' : 'previous';
|
|
6124
6128
|
this.activateMenuItem(e.target, relatedItemType);
|
|
6125
6129
|
}
|
|
6126
|
-
else if (
|
|
6130
|
+
else if (code === Keys.Escape) {
|
|
6127
6131
|
this.destroyMenu(true);
|
|
6128
6132
|
}
|
|
6129
|
-
else if (
|
|
6133
|
+
else if (code === Keys.Tab) {
|
|
6130
6134
|
this.destroyMenu(true);
|
|
6131
6135
|
}
|
|
6132
|
-
else if (
|
|
6136
|
+
else if (code === Keys.Space || code === Keys.Enter) {
|
|
6133
6137
|
this.handleMenuClick(e);
|
|
6134
6138
|
}
|
|
6135
6139
|
};
|
|
@@ -7839,7 +7843,7 @@ class FilterCellOperatorsComponent {
|
|
|
7839
7843
|
* @hidden
|
|
7840
7844
|
*/
|
|
7841
7845
|
clearKeydown(args) {
|
|
7842
|
-
if (args.
|
|
7846
|
+
if (args.code === Keys.Enter || args.code === Keys.NumpadEnter || args.code === Keys.Space) {
|
|
7843
7847
|
this.clear.emit();
|
|
7844
7848
|
}
|
|
7845
7849
|
}
|
|
@@ -7850,7 +7854,7 @@ class FilterCellOperatorsComponent {
|
|
|
7850
7854
|
if (args.defaultPrevented) {
|
|
7851
7855
|
return;
|
|
7852
7856
|
}
|
|
7853
|
-
if (args.
|
|
7857
|
+
if ((args.code === Keys.Enter || args.code === Keys.NumpadEnter) && !this.dropdown.isOpen) {
|
|
7854
7858
|
this.dropdown.toggle(true);
|
|
7855
7859
|
args.preventDefault();
|
|
7856
7860
|
}
|
|
@@ -8777,7 +8781,7 @@ class FilterMenuDropDownListDirective {
|
|
|
8777
8781
|
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
|
8778
8782
|
}
|
|
8779
8783
|
keydownHandler = (e) => {
|
|
8780
|
-
if (e.
|
|
8784
|
+
if (e.code === Keys.Escape && this.host.isOpen) {
|
|
8781
8785
|
e.stopPropagation();
|
|
8782
8786
|
this.host.toggle(false);
|
|
8783
8787
|
}
|
|
@@ -12244,13 +12248,14 @@ class ColumnListComponent {
|
|
|
12244
12248
|
}
|
|
12245
12249
|
}
|
|
12246
12250
|
onKeydown = (e) => {
|
|
12247
|
-
|
|
12251
|
+
const code = normalizeNumpadKeys(e);
|
|
12252
|
+
if (code !== Keys.Tab) {
|
|
12248
12253
|
e.preventDefault();
|
|
12249
12254
|
}
|
|
12250
|
-
if (
|
|
12255
|
+
if (code === 'Tab' && !e.shiftKey && this.autoSync) {
|
|
12251
12256
|
e.preventDefault();
|
|
12252
12257
|
}
|
|
12253
|
-
if (
|
|
12258
|
+
if (code === 'Tab' && e.shiftKey) {
|
|
12254
12259
|
this.ngZone.run(() => {
|
|
12255
12260
|
if (e.target.matches('.k-column-list-item')) {
|
|
12256
12261
|
e.preventDefault();
|
|
@@ -12258,13 +12263,13 @@ class ColumnListComponent {
|
|
|
12258
12263
|
}
|
|
12259
12264
|
});
|
|
12260
12265
|
}
|
|
12261
|
-
if (
|
|
12266
|
+
if (code === Keys.ArrowDown) {
|
|
12262
12267
|
this.listNavigationService.next();
|
|
12263
12268
|
}
|
|
12264
|
-
else if (
|
|
12269
|
+
else if (code === Keys.ArrowUp) {
|
|
12265
12270
|
this.listNavigationService.prev();
|
|
12266
12271
|
}
|
|
12267
|
-
else if (
|
|
12272
|
+
else if (code === Keys.Space && e.target.classList.contains('k-column-list-item')) {
|
|
12268
12273
|
this.listNavigationService.toggleCheckedState();
|
|
12269
12274
|
}
|
|
12270
12275
|
};
|
|
@@ -12589,7 +12594,7 @@ class ColumnChooserComponent {
|
|
|
12589
12594
|
const popupAriaElement = popupElement.querySelector('.k-popup');
|
|
12590
12595
|
this.ngZone.runOutsideAngular(() => {
|
|
12591
12596
|
this.escapeListener = this.renderer.listen(popupAriaElement, 'keydown', (e) => {
|
|
12592
|
-
if (e.
|
|
12597
|
+
if (e.code === Keys.Escape) {
|
|
12593
12598
|
this.close(true);
|
|
12594
12599
|
}
|
|
12595
12600
|
});
|
|
@@ -14455,7 +14460,7 @@ class ColumnMenuItemDirective {
|
|
|
14455
14460
|
}
|
|
14456
14461
|
}
|
|
14457
14462
|
onTab = (e) => {
|
|
14458
|
-
if (e.
|
|
14463
|
+
if (e.code !== Keys.Tab) {
|
|
14459
14464
|
return;
|
|
14460
14465
|
}
|
|
14461
14466
|
if (this.isFirst && e.shiftKey && e.target === this.columnMenuItems[0]) {
|
|
@@ -18103,14 +18108,15 @@ class HeaderComponent {
|
|
|
18103
18108
|
this.sortColumn(toggledColumn);
|
|
18104
18109
|
}
|
|
18105
18110
|
onHeaderKeydown(column, args) {
|
|
18106
|
-
|
|
18111
|
+
const code = normalizeNumpadKeys(args);
|
|
18112
|
+
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu) {
|
|
18107
18113
|
args.preventDefault();
|
|
18108
18114
|
args.stopImmediatePropagation();
|
|
18109
18115
|
const filterMenu = this.filterMenus.find(fm => fm.column === column);
|
|
18110
18116
|
filterMenu.toggle(filterMenu.anchor.nativeElement, filterMenu.template);
|
|
18111
18117
|
return;
|
|
18112
18118
|
}
|
|
18113
|
-
if (
|
|
18119
|
+
if (code === Keys.ArrowDown && args.altKey && this.showColumnMenu(column)) {
|
|
18114
18120
|
args.preventDefault();
|
|
18115
18121
|
args.stopImmediatePropagation();
|
|
18116
18122
|
const columnMenu = this.columnMenus.find(cm => cm.column === column);
|
|
@@ -18118,7 +18124,7 @@ class HeaderComponent {
|
|
|
18118
18124
|
return;
|
|
18119
18125
|
}
|
|
18120
18126
|
const isCtrlOrMeta = args.ctrlKey || args.metaKey;
|
|
18121
|
-
const isGroupingKeyShortcut = (
|
|
18127
|
+
const isGroupingKeyShortcut = (code === Keys.Enter || code === Keys.Space) && isCtrlOrMeta;
|
|
18122
18128
|
if (isGroupingKeyShortcut && this.isGroupable(column)) {
|
|
18123
18129
|
args.preventDefault();
|
|
18124
18130
|
args.stopImmediatePropagation();
|
|
@@ -18134,12 +18140,12 @@ class HeaderComponent {
|
|
|
18134
18140
|
this.contextService.grid.groupChange.emit(this.groups);
|
|
18135
18141
|
return;
|
|
18136
18142
|
}
|
|
18137
|
-
const isLeftOrRightArrow =
|
|
18143
|
+
const isLeftOrRightArrow = code === Keys.ArrowLeft || code === Keys.ArrowRight;
|
|
18138
18144
|
const isReorderingKeyShortcut = isLeftOrRightArrow && isCtrlOrMeta;
|
|
18139
18145
|
if (isReorderingKeyShortcut && this.isReorderable(column)) {
|
|
18140
18146
|
args.preventDefault();
|
|
18141
18147
|
const columnsCount = this.columnInfoService.leafNamedColumns.length;
|
|
18142
|
-
const reorderDirection =
|
|
18148
|
+
const reorderDirection = code === Keys.ArrowLeft ? -1 : 1;
|
|
18143
18149
|
const rtlMultiplier = this.contextService.localization.rtl ? -1 : 1;
|
|
18144
18150
|
const reorderDirectionOffset = reorderDirection * rtlMultiplier;
|
|
18145
18151
|
const newIndex = column.leafIndex + reorderDirectionOffset;
|
|
@@ -18156,7 +18162,7 @@ class HeaderComponent {
|
|
|
18156
18162
|
if (!this.sortable || args.defaultPrevented || column.sortable === false) {
|
|
18157
18163
|
return;
|
|
18158
18164
|
}
|
|
18159
|
-
if (
|
|
18165
|
+
if (code === Keys.Enter && isPresent(column.field)) {
|
|
18160
18166
|
const modifier = this.matchModifier(args);
|
|
18161
18167
|
this.sortService.sort(this.toggleSort(column, modifier));
|
|
18162
18168
|
}
|
|
@@ -19405,7 +19411,7 @@ class SelectionCheckboxDirective {
|
|
|
19405
19411
|
}
|
|
19406
19412
|
}
|
|
19407
19413
|
onKeyDown(e) {
|
|
19408
|
-
if (e.
|
|
19414
|
+
if (e.code === Keys.Enter || e.code === Keys.NumpadEnter) {
|
|
19409
19415
|
this.onClick(e);
|
|
19410
19416
|
}
|
|
19411
19417
|
}
|
|
@@ -20431,7 +20437,7 @@ class TableBodyComponent {
|
|
|
20431
20437
|
const element = this.element.nativeElement;
|
|
20432
20438
|
const target = this.eventTarget(eventArg);
|
|
20433
20439
|
const selectionEnabled = this.selectable && this.selectable.enabled !== false;
|
|
20434
|
-
if (eventArg.
|
|
20440
|
+
if (eventArg.code === Keys.Space) {
|
|
20435
20441
|
if (!selectionEnabled) {
|
|
20436
20442
|
return;
|
|
20437
20443
|
}
|
|
@@ -20520,7 +20526,7 @@ class TableBodyComponent {
|
|
|
20520
20526
|
}));
|
|
20521
20527
|
}
|
|
20522
20528
|
cellKeydownHandler(args) {
|
|
20523
|
-
if (args.
|
|
20529
|
+
if (args.code === Keys.Enter || args.code === Keys.NumpadEnter || args.code === Keys.Space || (this.navigationService.tableCellEntered && args.code === Keys.F2)) {
|
|
20524
20530
|
this.clickHandler(args);
|
|
20525
20531
|
}
|
|
20526
20532
|
}
|
|
@@ -21995,8 +22001,8 @@ const packageMetadata = {
|
|
|
21995
22001
|
productName: 'Kendo UI for Angular',
|
|
21996
22002
|
productCode: 'KENDOUIANGULAR',
|
|
21997
22003
|
productCodes: ['KENDOUIANGULAR'],
|
|
21998
|
-
publishDate:
|
|
21999
|
-
version: '19.3.0-develop.
|
|
22004
|
+
publishDate: 1754589878,
|
|
22005
|
+
version: '19.3.0-develop.33',
|
|
22000
22006
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
22001
22007
|
};
|
|
22002
22008
|
|
|
@@ -24543,8 +24549,10 @@ class ListComponent {
|
|
|
24543
24549
|
}
|
|
24544
24550
|
}
|
|
24545
24551
|
lockedKeydown(args) {
|
|
24546
|
-
|
|
24547
|
-
|
|
24552
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
|
24553
|
+
const code = normalizeNumpadKeys(args);
|
|
24554
|
+
if (code === Keys.PageDown || code === Keys.PageUp) {
|
|
24555
|
+
const dir = code === Keys.PageDown ? 1 : -1;
|
|
24548
24556
|
const element = this.container.nativeElement;
|
|
24549
24557
|
element.scrollTop += element.offsetHeight * dir * 0.8;
|
|
24550
24558
|
args.preventDefault();
|
|
@@ -27171,30 +27179,32 @@ class GroupToolbarToolComponent {
|
|
|
27171
27179
|
this.currentFocusedItemIndex = currentIndex;
|
|
27172
27180
|
}
|
|
27173
27181
|
handleGroupedKeydown(column, index, ev) {
|
|
27174
|
-
|
|
27182
|
+
const code = normalizeNumpadKeys(ev);
|
|
27183
|
+
if (code === Keys.Enter || code === Keys.Backspace || code === Keys.Delete) {
|
|
27175
27184
|
this.removeGroup(column, ev);
|
|
27176
27185
|
}
|
|
27177
|
-
else if (
|
|
27186
|
+
else if (code === Keys.ArrowUp && ev.shiftKey) {
|
|
27178
27187
|
this.moveGroupUp(column, ev);
|
|
27179
27188
|
}
|
|
27180
|
-
else if (
|
|
27189
|
+
else if (code === Keys.ArrowDown && ev.shiftKey) {
|
|
27181
27190
|
this.moveGroupDown(column, ev);
|
|
27182
27191
|
}
|
|
27183
|
-
else if (
|
|
27192
|
+
else if (code === Keys.ArrowUp) {
|
|
27184
27193
|
this.navigateToPreviousItem();
|
|
27185
27194
|
}
|
|
27186
|
-
else if (
|
|
27195
|
+
else if (code === Keys.ArrowDown) {
|
|
27187
27196
|
this.navigateToNextItem();
|
|
27188
27197
|
}
|
|
27189
27198
|
}
|
|
27190
27199
|
handleUngroupedKeydown(column, index, ev) {
|
|
27191
|
-
|
|
27200
|
+
const code = normalizeNumpadKeys(ev);
|
|
27201
|
+
if (code === Keys.Enter) {
|
|
27192
27202
|
this.addGroup(column, ev);
|
|
27193
27203
|
}
|
|
27194
|
-
else if (
|
|
27204
|
+
else if (code === Keys.ArrowUp) {
|
|
27195
27205
|
this.navigateToPreviousItem();
|
|
27196
27206
|
}
|
|
27197
|
-
else if (
|
|
27207
|
+
else if (code === Keys.ArrowDown) {
|
|
27198
27208
|
this.navigateToNextItem();
|
|
27199
27209
|
}
|
|
27200
27210
|
}
|
|
@@ -34157,7 +34167,7 @@ class InCellEditingDirective extends EditingDirectiveBase {
|
|
|
34157
34167
|
args.preventDefault();
|
|
34158
34168
|
}
|
|
34159
34169
|
else if (formGroup.dirty) {
|
|
34160
|
-
if (args.originalEvent && args.originalEvent.
|
|
34170
|
+
if (args.originalEvent && args.originalEvent.code === Keys.Escape) {
|
|
34161
34171
|
return;
|
|
34162
34172
|
}
|
|
34163
34173
|
this.editService.assignValues(dataItem, formGroup.value);
|
|
@@ -60,7 +60,7 @@ export declare class GroupPanelComponent implements OnDestroy, DoCheck {
|
|
|
60
60
|
insert(field: string, index: number): void;
|
|
61
61
|
remove(group: GroupDescriptor): void;
|
|
62
62
|
toggleMenu(chip: ChipComponent, first: boolean, last: boolean, field: string): void;
|
|
63
|
-
handleKeyDown: (e:
|
|
63
|
+
handleKeyDown: (e: KeyboardEvent) => void;
|
|
64
64
|
handleClick: (e: any) => void;
|
|
65
65
|
canDrop(draggable: DragAndDropContext, target: DragAndDropContext): boolean;
|
|
66
66
|
private attachTargets;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-grid",
|
|
3
|
-
"version": "19.3.0-develop.
|
|
3
|
+
"version": "19.3.0-develop.33",
|
|
4
4
|
"description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"package": {
|
|
27
27
|
"productName": "Kendo UI for Angular",
|
|
28
28
|
"productCode": "KENDOUIANGULAR",
|
|
29
|
-
"publishDate":
|
|
29
|
+
"publishDate": 1754589878,
|
|
30
30
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
31
31
|
}
|
|
32
32
|
},
|
|
@@ -39,29 +39,29 @@
|
|
|
39
39
|
"@progress/kendo-data-query": "^1.0.0",
|
|
40
40
|
"@progress/kendo-drawing": "^1.21.0",
|
|
41
41
|
"@progress/kendo-licensing": "^1.7.0",
|
|
42
|
-
"@progress/kendo-angular-buttons": "19.3.0-develop.
|
|
43
|
-
"@progress/kendo-angular-common": "19.3.0-develop.
|
|
44
|
-
"@progress/kendo-angular-dateinputs": "19.3.0-develop.
|
|
45
|
-
"@progress/kendo-angular-layout": "19.3.0-develop.
|
|
46
|
-
"@progress/kendo-angular-navigation": "19.3.0-develop.
|
|
47
|
-
"@progress/kendo-angular-dropdowns": "19.3.0-develop.
|
|
48
|
-
"@progress/kendo-angular-excel-export": "19.3.0-develop.
|
|
49
|
-
"@progress/kendo-angular-icons": "19.3.0-develop.
|
|
50
|
-
"@progress/kendo-angular-inputs": "19.3.0-develop.
|
|
51
|
-
"@progress/kendo-angular-conversational-ui": "19.3.0-develop.
|
|
52
|
-
"@progress/kendo-angular-intl": "19.3.0-develop.
|
|
53
|
-
"@progress/kendo-angular-l10n": "19.3.0-develop.
|
|
54
|
-
"@progress/kendo-angular-label": "19.3.0-develop.
|
|
55
|
-
"@progress/kendo-angular-pager": "19.3.0-develop.
|
|
56
|
-
"@progress/kendo-angular-pdf-export": "19.3.0-develop.
|
|
57
|
-
"@progress/kendo-angular-popup": "19.3.0-develop.
|
|
58
|
-
"@progress/kendo-angular-toolbar": "19.3.0-develop.
|
|
59
|
-
"@progress/kendo-angular-utils": "19.3.0-develop.
|
|
42
|
+
"@progress/kendo-angular-buttons": "19.3.0-develop.33",
|
|
43
|
+
"@progress/kendo-angular-common": "19.3.0-develop.33",
|
|
44
|
+
"@progress/kendo-angular-dateinputs": "19.3.0-develop.33",
|
|
45
|
+
"@progress/kendo-angular-layout": "19.3.0-develop.33",
|
|
46
|
+
"@progress/kendo-angular-navigation": "19.3.0-develop.33",
|
|
47
|
+
"@progress/kendo-angular-dropdowns": "19.3.0-develop.33",
|
|
48
|
+
"@progress/kendo-angular-excel-export": "19.3.0-develop.33",
|
|
49
|
+
"@progress/kendo-angular-icons": "19.3.0-develop.33",
|
|
50
|
+
"@progress/kendo-angular-inputs": "19.3.0-develop.33",
|
|
51
|
+
"@progress/kendo-angular-conversational-ui": "19.3.0-develop.33",
|
|
52
|
+
"@progress/kendo-angular-intl": "19.3.0-develop.33",
|
|
53
|
+
"@progress/kendo-angular-l10n": "19.3.0-develop.33",
|
|
54
|
+
"@progress/kendo-angular-label": "19.3.0-develop.33",
|
|
55
|
+
"@progress/kendo-angular-pager": "19.3.0-develop.33",
|
|
56
|
+
"@progress/kendo-angular-pdf-export": "19.3.0-develop.33",
|
|
57
|
+
"@progress/kendo-angular-popup": "19.3.0-develop.33",
|
|
58
|
+
"@progress/kendo-angular-toolbar": "19.3.0-develop.33",
|
|
59
|
+
"@progress/kendo-angular-utils": "19.3.0-develop.33",
|
|
60
60
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"tslib": "^2.3.1",
|
|
64
|
-
"@progress/kendo-angular-schematics": "19.3.0-develop.
|
|
64
|
+
"@progress/kendo-angular-schematics": "19.3.0-develop.33",
|
|
65
65
|
"@progress/kendo-common": "^1.0.1",
|
|
66
66
|
"@progress/kendo-file-saver": "^1.0.0"
|
|
67
67
|
},
|
|
@@ -4,14 +4,14 @@ const schematics_1 = require("@angular-devkit/schematics");
|
|
|
4
4
|
function default_1(options) {
|
|
5
5
|
const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
|
|
6
6
|
// peer deps of the dropdowns
|
|
7
|
-
'@progress/kendo-angular-treeview': '19.3.0-develop.
|
|
8
|
-
'@progress/kendo-angular-navigation': '19.3.0-develop.
|
|
7
|
+
'@progress/kendo-angular-treeview': '19.3.0-develop.33',
|
|
8
|
+
'@progress/kendo-angular-navigation': '19.3.0-develop.33',
|
|
9
9
|
// peer dependency of kendo-angular-inputs
|
|
10
|
-
'@progress/kendo-angular-dialog': '19.3.0-develop.
|
|
10
|
+
'@progress/kendo-angular-dialog': '19.3.0-develop.33',
|
|
11
11
|
// peer dependency of kendo-angular-icons
|
|
12
12
|
'@progress/kendo-svg-icons': '^4.0.0',
|
|
13
13
|
// peer dependency of kendo-angular-layout
|
|
14
|
-
'@progress/kendo-angular-progressbar': '19.3.0-develop.
|
|
14
|
+
'@progress/kendo-angular-progressbar': '19.3.0-develop.33'
|
|
15
15
|
} });
|
|
16
16
|
return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
|
|
17
17
|
}
|