@progress/kendo-angular-pager 19.3.0-develop.4 → 19.3.0-develop.40

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.
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1752065425,
14
- version: '19.3.0-develop.4',
13
+ publishDate: 1754990745,
14
+ version: '19.3.0-develop.40',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -65,7 +65,7 @@ export class PagerInputComponent extends PagerElementComponent {
65
65
  handleKeyDown = (event) => {
66
66
  const incomingValue = this.numericInput.value || this.current;
67
67
  // eslint-disable import/no-deprecated
68
- if (event.keyCode === Keys.Enter) {
68
+ if (event.code === Keys.Enter || event.code === Keys.NumpadEnter) {
69
69
  event.preventDefault();
70
70
  if (incomingValue !== this.current) {
71
71
  this.zone.run(() => {
@@ -131,7 +131,7 @@ export class PagerPageSizesComponent extends PagerElementComponent {
131
131
  this.cd.markForCheck();
132
132
  }
133
133
  keyDownHandler(ev) {
134
- if (ev.keyCode === Keys.Escape && this.dropDownList.isOpen) {
134
+ if (ev.code === Keys.Escape && this.dropDownList.isOpen) {
135
135
  ev.stopPropagation();
136
136
  this.dropDownList.toggle(false);
137
137
  }
@@ -4,10 +4,10 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, Input, EventEmitter, Output, HostBinding, ElementRef, Renderer2, NgZone, HostListener, ContentChildren, QueryList, Optional, SkipSelf, inject, ViewChild, ChangeDetectorRef } from '@angular/core';
6
6
  import { PagerTemplateDirective } from "./pager-template.directive";
7
- import { anyChanged, isChanged, isDocumentAvailable, Keys, ResizeSensorComponent } from "@progress/kendo-angular-common";
7
+ import { anyChanged, isChanged, isDocumentAvailable, Keys, normalizeNumpadKeys, replaceMessagePlaceholder, ResizeSensorComponent } from "@progress/kendo-angular-common";
8
8
  import { PagerContextService } from "./pager-context.service";
9
9
  import { Subscription } from "rxjs";
10
- import { DEFAULT_PAGE_SIZE_VALUES, getStylingClasses, DEFAULT_SIZE, replaceMessagePlaceholder, calculatePadding, createMeasurementSpan, copyComputedStyles, positionOffScreen } from '../util';
10
+ import { DEFAULT_PAGE_SIZE_VALUES, getStylingClasses, DEFAULT_SIZE, calculatePadding, createMeasurementSpan, copyComputedStyles, positionOffScreen, getAllFocusableChildren } from '../util';
11
11
  import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
12
12
  import { validatePackage } from '@progress/kendo-licensing';
13
13
  import { packageMetadata } from '../package-metadata';
@@ -501,13 +501,15 @@ export class PagerComponent {
501
501
  keyDownHandler(e) {
502
502
  const target = e.target;
503
503
  const wrapper = this.element.nativeElement;
504
- const isArrowLeftOrPageUp = e.keyCode === Keys.ArrowLeft || e.keyCode === Keys.PageUp;
505
- const isArrowRightOrPageDown = e.keyCode === Keys.ArrowRight || e.keyCode === Keys.PageDown;
506
- const isEnter = e.keyCode === Keys.Enter;
507
- const isHome = e.keyCode === Keys.Home;
508
- const isEnd = e.keyCode === Keys.End;
509
- const isEsc = e.keyCode === Keys.Escape;
510
- const isTab = e.keyCode === Keys.Tab;
504
+ // on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
505
+ const code = normalizeNumpadKeys(e);
506
+ const isArrowLeftOrPageUp = code === Keys.ArrowLeft || code === Keys.PageUp;
507
+ const isArrowRightOrPageDown = code === Keys.ArrowRight || code === Keys.PageDown;
508
+ const isEnter = code === Keys.Enter || code === Keys.NumpadEnter;
509
+ const isHome = code === Keys.Home;
510
+ const isEnd = code === Keys.End;
511
+ const isEsc = code === Keys.Escape;
512
+ const isTab = code === Keys.Tab;
511
513
  const isFirstPage = this.currentPage === 1;
512
514
  const isLastPage = this.currentPage === this.totalPages;
513
515
  this.ngZone.run(() => {
@@ -548,7 +550,14 @@ export class PagerComponent {
548
550
  }
549
551
  else if (isEnter) {
550
552
  e.preventDefault();
551
- const [firstFocusable] = this.navigationService.getFirstAndLastFocusable(wrapper);
553
+ let [firstFocusable] = this.navigationService.getFirstAndLastFocusable(wrapper);
554
+ if (firstFocusable.getAttribute('aria-disabled') === 'true') {
555
+ firstFocusable = Array.from(getAllFocusableChildren(wrapper)).find((el) => !el.getAttribute('aria-disabled'));
556
+ const input = firstFocusable.querySelector('input');
557
+ if (input) {
558
+ firstFocusable = input;
559
+ }
560
+ }
552
561
  this.navigationService.toggleInnerNavigation(true);
553
562
  firstFocusable?.focus();
554
563
  }
package/esm2022/util.mjs CHANGED
@@ -61,10 +61,6 @@ export const getStylingClasses = (componentType, stylingOption, previousValue, n
61
61
  break;
62
62
  }
63
63
  };
64
- /**
65
- * @hidden
66
- */
67
- export const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`{\\s*${name}\\s*}`, 'g'), value);
68
64
  /**
69
65
  * @hidden
70
66
  */
@@ -8,7 +8,7 @@ import * as i1 from '@progress/kendo-angular-l10n';
8
8
  import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
9
9
  import { Subject, Subscription } from 'rxjs';
10
10
  import { caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon } from '@progress/kendo-svg-icons';
11
- import { isDocumentAvailable, isFocusable, Keys, EventsOutsideAngularDirective, anyChanged, isChanged, ResizeSensorComponent, isPresent, ResizeBatchService } from '@progress/kendo-angular-common';
11
+ import { isDocumentAvailable, isFocusable, Keys, EventsOutsideAngularDirective, anyChanged, isChanged, replaceMessagePlaceholder, normalizeNumpadKeys, ResizeSensorComponent, isPresent, ResizeBatchService } from '@progress/kendo-angular-common';
12
12
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
13
13
  import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
14
14
  import { NgIf, NgFor, NgTemplateOutlet, NgStyle } from '@angular/common';
@@ -433,10 +433,6 @@ const getStylingClasses = (componentType, stylingOption, previousValue, newValue
433
433
  break;
434
434
  }
435
435
  };
436
- /**
437
- * @hidden
438
- */
439
- const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`{\\s*${name}\\s*}`, 'g'), value);
440
436
  /**
441
437
  * @hidden
442
438
  */
@@ -824,7 +820,7 @@ class PagerPageSizesComponent extends PagerElementComponent {
824
820
  this.cd.markForCheck();
825
821
  }
826
822
  keyDownHandler(ev) {
827
- if (ev.keyCode === Keys.Escape && this.dropDownList.isOpen) {
823
+ if (ev.code === Keys.Escape && this.dropDownList.isOpen) {
828
824
  ev.stopPropagation();
829
825
  this.dropDownList.toggle(false);
830
826
  }
@@ -1328,7 +1324,7 @@ class PagerInputComponent extends PagerElementComponent {
1328
1324
  handleKeyDown = (event) => {
1329
1325
  const incomingValue = this.numericInput.value || this.current;
1330
1326
  // eslint-disable import/no-deprecated
1331
- if (event.keyCode === Keys.Enter) {
1327
+ if (event.code === Keys.Enter || event.code === Keys.NumpadEnter) {
1332
1328
  event.preventDefault();
1333
1329
  if (incomingValue !== this.current) {
1334
1330
  this.zone.run(() => {
@@ -1513,8 +1509,8 @@ const packageMetadata = {
1513
1509
  productName: 'Kendo UI for Angular',
1514
1510
  productCode: 'KENDOUIANGULAR',
1515
1511
  productCodes: ['KENDOUIANGULAR'],
1516
- publishDate: 1752065425,
1517
- version: '19.3.0-develop.4',
1512
+ publishDate: 1754990745,
1513
+ version: '19.3.0-develop.40',
1518
1514
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
1519
1515
  };
1520
1516
 
@@ -1994,13 +1990,15 @@ class PagerComponent {
1994
1990
  keyDownHandler(e) {
1995
1991
  const target = e.target;
1996
1992
  const wrapper = this.element.nativeElement;
1997
- const isArrowLeftOrPageUp = e.keyCode === Keys.ArrowLeft || e.keyCode === Keys.PageUp;
1998
- const isArrowRightOrPageDown = e.keyCode === Keys.ArrowRight || e.keyCode === Keys.PageDown;
1999
- const isEnter = e.keyCode === Keys.Enter;
2000
- const isHome = e.keyCode === Keys.Home;
2001
- const isEnd = e.keyCode === Keys.End;
2002
- const isEsc = e.keyCode === Keys.Escape;
2003
- const isTab = e.keyCode === Keys.Tab;
1993
+ // on some keyboards arrow keys, PageUp/Down, and Home/End are mapped to Numpad keys
1994
+ const code = normalizeNumpadKeys(e);
1995
+ const isArrowLeftOrPageUp = code === Keys.ArrowLeft || code === Keys.PageUp;
1996
+ const isArrowRightOrPageDown = code === Keys.ArrowRight || code === Keys.PageDown;
1997
+ const isEnter = code === Keys.Enter || code === Keys.NumpadEnter;
1998
+ const isHome = code === Keys.Home;
1999
+ const isEnd = code === Keys.End;
2000
+ const isEsc = code === Keys.Escape;
2001
+ const isTab = code === Keys.Tab;
2004
2002
  const isFirstPage = this.currentPage === 1;
2005
2003
  const isLastPage = this.currentPage === this.totalPages;
2006
2004
  this.ngZone.run(() => {
@@ -2041,7 +2039,14 @@ class PagerComponent {
2041
2039
  }
2042
2040
  else if (isEnter) {
2043
2041
  e.preventDefault();
2044
- const [firstFocusable] = this.navigationService.getFirstAndLastFocusable(wrapper);
2042
+ let [firstFocusable] = this.navigationService.getFirstAndLastFocusable(wrapper);
2043
+ if (firstFocusable.getAttribute('aria-disabled') === 'true') {
2044
+ firstFocusable = Array.from(getAllFocusableChildren(wrapper)).find((el) => !el.getAttribute('aria-disabled'));
2045
+ const input = firstFocusable.querySelector('input');
2046
+ if (input) {
2047
+ firstFocusable = input;
2048
+ }
2049
+ }
2045
2050
  this.navigationService.toggleInnerNavigation(true);
2046
2051
  firstFocusable?.focus();
2047
2052
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-pager",
3
- "version": "19.3.0-develop.4",
3
+ "version": "19.3.0-develop.40",
4
4
  "description": "Kendo UI Angular Pager",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -17,7 +17,7 @@
17
17
  "package": {
18
18
  "productName": "Kendo UI for Angular",
19
19
  "productCode": "KENDOUIANGULAR",
20
- "publishDate": 1752065425,
20
+ "publishDate": 1754990745,
21
21
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
22
22
  }
23
23
  },
@@ -26,17 +26,17 @@
26
26
  "@angular/common": "16 - 20",
27
27
  "@angular/core": "16 - 20",
28
28
  "@angular/platform-browser": "16 - 20",
29
- "@progress/kendo-licensing": "^1.5.0",
30
- "@progress/kendo-angular-common": "19.3.0-develop.4",
31
- "@progress/kendo-angular-dropdowns": "19.3.0-develop.4",
32
- "@progress/kendo-angular-inputs": "19.3.0-develop.4",
33
- "@progress/kendo-angular-icons": "19.3.0-develop.4",
34
- "@progress/kendo-angular-l10n": "19.3.0-develop.4",
29
+ "@progress/kendo-licensing": "^1.7.0",
30
+ "@progress/kendo-angular-common": "19.3.0-develop.40",
31
+ "@progress/kendo-angular-dropdowns": "19.3.0-develop.40",
32
+ "@progress/kendo-angular-inputs": "19.3.0-develop.40",
33
+ "@progress/kendo-angular-icons": "19.3.0-develop.40",
34
+ "@progress/kendo-angular-l10n": "19.3.0-develop.40",
35
35
  "rxjs": "^6.5.3 || ^7.0.0"
36
36
  },
37
37
  "dependencies": {
38
38
  "tslib": "^2.3.1",
39
- "@progress/kendo-angular-schematics": "19.3.0-develop.4"
39
+ "@progress/kendo-angular-schematics": "19.3.0-develop.40"
40
40
  },
41
41
  "schematics": "./schematics/collection.json",
42
42
  "module": "fesm2022/progress-kendo-angular-pager.mjs",
@@ -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: 'PagerModule', package: 'pager', peerDependencies: {
6
6
  // Peers of inputs and dropdowns
7
- '@progress/kendo-angular-treeview': '19.3.0-develop.4',
8
- '@progress/kendo-angular-intl': '19.3.0-develop.4',
9
- '@progress/kendo-angular-navigation': '19.3.0-develop.4',
10
- '@progress/kendo-angular-popup': '19.3.0-develop.4',
7
+ '@progress/kendo-angular-treeview': '19.3.0-develop.40',
8
+ '@progress/kendo-angular-intl': '19.3.0-develop.40',
9
+ '@progress/kendo-angular-navigation': '19.3.0-develop.40',
10
+ '@progress/kendo-angular-popup': '19.3.0-develop.40',
11
11
  '@progress/kendo-drawing': '^1.5.12',
12
12
  // peer dependency of kendo-angular-inputs
13
- '@progress/kendo-angular-buttons': '19.3.0-develop.4',
14
- '@progress/kendo-angular-dialog': '19.3.0-develop.4',
13
+ '@progress/kendo-angular-buttons': '19.3.0-develop.40',
14
+ '@progress/kendo-angular-dialog': '19.3.0-develop.40',
15
15
  // Peer dependency of icons
16
16
  '@progress/kendo-svg-icons': '^4.0.0'
17
17
  } });
package/util.d.ts CHANGED
@@ -28,10 +28,6 @@ export declare const DEFAULT_SIZE: PagerSize;
28
28
  * Returns the styling classes to be added and removed
29
29
  */
30
30
  export declare const getStylingClasses: (componentType: any, stylingOption: string, previousValue: any, newValue: any) => PagerStylingClasses;
31
- /**
32
- * @hidden
33
- */
34
- export declare const replaceMessagePlaceholder: (message: string, name: string, value: string) => string;
35
31
  /**
36
32
  * Specifies the adaptive rendering of the component.
37
33
  *