@progress/kendo-angular-layout 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/esm2022/drawer/list.component.mjs +5 -4
- package/esm2022/expansionpanel/expansionpanel.component.mjs +1 -1
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/panelbar/panelbar.component.mjs +8 -5
- package/esm2022/splitter/splitter-bar.component.mjs +3 -3
- package/esm2022/stepper/stepper.service.mjs +5 -3
- package/esm2022/tabstrip/events.mjs +1 -0
- package/esm2022/tabstrip/tabstrip.service.mjs +7 -6
- package/esm2022/tilelayout/keyboard-navigation.service.mjs +3 -3
- package/esm2022/timeline/timeline-card.component.mjs +1 -1
- package/esm2022/timeline/timeline-horizontal.component.mjs +6 -5
- package/fesm2022/progress-kendo-angular-layout.mjs +55 -46
- package/package.json +9 -9
- package/panelbar/panelbar.component.d.ts +1 -1
- package/splitter/splitter.service.d.ts +2 -2
- package/splitter/util.d.ts +3 -3
- package/stepper/stepper.service.d.ts +1 -1
- package/tabstrip/events.d.ts +1 -0
- package/tabstrip/tabstrip.service.d.ts +1 -1
- package/tilelayout/keyboard-navigation.service.d.ts +1 -1
- package/tilelayout/util.d.ts +2 -2
@@ -7,7 +7,7 @@ import { Component, ElementRef, Input, NgZone, Renderer2, TemplateRef, Output, E
|
|
7
7
|
import { closestItem, itemIndex } from '../common/dom-queries';
|
8
8
|
import { DRAWER_ITEM_INDEX } from './models/constants';
|
9
9
|
import { DrawerService } from './drawer.service';
|
10
|
-
import { Keys } from '@progress/kendo-angular-common';
|
10
|
+
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
11
11
|
import { ACTIVE_NESTED_LINK_SELECTOR, nestedLink } from './util';
|
12
12
|
import { DrawerListSelectEvent } from './events/drawer-list-select.event';
|
13
13
|
import { DrawerItemComponent } from './item.component';
|
@@ -52,15 +52,16 @@ export class DrawerListComponent {
|
|
52
52
|
const nativeElement = this.element.nativeElement;
|
53
53
|
this.subscriptions.add(this.renderer.listen(nativeElement, 'click', this.clickHandler.bind(this)));
|
54
54
|
this.subscriptions.add(this.renderer.listen(nativeElement, 'keydown', (e) => {
|
55
|
-
const
|
56
|
-
const
|
55
|
+
const code = normalizeNumpadKeys(e);
|
56
|
+
const isEnterOrSpace = code === Keys.Enter || code === Keys.Space;
|
57
|
+
const isArrowUpOrDown = code === Keys.ArrowUp || code === Keys.ArrowDown;
|
57
58
|
if (isEnterOrSpace) {
|
58
59
|
this.onEnterOrSpaceKeyDown(e);
|
59
60
|
}
|
60
61
|
else if (isArrowUpOrDown) {
|
61
62
|
if (e.target.classList.contains('k-drawer-item')) {
|
62
63
|
e.preventDefault();
|
63
|
-
const keyName =
|
64
|
+
const keyName = code === Keys.ArrowUp ? 'arrowUp' : 'arrowDown';
|
64
65
|
this.drawerService.changeFocusedItem(this.items, keyName, this.renderer);
|
65
66
|
}
|
66
67
|
}
|
@@ -206,7 +206,7 @@ export class ExpansionPanelComponent {
|
|
206
206
|
* @hidden
|
207
207
|
*/
|
208
208
|
keyDownHandler(ev) {
|
209
|
-
const isEnterOrSpace = ev.
|
209
|
+
const isEnterOrSpace = ev.code === Keys.Enter || ev.code === Keys.NumpadEnter || ev.code === Keys.Space;
|
210
210
|
if (this.disabled || !isEnterOrSpace) {
|
211
211
|
return;
|
212
212
|
}
|
@@ -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: 1754894812,
|
14
|
+
version: '19.3.0-develop.34',
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
16
16
|
};
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Component, ContentChild, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, QueryList, ViewChildren, isDevMode } from '@angular/core';
|
6
6
|
import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
7
|
-
import { Keys, shouldShowValidationUI, getLicenseMessage, WatermarkOverlayComponent } from '@progress/kendo-angular-common';
|
7
|
+
import { Keys, shouldShowValidationUI, getLicenseMessage, WatermarkOverlayComponent, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
8
8
|
import { validatePackage } from '@progress/kendo-licensing';
|
9
9
|
import { packageMetadata } from '../package-metadata';
|
10
10
|
import { PanelBarExpandMode } from './panelbar-expand-mode';
|
@@ -181,6 +181,7 @@ export class PanelBarComponent {
|
|
181
181
|
return {
|
182
182
|
[Keys.Space]: () => this.selectFocusedItem(),
|
183
183
|
[Keys.Enter]: () => this.selectFocusedItem(),
|
184
|
+
[Keys.NumpadEnter]: () => this.selectFocusedItem(),
|
184
185
|
[Keys.ArrowUp]: () => this.focusPreviousItem(),
|
185
186
|
[this.invertKeys(Keys.ArrowLeft, Keys.ArrowRight)]: () => this.collapseItem(),
|
186
187
|
[Keys.ArrowDown]: () => this.focusNextItem(),
|
@@ -267,12 +268,14 @@ export class PanelBarComponent {
|
|
267
268
|
*/
|
268
269
|
onComponentKeyDown(event) {
|
269
270
|
if (event.target === this.elementRef.nativeElement) {
|
270
|
-
|
271
|
-
|
272
|
-
|
271
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
272
|
+
const code = normalizeNumpadKeys(event);
|
273
|
+
if (code === Keys.Space || code === Keys.ArrowUp || code === Keys.ArrowDown ||
|
274
|
+
code === Keys.ArrowLeft || code === Keys.ArrowRight || code === Keys.Home ||
|
275
|
+
code === Keys.End || code === Keys.PageUp || code === Keys.PageDown) {
|
273
276
|
event.preventDefault();
|
274
277
|
}
|
275
|
-
const handler = this.keyBindings[
|
278
|
+
const handler = this.keyBindings[code];
|
276
279
|
//TODO: check if next item is disabled and skip operation?
|
277
280
|
if (handler) {
|
278
281
|
handler();
|
@@ -5,7 +5,7 @@
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
6
6
|
import { ChangeDetectorRef, Component, ElementRef, Host, HostBinding, Input, Renderer2 } from '@angular/core';
|
7
7
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
8
|
-
import { DraggableDirective, Keys, isObjectPresent, parseAttributes, removeHTMLAttributes, setHTMLAttributes } from '@progress/kendo-angular-common';
|
8
|
+
import { DraggableDirective, Keys, isObjectPresent, normalizeNumpadKeys, parseAttributes, removeHTMLAttributes, setHTMLAttributes } from '@progress/kendo-angular-common';
|
9
9
|
import { SplitterService } from './splitter.service';
|
10
10
|
import { Subscription, of } from 'rxjs';
|
11
11
|
import { delay, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';
|
@@ -226,9 +226,9 @@ export class SplitterBarComponent {
|
|
226
226
|
return panes.length === 2 && panes[1].collapsed;
|
227
227
|
}
|
228
228
|
onKeyDown(event) {
|
229
|
-
const keyCode = event
|
229
|
+
const keyCode = normalizeNumpadKeys(event);
|
230
230
|
const shouldToggle = event.ctrlKey || event.metaKey;
|
231
|
-
if (keyCode === Keys.Enter) {
|
231
|
+
if (keyCode === Keys.Enter || keyCode === Keys.NumpadEnter) {
|
232
232
|
event.preventDefault();
|
233
233
|
this.togglePane();
|
234
234
|
}
|
@@ -3,8 +3,7 @@
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Injectable, NgZone, ChangeDetectorRef, EventEmitter } from '@angular/core';
|
6
|
-
import { hasObservers, PreventableEvent } from '@progress/kendo-angular-common';
|
7
|
-
import { Keys } from '@progress/kendo-angular-common';
|
6
|
+
import { hasObservers, Keys, normalizeNumpadKeys, PreventableEvent } from '@progress/kendo-angular-common';
|
8
7
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
9
8
|
import { isPresent } from '../common/util';
|
10
9
|
import * as i0 from "@angular/core";
|
@@ -18,6 +17,7 @@ handlers[Keys.ArrowDown] = 'down';
|
|
18
17
|
handlers[Keys.Home] = 'home';
|
19
18
|
handlers[Keys.End] = 'end';
|
20
19
|
handlers[Keys.Enter] = 'enter';
|
20
|
+
handlers[Keys.NumpadEnter] = 'enter';
|
21
21
|
handlers[Keys.Space] = 'enter';
|
22
22
|
const handlersRTL = Object.assign({}, handlers);
|
23
23
|
handlersRTL[Keys.ArrowLeft] = 'right';
|
@@ -99,7 +99,9 @@ export class StepperService {
|
|
99
99
|
}
|
100
100
|
keydown(e) {
|
101
101
|
const current = this.focusedStep || this.currentStep;
|
102
|
-
|
102
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
103
|
+
const code = normalizeNumpadKeys(e);
|
104
|
+
const handler = this.handlers[code];
|
103
105
|
if (!isPresent(current)) {
|
104
106
|
return;
|
105
107
|
}
|
@@ -3,4 +3,5 @@
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
export { TabCloseEvent } from "./events/tabclose-event";
|
6
|
+
export { TabScrollEvent } from "./events/tabscroll-event";
|
6
7
|
export { SelectEvent } from "./events/select-event";
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
import { Injectable, NgZone } from '@angular/core';
|
6
6
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
7
|
-
import { Keys } from '@progress/kendo-angular-common';
|
7
|
+
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
8
8
|
import { isArrowKey, isHorizontalArrowKey, isNavigationKey, isVerticalArrowKey } from '../common/util';
|
9
9
|
import { SelectEvent } from './events';
|
10
10
|
import { isTabClosable, getActiveTab, isTabElement, isTablistHorizontal, getTabByIndex, getTabHeaderByIndex, resetTabSelection } from './util';
|
@@ -25,17 +25,18 @@ export class TabStripService {
|
|
25
25
|
if (!isTabElement(event.target)) {
|
26
26
|
return;
|
27
27
|
}
|
28
|
-
|
29
|
-
|
28
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
29
|
+
const code = normalizeNumpadKeys(event);
|
30
|
+
if (this.shouldHandleKey(code)) {
|
30
31
|
event.preventDefault();
|
31
32
|
}
|
32
33
|
else {
|
33
34
|
return;
|
34
35
|
}
|
35
|
-
if (isNavigationKey(
|
36
|
-
this.onNavigate(
|
36
|
+
if (isNavigationKey(code) || isArrowKey(code)) {
|
37
|
+
this.onNavigate(code);
|
37
38
|
}
|
38
|
-
else if (
|
39
|
+
else if (code === Keys.Delete || code === Keys.Backspace) {
|
39
40
|
this.onDelete();
|
40
41
|
}
|
41
42
|
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
/* eslint-disable no-unused-expressions */
|
6
6
|
import { Injectable, NgZone, Renderer2 } from '@angular/core';
|
7
|
-
import { Keys } from '@progress/kendo-angular-common';
|
7
|
+
import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
8
8
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
9
9
|
import { BehaviorSubject } from 'rxjs';
|
10
10
|
import { focusableSelector } from '@progress/kendo-angular-common';
|
@@ -36,11 +36,11 @@ export class TileLayoutKeyboardNavigationService {
|
|
36
36
|
this.localizationSubscription.unsubscribe();
|
37
37
|
}
|
38
38
|
onKeyDown(event, elem, focusableItems, settings) {
|
39
|
-
const keyCode = event
|
39
|
+
const keyCode = normalizeNumpadKeys(event);
|
40
40
|
const isTileFocused = document.activeElement === elem;
|
41
41
|
const focusedTile = settings.items.find(item => item.elem.nativeElement === elem);
|
42
42
|
const col = getCurrentCol(focusedTile, settings, this.rtl);
|
43
|
-
const isArrow = [Keys.ArrowLeft, Keys.ArrowRight, Keys.ArrowDown, Keys.ArrowUp].some(key => key ===
|
43
|
+
const isArrow = [Keys.ArrowLeft, Keys.ArrowRight, Keys.ArrowDown, Keys.ArrowUp].some(key => key === keyCode);
|
44
44
|
this.lastFocused = focusedTile;
|
45
45
|
if (keyCode === Keys.Enter && isTileFocused && focusableItems.length > 0) {
|
46
46
|
this.changeTabIndex('0', elem, focusableItems);
|
@@ -58,7 +58,7 @@ export class TimelineCardComponent {
|
|
58
58
|
if (!this.navigable) {
|
59
59
|
return;
|
60
60
|
}
|
61
|
-
if (event.
|
61
|
+
if (event.code === Keys.Space || event.code === Keys.Enter || event.code === Keys.NumpadEnter) {
|
62
62
|
event.preventDefault();
|
63
63
|
if (this.collapsible && this.orientation === 'vertical') {
|
64
64
|
this.expanded = !this.expanded;
|
@@ -6,7 +6,7 @@ import { ChangeDetectorRef, Component, ElementRef, Input, NgZone, QueryList, Ren
|
|
6
6
|
import { caretAltLeftIcon, caretAltRightIcon } from '@progress/kendo-svg-icons';
|
7
7
|
import { Subscription } from 'rxjs';
|
8
8
|
import { TimelineCardComponent } from './timeline-card.component';
|
9
|
-
import { Keys, ResizeSensorComponent, guid, isChanged, isDocumentAvailable, isPresent } from '@progress/kendo-angular-common';
|
9
|
+
import { Keys, ResizeSensorComponent, guid, isChanged, isDocumentAvailable, isPresent, normalizeNumpadKeys } from '@progress/kendo-angular-common';
|
10
10
|
import { animate, state, style, transition, trigger } from '@angular/animations';
|
11
11
|
import { TimelineService } from './timeline.service';
|
12
12
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
@@ -306,17 +306,18 @@ export class TimelineHorizontalComponent {
|
|
306
306
|
if (!this.navigable) {
|
307
307
|
return;
|
308
308
|
}
|
309
|
+
const code = normalizeNumpadKeys(event);
|
309
310
|
event.preventDefault();
|
310
|
-
if (
|
311
|
+
if (code === Keys.Home) {
|
311
312
|
this.onHomeKey();
|
312
313
|
}
|
313
|
-
else if (
|
314
|
+
else if (code === Keys.End) {
|
314
315
|
this.onEndKey();
|
315
316
|
}
|
316
|
-
else if (
|
317
|
+
else if (code === Keys.ArrowRight) {
|
317
318
|
this.onArrowRightKey();
|
318
319
|
}
|
319
|
-
else if (
|
320
|
+
else if (code === Keys.ArrowLeft) {
|
320
321
|
this.onArrowLeftKey();
|
321
322
|
}
|
322
323
|
}
|
@@ -7,7 +7,7 @@ import { Injectable, Directive, Optional, isDevMode, Component, SkipSelf, Host,
|
|
7
7
|
import * as i1 from '@progress/kendo-angular-l10n';
|
8
8
|
import { LocalizationService, L10N_PREFIX, ComponentMessages } from '@progress/kendo-angular-l10n';
|
9
9
|
import * as i1$1 from '@progress/kendo-angular-common';
|
10
|
-
import { Keys, getLicenseMessage, shouldShowValidationUI, WatermarkOverlayComponent, isDocumentAvailable, anyChanged, isObjectPresent, removeHTMLAttributes, parseAttributes, setHTMLAttributes, DraggableDirective, PreventableEvent as PreventableEvent$1, guid, ResizeSensorComponent, hasObservers, isPresent as isPresent$1, focusableSelector, isChanged } from '@progress/kendo-angular-common';
|
10
|
+
import { Keys, getLicenseMessage, shouldShowValidationUI, normalizeNumpadKeys, WatermarkOverlayComponent, isDocumentAvailable, anyChanged, isObjectPresent, removeHTMLAttributes, parseAttributes, setHTMLAttributes, DraggableDirective, PreventableEvent as PreventableEvent$1, guid, ResizeSensorComponent, hasObservers, isPresent as isPresent$1, focusableSelector, isChanged } from '@progress/kendo-angular-common';
|
11
11
|
import { validatePackage } from '@progress/kendo-licensing';
|
12
12
|
import * as i1$2 from '@angular/animations';
|
13
13
|
import { trigger, state, style, transition, animate, AUTO_STYLE } from '@angular/animations';
|
@@ -29,8 +29,8 @@ const packageMetadata = {
|
|
29
29
|
productName: 'Kendo UI for Angular',
|
30
30
|
productCode: 'KENDOUIANGULAR',
|
31
31
|
productCodes: ['KENDOUIANGULAR'],
|
32
|
-
publishDate:
|
33
|
-
version: '19.3.0-develop.
|
32
|
+
publishDate: 1754894812,
|
33
|
+
version: '19.3.0-develop.34',
|
34
34
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
35
35
|
};
|
36
36
|
|
@@ -1241,6 +1241,7 @@ class PanelBarComponent {
|
|
1241
1241
|
return {
|
1242
1242
|
[Keys.Space]: () => this.selectFocusedItem(),
|
1243
1243
|
[Keys.Enter]: () => this.selectFocusedItem(),
|
1244
|
+
[Keys.NumpadEnter]: () => this.selectFocusedItem(),
|
1244
1245
|
[Keys.ArrowUp]: () => this.focusPreviousItem(),
|
1245
1246
|
[this.invertKeys(Keys.ArrowLeft, Keys.ArrowRight)]: () => this.collapseItem(),
|
1246
1247
|
[Keys.ArrowDown]: () => this.focusNextItem(),
|
@@ -1327,12 +1328,14 @@ class PanelBarComponent {
|
|
1327
1328
|
*/
|
1328
1329
|
onComponentKeyDown(event) {
|
1329
1330
|
if (event.target === this.elementRef.nativeElement) {
|
1330
|
-
|
1331
|
-
|
1332
|
-
|
1331
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
1332
|
+
const code = normalizeNumpadKeys(event);
|
1333
|
+
if (code === Keys.Space || code === Keys.ArrowUp || code === Keys.ArrowDown ||
|
1334
|
+
code === Keys.ArrowLeft || code === Keys.ArrowRight || code === Keys.Home ||
|
1335
|
+
code === Keys.End || code === Keys.PageUp || code === Keys.PageDown) {
|
1333
1336
|
event.preventDefault();
|
1334
1337
|
}
|
1335
|
-
const handler = this.keyBindings[
|
1338
|
+
const handler = this.keyBindings[code];
|
1336
1339
|
//TODO: check if next item is disabled and skip operation?
|
1337
1340
|
if (handler) {
|
1338
1341
|
handler();
|
@@ -2459,9 +2462,9 @@ class SplitterBarComponent {
|
|
2459
2462
|
return panes.length === 2 && panes[1].collapsed;
|
2460
2463
|
}
|
2461
2464
|
onKeyDown(event) {
|
2462
|
-
const keyCode = event
|
2465
|
+
const keyCode = normalizeNumpadKeys(event);
|
2463
2466
|
const shouldToggle = event.ctrlKey || event.metaKey;
|
2464
|
-
if (keyCode === Keys.Enter) {
|
2467
|
+
if (keyCode === Keys.Enter || keyCode === Keys.NumpadEnter) {
|
2465
2468
|
event.preventDefault();
|
2466
2469
|
this.togglePane();
|
2467
2470
|
}
|
@@ -3075,6 +3078,25 @@ class TabCloseEvent {
|
|
3075
3078
|
}
|
3076
3079
|
}
|
3077
3080
|
|
3081
|
+
/**
|
3082
|
+
* Arguments for the `tabScroll` event of the TabStrip.
|
3083
|
+
* The `tabScroll` event fires when you scroll the tabs.
|
3084
|
+
*
|
3085
|
+
*/
|
3086
|
+
class TabScrollEvent extends PreventableEvent$1 {
|
3087
|
+
/**
|
3088
|
+
* The original DOM event that caused the tab scroll.
|
3089
|
+
*/
|
3090
|
+
originalEvent;
|
3091
|
+
/**
|
3092
|
+
* @hidden
|
3093
|
+
*/
|
3094
|
+
constructor(args) {
|
3095
|
+
super();
|
3096
|
+
Object.assign(this, args);
|
3097
|
+
}
|
3098
|
+
}
|
3099
|
+
|
3078
3100
|
/**
|
3079
3101
|
* Arguments for the `select` event of the TabStrip.
|
3080
3102
|
* The `select` event fires when tab is selected (clicked).
|
@@ -3227,17 +3249,18 @@ class TabStripService {
|
|
3227
3249
|
if (!isTabElement(event.target)) {
|
3228
3250
|
return;
|
3229
3251
|
}
|
3230
|
-
|
3231
|
-
|
3252
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
3253
|
+
const code = normalizeNumpadKeys(event);
|
3254
|
+
if (this.shouldHandleKey(code)) {
|
3232
3255
|
event.preventDefault();
|
3233
3256
|
}
|
3234
3257
|
else {
|
3235
3258
|
return;
|
3236
3259
|
}
|
3237
|
-
if (isNavigationKey(
|
3238
|
-
this.onNavigate(
|
3260
|
+
if (isNavigationKey(code) || isArrowKey(code)) {
|
3261
|
+
this.onNavigate(code);
|
3239
3262
|
}
|
3240
|
-
else if (
|
3263
|
+
else if (code === Keys.Delete || code === Keys.Backspace) {
|
3241
3264
|
this.onDelete();
|
3242
3265
|
}
|
3243
3266
|
}
|
@@ -3565,25 +3588,6 @@ const normalizeSettings = ({ enabled = true, scrollButtons = 'auto', mouseScroll
|
|
3565
3588
|
*/
|
3566
3589
|
const normalizeScrollableSettings = (settings) => normalizeSettings(settings === false ? { enabled: false } : settings);
|
3567
3590
|
|
3568
|
-
/**
|
3569
|
-
* Arguments for the `tabScroll` event of the TabStrip.
|
3570
|
-
* The `tabScroll` event fires when you scroll the tabs.
|
3571
|
-
*
|
3572
|
-
*/
|
3573
|
-
class TabScrollEvent extends PreventableEvent$1 {
|
3574
|
-
/**
|
3575
|
-
* The original DOM event that caused the tab scroll.
|
3576
|
-
*/
|
3577
|
-
originalEvent;
|
3578
|
-
/**
|
3579
|
-
* @hidden
|
3580
|
-
*/
|
3581
|
-
constructor(args) {
|
3582
|
-
super();
|
3583
|
-
Object.assign(this, args);
|
3584
|
-
}
|
3585
|
-
}
|
3586
|
-
|
3587
3591
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
3588
3592
|
/**
|
3589
3593
|
* @hidden
|
@@ -5574,15 +5578,16 @@ class DrawerListComponent {
|
|
5574
5578
|
const nativeElement = this.element.nativeElement;
|
5575
5579
|
this.subscriptions.add(this.renderer.listen(nativeElement, 'click', this.clickHandler.bind(this)));
|
5576
5580
|
this.subscriptions.add(this.renderer.listen(nativeElement, 'keydown', (e) => {
|
5577
|
-
const
|
5578
|
-
const
|
5581
|
+
const code = normalizeNumpadKeys(e);
|
5582
|
+
const isEnterOrSpace = code === Keys.Enter || code === Keys.Space;
|
5583
|
+
const isArrowUpOrDown = code === Keys.ArrowUp || code === Keys.ArrowDown;
|
5579
5584
|
if (isEnterOrSpace) {
|
5580
5585
|
this.onEnterOrSpaceKeyDown(e);
|
5581
5586
|
}
|
5582
5587
|
else if (isArrowUpOrDown) {
|
5583
5588
|
if (e.target.classList.contains('k-drawer-item')) {
|
5584
5589
|
e.preventDefault();
|
5585
|
-
const keyName =
|
5590
|
+
const keyName = code === Keys.ArrowUp ? 'arrowUp' : 'arrowDown';
|
5586
5591
|
this.drawerService.changeFocusedItem(this.items, keyName, this.renderer);
|
5587
5592
|
}
|
5588
5593
|
}
|
@@ -6412,6 +6417,7 @@ handlers[Keys.ArrowDown] = 'down';
|
|
6412
6417
|
handlers[Keys.Home] = 'home';
|
6413
6418
|
handlers[Keys.End] = 'end';
|
6414
6419
|
handlers[Keys.Enter] = 'enter';
|
6420
|
+
handlers[Keys.NumpadEnter] = 'enter';
|
6415
6421
|
handlers[Keys.Space] = 'enter';
|
6416
6422
|
const handlersRTL = Object.assign({}, handlers);
|
6417
6423
|
handlersRTL[Keys.ArrowLeft] = 'right';
|
@@ -6493,7 +6499,9 @@ class StepperService {
|
|
6493
6499
|
}
|
6494
6500
|
keydown(e) {
|
6495
6501
|
const current = this.focusedStep || this.currentStep;
|
6496
|
-
|
6502
|
+
// on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
|
6503
|
+
const code = normalizeNumpadKeys(e);
|
6504
|
+
const handler = this.handlers[code];
|
6497
6505
|
if (!isPresent(current)) {
|
6498
6506
|
return;
|
6499
6507
|
}
|
@@ -8897,7 +8905,7 @@ class ExpansionPanelComponent {
|
|
8897
8905
|
* @hidden
|
8898
8906
|
*/
|
8899
8907
|
keyDownHandler(ev) {
|
8900
|
-
const isEnterOrSpace = ev.
|
8908
|
+
const isEnterOrSpace = ev.code === Keys.Enter || ev.code === Keys.NumpadEnter || ev.code === Keys.Space;
|
8901
8909
|
if (this.disabled || !isEnterOrSpace) {
|
8902
8910
|
return;
|
8903
8911
|
}
|
@@ -9891,11 +9899,11 @@ class TileLayoutKeyboardNavigationService {
|
|
9891
9899
|
this.localizationSubscription.unsubscribe();
|
9892
9900
|
}
|
9893
9901
|
onKeyDown(event, elem, focusableItems, settings) {
|
9894
|
-
const keyCode = event
|
9902
|
+
const keyCode = normalizeNumpadKeys(event);
|
9895
9903
|
const isTileFocused = document.activeElement === elem;
|
9896
9904
|
const focusedTile = settings.items.find(item => item.elem.nativeElement === elem);
|
9897
9905
|
const col = getCurrentCol(focusedTile, settings, this.rtl);
|
9898
|
-
const isArrow = [Keys.ArrowLeft, Keys.ArrowRight, Keys.ArrowDown, Keys.ArrowUp].some(key => key ===
|
9906
|
+
const isArrow = [Keys.ArrowLeft, Keys.ArrowRight, Keys.ArrowDown, Keys.ArrowUp].some(key => key === keyCode);
|
9899
9907
|
this.lastFocused = focusedTile;
|
9900
9908
|
if (keyCode === Keys.Enter && isTileFocused && focusableItems.length > 0) {
|
9901
9909
|
this.changeTabIndex('0', elem, focusableItems);
|
@@ -11600,7 +11608,7 @@ class TimelineCardComponent {
|
|
11600
11608
|
if (!this.navigable) {
|
11601
11609
|
return;
|
11602
11610
|
}
|
11603
|
-
if (event.
|
11611
|
+
if (event.code === Keys.Space || event.code === Keys.Enter || event.code === Keys.NumpadEnter) {
|
11604
11612
|
event.preventDefault();
|
11605
11613
|
if (this.collapsible && this.orientation === 'vertical') {
|
11606
11614
|
this.expanded = !this.expanded;
|
@@ -12245,17 +12253,18 @@ class TimelineHorizontalComponent {
|
|
12245
12253
|
if (!this.navigable) {
|
12246
12254
|
return;
|
12247
12255
|
}
|
12256
|
+
const code = normalizeNumpadKeys(event);
|
12248
12257
|
event.preventDefault();
|
12249
|
-
if (
|
12258
|
+
if (code === Keys.Home) {
|
12250
12259
|
this.onHomeKey();
|
12251
12260
|
}
|
12252
|
-
else if (
|
12261
|
+
else if (code === Keys.End) {
|
12253
12262
|
this.onEndKey();
|
12254
12263
|
}
|
12255
|
-
else if (
|
12264
|
+
else if (code === Keys.ArrowRight) {
|
12256
12265
|
this.onArrowRightKey();
|
12257
12266
|
}
|
12258
|
-
else if (
|
12267
|
+
else if (code === Keys.ArrowLeft) {
|
12259
12268
|
this.onArrowLeftKey();
|
12260
12269
|
}
|
12261
12270
|
}
|
@@ -13886,5 +13895,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
13886
13895
|
* Generated bundle index. Do not edit.
|
13887
13896
|
*/
|
13888
13897
|
|
13889
|
-
export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, KENDO_AVATAR, KENDO_CARD, KENDO_DRAWER, KENDO_EXPANSIONPANEL, KENDO_GRIDLAYOUT, KENDO_LAYOUT, KENDO_PANELBAR, KENDO_SPLITTER, KENDO_STACKLAYOUT, KENDO_STEPPER, KENDO_TABSTRIP, KENDO_TILELAYOUT, KENDO_TIMELINE, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemClickEvent, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective, TimelineCardActionsTemplateDirective, TimelineCardBodyTemplateDirective, TimelineCardHeaderTemplateDirective, TimelineComponent, TimelineCustomMessagesComponent, TimelineModule };
|
13898
|
+
export { AvatarComponent, AvatarCustomMessagesComponent, AvatarModule, CardAction, CardActionsComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CardMediaDirective, CardModule, CardSeparatorDirective, CardSubtitleDirective, CardTitleDirective, DrawerComponent, DrawerContainerComponent, DrawerContentComponent, DrawerFooterTemplateDirective, DrawerHeaderTemplateDirective, DrawerItemTemplateDirective, DrawerModule, DrawerSelectEvent, DrawerTemplateDirective, ExpansionPanelActionEvent, ExpansionPanelComponent, ExpansionPanelModule, ExpansionPanelTitleDirective, GridLayoutComponent, GridLayoutItemComponent, GridLayoutModule, KENDO_AVATAR, KENDO_CARD, KENDO_DRAWER, KENDO_EXPANSIONPANEL, KENDO_GRIDLAYOUT, KENDO_LAYOUT, KENDO_PANELBAR, KENDO_SPLITTER, KENDO_STACKLAYOUT, KENDO_STEPPER, KENDO_TABSTRIP, KENDO_TILELAYOUT, KENDO_TIMELINE, LayoutModule, LocalizedAvatarMessagesDirective, LocalizedStepperMessagesDirective, LocalizedTabStripMessagesDirective, PanelBarCollapseEvent, PanelBarComponent, PanelBarContentDirective, PanelBarExpandEvent, PanelBarExpandMode, PanelBarItemClickEvent, PanelBarItemComponent, PanelBarItemTemplateDirective, PanelBarItemTitleDirective, PanelBarModule, PanelBarSelectEvent, PanelBarStateChangeEvent, SelectEvent, SplitterComponent, SplitterModule, SplitterPaneComponent, StackLayoutComponent, StackLayoutModule, StepperActivateEvent, StepperComponent, StepperCustomMessagesComponent, StepperIndicatorTemplateDirective, StepperLabelTemplateDirective, StepperModule, StepperStepTemplateDirective, TabCloseEvent, TabComponent, TabContentDirective, TabScrollEvent, TabStripComponent, TabStripCustomMessagesComponent, TabStripModule, TabStripTabComponent, TabTemplateDirective, TabTitleDirective, TileLayoutComponent, TileLayoutItemBodyComponent, TileLayoutItemComponent, TileLayoutItemHeaderComponent, TileLayoutModule, TileLayoutReorderEvent, TileLayoutResizeEvent, TileLayoutResizeHandleDirective, TimelineCardActionsTemplateDirective, TimelineCardBodyTemplateDirective, TimelineCardHeaderTemplateDirective, TimelineComponent, TimelineCustomMessagesComponent, TimelineModule };
|
13890
13899
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@progress/kendo-angular-layout",
|
3
|
-
"version": "19.3.0-develop.
|
3
|
+
"version": "19.3.0-develop.34",
|
4
4
|
"description": "Kendo UI for Angular Layout Package - a collection of components to create professional application layoyts",
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
6
6
|
"author": "Progress",
|
@@ -50,7 +50,7 @@
|
|
50
50
|
"package": {
|
51
51
|
"productName": "Kendo UI for Angular",
|
52
52
|
"productCode": "KENDOUIANGULAR",
|
53
|
-
"publishDate":
|
53
|
+
"publishDate": 1754894812,
|
54
54
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"
|
55
55
|
}
|
56
56
|
},
|
@@ -60,17 +60,17 @@
|
|
60
60
|
"@angular/core": "16 - 20",
|
61
61
|
"@angular/platform-browser": "16 - 20",
|
62
62
|
"@progress/kendo-licensing": "^1.7.0",
|
63
|
-
"@progress/kendo-angular-common": "19.3.0-develop.
|
64
|
-
"@progress/kendo-angular-l10n": "19.3.0-develop.
|
65
|
-
"@progress/kendo-angular-progressbar": "19.3.0-develop.
|
66
|
-
"@progress/kendo-angular-icons": "19.3.0-develop.
|
67
|
-
"@progress/kendo-angular-buttons": "19.3.0-develop.
|
68
|
-
"@progress/kendo-angular-intl": "19.3.0-develop.
|
63
|
+
"@progress/kendo-angular-common": "19.3.0-develop.34",
|
64
|
+
"@progress/kendo-angular-l10n": "19.3.0-develop.34",
|
65
|
+
"@progress/kendo-angular-progressbar": "19.3.0-develop.34",
|
66
|
+
"@progress/kendo-angular-icons": "19.3.0-develop.34",
|
67
|
+
"@progress/kendo-angular-buttons": "19.3.0-develop.34",
|
68
|
+
"@progress/kendo-angular-intl": "19.3.0-develop.34",
|
69
69
|
"rxjs": "^6.5.3 || ^7.0.0"
|
70
70
|
},
|
71
71
|
"dependencies": {
|
72
72
|
"tslib": "^2.3.1",
|
73
|
-
"@progress/kendo-angular-schematics": "19.3.0-develop.
|
73
|
+
"@progress/kendo-angular-schematics": "19.3.0-develop.34",
|
74
74
|
"@progress/kendo-draggable": "^3.0.2",
|
75
75
|
"node-html-parser": "^7.0.1"
|
76
76
|
},
|
@@ -46,8 +46,8 @@ export declare class SplitterService {
|
|
46
46
|
fixedHeight: boolean;
|
47
47
|
constructor(zone: NgZone);
|
48
48
|
tryToggle(paneIndex: number): boolean;
|
49
|
-
togglePane(keyCode:
|
50
|
-
resizePane(keyCode:
|
49
|
+
togglePane(keyCode: string, index: number): void;
|
50
|
+
resizePane(keyCode: string, index: number): void;
|
51
51
|
toggleContentOverlay(index: number, show: boolean): void;
|
52
52
|
dragState(splitbarIndex: number): SplitterDragState;
|
53
53
|
setSize(state: SplitterDragState, delta: number): void;
|
package/splitter/util.d.ts
CHANGED
@@ -6,12 +6,12 @@ import { SplitterPaneComponent } from "./splitter-pane.component";
|
|
6
6
|
/**
|
7
7
|
* @hidden
|
8
8
|
*/
|
9
|
-
export declare const shouldTogglePrev: (keyCode:
|
9
|
+
export declare const shouldTogglePrev: (keyCode: string, prev: SplitterPaneComponent, next: SplitterPaneComponent) => boolean;
|
10
10
|
/**
|
11
11
|
* @hidden
|
12
12
|
*/
|
13
|
-
export declare const shouldToggleNext: (keyCode:
|
13
|
+
export declare const shouldToggleNext: (keyCode: string, prev: SplitterPaneComponent, next: SplitterPaneComponent) => boolean;
|
14
14
|
/**
|
15
15
|
* @hidden
|
16
16
|
*/
|
17
|
-
export declare const shouldToggleOrResize: (keyCode:
|
17
|
+
export declare const shouldToggleOrResize: (keyCode: string, orientation: string) => boolean;
|
@@ -22,7 +22,7 @@ export declare class StepperService {
|
|
22
22
|
emit(event: string, eventArgs: any): boolean;
|
23
23
|
onActivate(currentIdx: number, originalEvent: any): void;
|
24
24
|
validateSteps(): void;
|
25
|
-
keydown(e:
|
25
|
+
keydown(e: KeyboardEvent): void;
|
26
26
|
left(): void;
|
27
27
|
right(): void;
|
28
28
|
up(): void;
|
package/tabstrip/events.d.ts
CHANGED
@@ -3,4 +3,5 @@
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
5
5
|
export { TabCloseEvent } from "./events/tabclose-event";
|
6
|
+
export { TabScrollEvent } from "./events/tabscroll-event";
|
6
7
|
export { SelectEvent } from "./events/select-event";
|
@@ -15,7 +15,7 @@ export declare class TabStripService {
|
|
15
15
|
private ngZone;
|
16
16
|
owner: TabStripComponent;
|
17
17
|
constructor(localization: LocalizationService, ngZone: NgZone);
|
18
|
-
onKeyDown(event:
|
18
|
+
onKeyDown(event: KeyboardEvent): void;
|
19
19
|
onTabSelect(tab: TabStripTabComponent, index: number): void;
|
20
20
|
selectTab(tab: TabStripTabComponent, index: number): void;
|
21
21
|
private onNavigate;
|
@@ -24,7 +24,7 @@ export declare class TileLayoutKeyboardNavigationService {
|
|
24
24
|
private lastFocused;
|
25
25
|
constructor(zone: NgZone, renderer: Renderer2, localization: LocalizationService);
|
26
26
|
ngOnDestroy(): void;
|
27
|
-
onKeyDown(event:
|
27
|
+
onKeyDown(event: KeyboardEvent, elem: HTMLElement, focusableItems: Array<HTMLElement>, settings: DraggingServiceConfig): void;
|
28
28
|
onFocusOut(event: any, elem: HTMLElement, focusableItems: Array<HTMLElement>): void;
|
29
29
|
onMousedown(event: any, elem: HTMLElement, focusableItems: Array<HTMLElement>, tile: TileLayoutItemComponent): void;
|
30
30
|
changeTabIndex(tabIndex: string, elem: HTMLElement, focusableItems: Array<HTMLElement>): void;
|
package/tilelayout/util.d.ts
CHANGED
@@ -57,11 +57,11 @@ export declare const calculateOrderFromCell: (row: number, col: number, items: T
|
|
57
57
|
/**
|
58
58
|
* @hidden
|
59
59
|
*/
|
60
|
-
export declare const shouldResize: (keyCode:
|
60
|
+
export declare const shouldResize: (keyCode: string, col: number, selectedTile: TileLayoutItemComponent, settings: DraggingServiceConfig) => TileLayoutNavigation;
|
61
61
|
/**
|
62
62
|
* @hidden
|
63
63
|
*/
|
64
|
-
export declare const shouldReorder: (keyCode:
|
64
|
+
export declare const shouldReorder: (keyCode: string, col: number, selectedTile: TileLayoutItemComponent, settings: DraggingServiceConfig) => TileLayoutNavigation;
|
65
65
|
/**
|
66
66
|
* @hidden
|
67
67
|
*/
|