@progress/kendo-angular-common 19.3.0-develop.31 → 19.3.0-develop.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/enums/keys.d.ts CHANGED
@@ -6,62 +6,69 @@
6
6
  * Enum with key codes.
7
7
  */
8
8
  export declare enum Keys {
9
- Alt = 18,
10
- ArrowDown = 40,
11
- ArrowLeft = 37,
12
- ArrowRight = 39,
13
- ArrowUp = 38,
14
- Backspace = 8,
15
- Control = 17,
16
- Delete = 46,
17
- Digit0 = 48,
18
- Digit1 = 49,
19
- Digit2 = 50,
20
- Digit3 = 51,
21
- Digit4 = 52,
22
- Digit5 = 53,
23
- Digit6 = 54,
24
- Digit7 = 55,
25
- Digit8 = 56,
26
- Digit9 = 57,
27
- End = 35,
28
- Enter = 13,
29
- Escape = 27,
30
- F1 = 112,
31
- F2 = 113,
32
- F10 = 121,
33
- Home = 36,
34
- Insert = 45,
35
- KeyA = 65,
36
- KeyB = 66,
37
- KeyC = 67,
38
- KeyD = 68,
39
- KeyE = 69,
40
- KeyF = 70,
41
- KeyG = 71,
42
- KeyH = 72,
43
- KeyI = 73,
44
- KeyJ = 74,
45
- KeyK = 75,
46
- KeyL = 76,
47
- KeyM = 77,
48
- KeyN = 78,
49
- KeyO = 79,
50
- KeyP = 80,
51
- KeyQ = 81,
52
- KeyR = 82,
53
- KeyS = 83,
54
- KeyT = 84,
55
- KeyU = 85,
56
- KeyV = 86,
57
- KeyW = 87,
58
- KeyX = 88,
59
- KeyY = 89,
60
- KeyZ = 90,
61
- NumpadDecimal = 110,
62
- PageDown = 34,
63
- PageUp = 33,
64
- Shift = 16,
65
- Space = 32,
66
- Tab = 9
9
+ ArrowDown = "ArrowDown",
10
+ ArrowLeft = "ArrowLeft",
11
+ ArrowRight = "ArrowRight",
12
+ ArrowUp = "ArrowUp",
13
+ Backspace = "Backspace",
14
+ Delete = "Delete",
15
+ Digit0 = "Digit0",
16
+ Digit1 = "Digit1",
17
+ Digit2 = "Digit2",
18
+ Digit3 = "Digit3",
19
+ Digit4 = "Digit4",
20
+ Digit5 = "Digit5",
21
+ Digit6 = "Digit6",
22
+ Digit7 = "Digit7",
23
+ Digit8 = "Digit8",
24
+ Digit9 = "Digit9",
25
+ End = "End",
26
+ Enter = "Enter",
27
+ Escape = "Escape",
28
+ F1 = "F1",
29
+ F2 = "F2",
30
+ F10 = "F10",
31
+ Home = "Home",
32
+ KeyA = "KeyA",
33
+ KeyB = "KeyB",
34
+ KeyC = "KeyC",
35
+ KeyD = "KeyD",
36
+ KeyE = "KeyE",
37
+ KeyF = "KeyF",
38
+ KeyG = "KeyG",
39
+ KeyH = "KeyH",
40
+ KeyI = "KeyI",
41
+ KeyJ = "KeyJ",
42
+ KeyK = "KeyK",
43
+ KeyL = "KeyL",
44
+ KeyM = "KeyM",
45
+ KeyN = "KeyN",
46
+ KeyO = "KeyO",
47
+ KeyP = "KeyP",
48
+ KeyQ = "KeyQ",
49
+ KeyR = "KeyR",
50
+ KeyS = "KeyS",
51
+ KeyT = "KeyT",
52
+ KeyU = "KeyU",
53
+ KeyV = "KeyV",
54
+ KeyW = "KeyW",
55
+ KeyX = "KeyX",
56
+ KeyY = "KeyY",
57
+ KeyZ = "KeyZ",
58
+ Numpad1 = "Numpad1",
59
+ Numpad2 = "Numpad2",
60
+ Numpad3 = "Numpad3",
61
+ Numpad4 = "Numpad4",
62
+ Numpad5 = "Numpad5",
63
+ Numpad6 = "Numpad6",
64
+ Numpad7 = "Numpad7",
65
+ Numpad8 = "Numpad8",
66
+ Numpad9 = "Numpad9",
67
+ Numpad0 = "Numpad0",
68
+ NumpadEnter = "NumpadEnter",
69
+ NumpadDecimal = "NumpadDecimal",
70
+ PageDown = "PageDown",
71
+ PageUp = "PageUp",
72
+ Space = "Space",
73
+ Tab = "Tab"
67
74
  }
@@ -7,62 +7,69 @@
7
7
  */
8
8
  export var Keys;
9
9
  (function (Keys) {
10
- Keys[Keys["Alt"] = 18] = "Alt";
11
- Keys[Keys["ArrowDown"] = 40] = "ArrowDown";
12
- Keys[Keys["ArrowLeft"] = 37] = "ArrowLeft";
13
- Keys[Keys["ArrowRight"] = 39] = "ArrowRight";
14
- Keys[Keys["ArrowUp"] = 38] = "ArrowUp";
15
- Keys[Keys["Backspace"] = 8] = "Backspace";
16
- Keys[Keys["Control"] = 17] = "Control";
17
- Keys[Keys["Delete"] = 46] = "Delete";
18
- Keys[Keys["Digit0"] = 48] = "Digit0";
19
- Keys[Keys["Digit1"] = 49] = "Digit1";
20
- Keys[Keys["Digit2"] = 50] = "Digit2";
21
- Keys[Keys["Digit3"] = 51] = "Digit3";
22
- Keys[Keys["Digit4"] = 52] = "Digit4";
23
- Keys[Keys["Digit5"] = 53] = "Digit5";
24
- Keys[Keys["Digit6"] = 54] = "Digit6";
25
- Keys[Keys["Digit7"] = 55] = "Digit7";
26
- Keys[Keys["Digit8"] = 56] = "Digit8";
27
- Keys[Keys["Digit9"] = 57] = "Digit9";
28
- Keys[Keys["End"] = 35] = "End";
29
- Keys[Keys["Enter"] = 13] = "Enter";
30
- Keys[Keys["Escape"] = 27] = "Escape";
31
- Keys[Keys["F1"] = 112] = "F1";
32
- Keys[Keys["F2"] = 113] = "F2";
33
- Keys[Keys["F10"] = 121] = "F10";
34
- Keys[Keys["Home"] = 36] = "Home";
35
- Keys[Keys["Insert"] = 45] = "Insert";
36
- Keys[Keys["KeyA"] = 65] = "KeyA";
37
- Keys[Keys["KeyB"] = 66] = "KeyB";
38
- Keys[Keys["KeyC"] = 67] = "KeyC";
39
- Keys[Keys["KeyD"] = 68] = "KeyD";
40
- Keys[Keys["KeyE"] = 69] = "KeyE";
41
- Keys[Keys["KeyF"] = 70] = "KeyF";
42
- Keys[Keys["KeyG"] = 71] = "KeyG";
43
- Keys[Keys["KeyH"] = 72] = "KeyH";
44
- Keys[Keys["KeyI"] = 73] = "KeyI";
45
- Keys[Keys["KeyJ"] = 74] = "KeyJ";
46
- Keys[Keys["KeyK"] = 75] = "KeyK";
47
- Keys[Keys["KeyL"] = 76] = "KeyL";
48
- Keys[Keys["KeyM"] = 77] = "KeyM";
49
- Keys[Keys["KeyN"] = 78] = "KeyN";
50
- Keys[Keys["KeyO"] = 79] = "KeyO";
51
- Keys[Keys["KeyP"] = 80] = "KeyP";
52
- Keys[Keys["KeyQ"] = 81] = "KeyQ";
53
- Keys[Keys["KeyR"] = 82] = "KeyR";
54
- Keys[Keys["KeyS"] = 83] = "KeyS";
55
- Keys[Keys["KeyT"] = 84] = "KeyT";
56
- Keys[Keys["KeyU"] = 85] = "KeyU";
57
- Keys[Keys["KeyV"] = 86] = "KeyV";
58
- Keys[Keys["KeyW"] = 87] = "KeyW";
59
- Keys[Keys["KeyX"] = 88] = "KeyX";
60
- Keys[Keys["KeyY"] = 89] = "KeyY";
61
- Keys[Keys["KeyZ"] = 90] = "KeyZ";
62
- Keys[Keys["NumpadDecimal"] = 110] = "NumpadDecimal";
63
- Keys[Keys["PageDown"] = 34] = "PageDown";
64
- Keys[Keys["PageUp"] = 33] = "PageUp";
65
- Keys[Keys["Shift"] = 16] = "Shift";
66
- Keys[Keys["Space"] = 32] = "Space";
67
- Keys[Keys["Tab"] = 9] = "Tab";
10
+ Keys["ArrowDown"] = "ArrowDown";
11
+ Keys["ArrowLeft"] = "ArrowLeft";
12
+ Keys["ArrowRight"] = "ArrowRight";
13
+ Keys["ArrowUp"] = "ArrowUp";
14
+ Keys["Backspace"] = "Backspace";
15
+ Keys["Delete"] = "Delete";
16
+ Keys["Digit0"] = "Digit0";
17
+ Keys["Digit1"] = "Digit1";
18
+ Keys["Digit2"] = "Digit2";
19
+ Keys["Digit3"] = "Digit3";
20
+ Keys["Digit4"] = "Digit4";
21
+ Keys["Digit5"] = "Digit5";
22
+ Keys["Digit6"] = "Digit6";
23
+ Keys["Digit7"] = "Digit7";
24
+ Keys["Digit8"] = "Digit8";
25
+ Keys["Digit9"] = "Digit9";
26
+ Keys["End"] = "End";
27
+ Keys["Enter"] = "Enter";
28
+ Keys["Escape"] = "Escape";
29
+ Keys["F1"] = "F1";
30
+ Keys["F2"] = "F2";
31
+ Keys["F10"] = "F10";
32
+ Keys["Home"] = "Home";
33
+ Keys["KeyA"] = "KeyA";
34
+ Keys["KeyB"] = "KeyB";
35
+ Keys["KeyC"] = "KeyC";
36
+ Keys["KeyD"] = "KeyD";
37
+ Keys["KeyE"] = "KeyE";
38
+ Keys["KeyF"] = "KeyF";
39
+ Keys["KeyG"] = "KeyG";
40
+ Keys["KeyH"] = "KeyH";
41
+ Keys["KeyI"] = "KeyI";
42
+ Keys["KeyJ"] = "KeyJ";
43
+ Keys["KeyK"] = "KeyK";
44
+ Keys["KeyL"] = "KeyL";
45
+ Keys["KeyM"] = "KeyM";
46
+ Keys["KeyN"] = "KeyN";
47
+ Keys["KeyO"] = "KeyO";
48
+ Keys["KeyP"] = "KeyP";
49
+ Keys["KeyQ"] = "KeyQ";
50
+ Keys["KeyR"] = "KeyR";
51
+ Keys["KeyS"] = "KeyS";
52
+ Keys["KeyT"] = "KeyT";
53
+ Keys["KeyU"] = "KeyU";
54
+ Keys["KeyV"] = "KeyV";
55
+ Keys["KeyW"] = "KeyW";
56
+ Keys["KeyX"] = "KeyX";
57
+ Keys["KeyY"] = "KeyY";
58
+ Keys["KeyZ"] = "KeyZ";
59
+ Keys["Numpad1"] = "Numpad1";
60
+ Keys["Numpad2"] = "Numpad2";
61
+ Keys["Numpad3"] = "Numpad3";
62
+ Keys["Numpad4"] = "Numpad4";
63
+ Keys["Numpad5"] = "Numpad5";
64
+ Keys["Numpad6"] = "Numpad6";
65
+ Keys["Numpad7"] = "Numpad7";
66
+ Keys["Numpad8"] = "Numpad8";
67
+ Keys["Numpad9"] = "Numpad9";
68
+ Keys["Numpad0"] = "Numpad0";
69
+ Keys["NumpadEnter"] = "NumpadEnter";
70
+ Keys["NumpadDecimal"] = "NumpadDecimal";
71
+ Keys["PageDown"] = "PageDown";
72
+ Keys["PageUp"] = "PageUp";
73
+ Keys["Space"] = "Space";
74
+ Keys["Tab"] = "Tab";
68
75
  })(Keys || (Keys = {}));
package/esm2022/index.mjs CHANGED
@@ -11,6 +11,7 @@ export * from './utils';
11
11
  export * from './enums';
12
12
  export * from './utils/focusable-selectors';
13
13
  export * from './utils/ng-class-parser';
14
+ export * from './utils/numpad-keys-normalizer';
14
15
  export * from './watermark';
15
16
  export * from './adornments';
16
17
  export { PreventableEvent } from './preventable-event';
@@ -8,6 +8,7 @@ import { MultiTabStop } from "./toggle-button-tab-stop";
8
8
  import { Subscription } from "rxjs";
9
9
  import { take } from "rxjs/operators";
10
10
  import { Keys } from "../enums";
11
+ import { normalizeNumpadKeys } from "../utils/numpad-keys-normalizer";
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "./toggle-button-tab-stop";
13
14
  const tags = ['kendo-splitbutton', 'kendo-combobox', 'kendo-multicolumncombobox', 'kendo-datepicker', 'kendo-timepicker', 'kendo-datetimepicker'];
@@ -144,12 +145,14 @@ export class ToggleButtonTabStopDirective {
144
145
  this.renderer.removeStyle(this.button, 'box-shadow');
145
146
  };
146
147
  onClick = (e) => {
147
- const splitButtonToggleEnter = e instanceof KeyboardEvent && e.keyCode === Keys.Enter;
148
+ const code = normalizeNumpadKeys(e);
149
+ const splitButtonToggleEnter = e instanceof KeyboardEvent && code === Keys.Enter;
148
150
  const isClick = e instanceof PointerEvent;
149
151
  (splitButtonToggleEnter || isClick) && (this.focusButton = true);
150
152
  };
151
153
  onKeyDown = (e) => {
152
- if (e.keyCode === Keys.ArrowDown && e.altKey) {
154
+ const code = normalizeNumpadKeys(e);
155
+ if (code === Keys.ArrowDown && e.altKey) {
153
156
  e.stopImmediatePropagation();
154
157
  this.focusButton = true;
155
158
  this.button.click();
@@ -0,0 +1,40 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { Keys } from "../enums";
6
+ /**
7
+ * @hidden
8
+ *
9
+ * On some keyboards, PageUp/Down, Home/End, and arrow keys are mapped to Numpad keys
10
+ */
11
+ export const normalizeNumpadKeys = (event) => {
12
+ if (event.code === Keys.Numpad1 && event.key === Keys.End) {
13
+ return Keys.End;
14
+ }
15
+ if (event.code === Keys.Numpad2 && event.key === Keys.ArrowDown) {
16
+ return Keys.ArrowDown;
17
+ }
18
+ if (event.code === Keys.Numpad3 && event.key === Keys.PageDown) {
19
+ return Keys.PageDown;
20
+ }
21
+ if (event.code === Keys.Numpad4 && event.key === Keys.ArrowLeft) {
22
+ return Keys.ArrowLeft;
23
+ }
24
+ if (event.code === Keys.Numpad6 && event.key === Keys.ArrowRight) {
25
+ return Keys.ArrowRight;
26
+ }
27
+ if (event.code === Keys.Numpad7 && event.key === Keys.Home) {
28
+ return Keys.Home;
29
+ }
30
+ if (event.code === Keys.Numpad8 && event.key === Keys.ArrowUp) {
31
+ return Keys.ArrowUp;
32
+ }
33
+ if (event.code === Keys.Numpad9 && event.key === Keys.PageUp) {
34
+ return Keys.PageUp;
35
+ }
36
+ if (event.code === Keys.NumpadEnter) {
37
+ return Keys.Enter;
38
+ }
39
+ return event.code;
40
+ };
@@ -795,64 +795,71 @@ class KendoInput {
795
795
  */
796
796
  var Keys;
797
797
  (function (Keys) {
798
- Keys[Keys["Alt"] = 18] = "Alt";
799
- Keys[Keys["ArrowDown"] = 40] = "ArrowDown";
800
- Keys[Keys["ArrowLeft"] = 37] = "ArrowLeft";
801
- Keys[Keys["ArrowRight"] = 39] = "ArrowRight";
802
- Keys[Keys["ArrowUp"] = 38] = "ArrowUp";
803
- Keys[Keys["Backspace"] = 8] = "Backspace";
804
- Keys[Keys["Control"] = 17] = "Control";
805
- Keys[Keys["Delete"] = 46] = "Delete";
806
- Keys[Keys["Digit0"] = 48] = "Digit0";
807
- Keys[Keys["Digit1"] = 49] = "Digit1";
808
- Keys[Keys["Digit2"] = 50] = "Digit2";
809
- Keys[Keys["Digit3"] = 51] = "Digit3";
810
- Keys[Keys["Digit4"] = 52] = "Digit4";
811
- Keys[Keys["Digit5"] = 53] = "Digit5";
812
- Keys[Keys["Digit6"] = 54] = "Digit6";
813
- Keys[Keys["Digit7"] = 55] = "Digit7";
814
- Keys[Keys["Digit8"] = 56] = "Digit8";
815
- Keys[Keys["Digit9"] = 57] = "Digit9";
816
- Keys[Keys["End"] = 35] = "End";
817
- Keys[Keys["Enter"] = 13] = "Enter";
818
- Keys[Keys["Escape"] = 27] = "Escape";
819
- Keys[Keys["F1"] = 112] = "F1";
820
- Keys[Keys["F2"] = 113] = "F2";
821
- Keys[Keys["F10"] = 121] = "F10";
822
- Keys[Keys["Home"] = 36] = "Home";
823
- Keys[Keys["Insert"] = 45] = "Insert";
824
- Keys[Keys["KeyA"] = 65] = "KeyA";
825
- Keys[Keys["KeyB"] = 66] = "KeyB";
826
- Keys[Keys["KeyC"] = 67] = "KeyC";
827
- Keys[Keys["KeyD"] = 68] = "KeyD";
828
- Keys[Keys["KeyE"] = 69] = "KeyE";
829
- Keys[Keys["KeyF"] = 70] = "KeyF";
830
- Keys[Keys["KeyG"] = 71] = "KeyG";
831
- Keys[Keys["KeyH"] = 72] = "KeyH";
832
- Keys[Keys["KeyI"] = 73] = "KeyI";
833
- Keys[Keys["KeyJ"] = 74] = "KeyJ";
834
- Keys[Keys["KeyK"] = 75] = "KeyK";
835
- Keys[Keys["KeyL"] = 76] = "KeyL";
836
- Keys[Keys["KeyM"] = 77] = "KeyM";
837
- Keys[Keys["KeyN"] = 78] = "KeyN";
838
- Keys[Keys["KeyO"] = 79] = "KeyO";
839
- Keys[Keys["KeyP"] = 80] = "KeyP";
840
- Keys[Keys["KeyQ"] = 81] = "KeyQ";
841
- Keys[Keys["KeyR"] = 82] = "KeyR";
842
- Keys[Keys["KeyS"] = 83] = "KeyS";
843
- Keys[Keys["KeyT"] = 84] = "KeyT";
844
- Keys[Keys["KeyU"] = 85] = "KeyU";
845
- Keys[Keys["KeyV"] = 86] = "KeyV";
846
- Keys[Keys["KeyW"] = 87] = "KeyW";
847
- Keys[Keys["KeyX"] = 88] = "KeyX";
848
- Keys[Keys["KeyY"] = 89] = "KeyY";
849
- Keys[Keys["KeyZ"] = 90] = "KeyZ";
850
- Keys[Keys["NumpadDecimal"] = 110] = "NumpadDecimal";
851
- Keys[Keys["PageDown"] = 34] = "PageDown";
852
- Keys[Keys["PageUp"] = 33] = "PageUp";
853
- Keys[Keys["Shift"] = 16] = "Shift";
854
- Keys[Keys["Space"] = 32] = "Space";
855
- Keys[Keys["Tab"] = 9] = "Tab";
798
+ Keys["ArrowDown"] = "ArrowDown";
799
+ Keys["ArrowLeft"] = "ArrowLeft";
800
+ Keys["ArrowRight"] = "ArrowRight";
801
+ Keys["ArrowUp"] = "ArrowUp";
802
+ Keys["Backspace"] = "Backspace";
803
+ Keys["Delete"] = "Delete";
804
+ Keys["Digit0"] = "Digit0";
805
+ Keys["Digit1"] = "Digit1";
806
+ Keys["Digit2"] = "Digit2";
807
+ Keys["Digit3"] = "Digit3";
808
+ Keys["Digit4"] = "Digit4";
809
+ Keys["Digit5"] = "Digit5";
810
+ Keys["Digit6"] = "Digit6";
811
+ Keys["Digit7"] = "Digit7";
812
+ Keys["Digit8"] = "Digit8";
813
+ Keys["Digit9"] = "Digit9";
814
+ Keys["End"] = "End";
815
+ Keys["Enter"] = "Enter";
816
+ Keys["Escape"] = "Escape";
817
+ Keys["F1"] = "F1";
818
+ Keys["F2"] = "F2";
819
+ Keys["F10"] = "F10";
820
+ Keys["Home"] = "Home";
821
+ Keys["KeyA"] = "KeyA";
822
+ Keys["KeyB"] = "KeyB";
823
+ Keys["KeyC"] = "KeyC";
824
+ Keys["KeyD"] = "KeyD";
825
+ Keys["KeyE"] = "KeyE";
826
+ Keys["KeyF"] = "KeyF";
827
+ Keys["KeyG"] = "KeyG";
828
+ Keys["KeyH"] = "KeyH";
829
+ Keys["KeyI"] = "KeyI";
830
+ Keys["KeyJ"] = "KeyJ";
831
+ Keys["KeyK"] = "KeyK";
832
+ Keys["KeyL"] = "KeyL";
833
+ Keys["KeyM"] = "KeyM";
834
+ Keys["KeyN"] = "KeyN";
835
+ Keys["KeyO"] = "KeyO";
836
+ Keys["KeyP"] = "KeyP";
837
+ Keys["KeyQ"] = "KeyQ";
838
+ Keys["KeyR"] = "KeyR";
839
+ Keys["KeyS"] = "KeyS";
840
+ Keys["KeyT"] = "KeyT";
841
+ Keys["KeyU"] = "KeyU";
842
+ Keys["KeyV"] = "KeyV";
843
+ Keys["KeyW"] = "KeyW";
844
+ Keys["KeyX"] = "KeyX";
845
+ Keys["KeyY"] = "KeyY";
846
+ Keys["KeyZ"] = "KeyZ";
847
+ Keys["Numpad1"] = "Numpad1";
848
+ Keys["Numpad2"] = "Numpad2";
849
+ Keys["Numpad3"] = "Numpad3";
850
+ Keys["Numpad4"] = "Numpad4";
851
+ Keys["Numpad5"] = "Numpad5";
852
+ Keys["Numpad6"] = "Numpad6";
853
+ Keys["Numpad7"] = "Numpad7";
854
+ Keys["Numpad8"] = "Numpad8";
855
+ Keys["Numpad9"] = "Numpad9";
856
+ Keys["Numpad0"] = "Numpad0";
857
+ Keys["NumpadEnter"] = "NumpadEnter";
858
+ Keys["NumpadDecimal"] = "NumpadDecimal";
859
+ Keys["PageDown"] = "PageDown";
860
+ Keys["PageUp"] = "PageUp";
861
+ Keys["Space"] = "Space";
862
+ Keys["Tab"] = "Tab";
856
863
  })(Keys || (Keys = {}));
857
864
 
858
865
  /**
@@ -872,6 +879,42 @@ const focusableSelector = [
872
879
  '*[contenteditable]:not([tabindex^="-"]):not([disabled]):not([contenteditable="false"])'
873
880
  ].join(',');
874
881
 
882
+ /**
883
+ * @hidden
884
+ *
885
+ * On some keyboards, PageUp/Down, Home/End, and arrow keys are mapped to Numpad keys
886
+ */
887
+ const normalizeNumpadKeys = (event) => {
888
+ if (event.code === Keys.Numpad1 && event.key === Keys.End) {
889
+ return Keys.End;
890
+ }
891
+ if (event.code === Keys.Numpad2 && event.key === Keys.ArrowDown) {
892
+ return Keys.ArrowDown;
893
+ }
894
+ if (event.code === Keys.Numpad3 && event.key === Keys.PageDown) {
895
+ return Keys.PageDown;
896
+ }
897
+ if (event.code === Keys.Numpad4 && event.key === Keys.ArrowLeft) {
898
+ return Keys.ArrowLeft;
899
+ }
900
+ if (event.code === Keys.Numpad6 && event.key === Keys.ArrowRight) {
901
+ return Keys.ArrowRight;
902
+ }
903
+ if (event.code === Keys.Numpad7 && event.key === Keys.Home) {
904
+ return Keys.Home;
905
+ }
906
+ if (event.code === Keys.Numpad8 && event.key === Keys.ArrowUp) {
907
+ return Keys.ArrowUp;
908
+ }
909
+ if (event.code === Keys.Numpad9 && event.key === Keys.PageUp) {
910
+ return Keys.PageUp;
911
+ }
912
+ if (event.code === Keys.NumpadEnter) {
913
+ return Keys.Enter;
914
+ }
915
+ return event.code;
916
+ };
917
+
875
918
  /**
876
919
  * @hidden
877
920
  */
@@ -1409,12 +1452,14 @@ class ToggleButtonTabStopDirective {
1409
1452
  this.renderer.removeStyle(this.button, 'box-shadow');
1410
1453
  };
1411
1454
  onClick = (e) => {
1412
- const splitButtonToggleEnter = e instanceof KeyboardEvent && e.keyCode === Keys.Enter;
1455
+ const code = normalizeNumpadKeys(e);
1456
+ const splitButtonToggleEnter = e instanceof KeyboardEvent && code === Keys.Enter;
1413
1457
  const isClick = e instanceof PointerEvent;
1414
1458
  (splitButtonToggleEnter || isClick) && (this.focusButton = true);
1415
1459
  };
1416
1460
  onKeyDown = (e) => {
1417
- if (e.keyCode === Keys.ArrowDown && e.altKey) {
1461
+ const code = normalizeNumpadKeys(e);
1462
+ if (code === Keys.ArrowDown && e.altKey) {
1418
1463
  e.stopImmediatePropagation();
1419
1464
  this.focusButton = true;
1420
1465
  this.button.click();
@@ -1590,5 +1635,5 @@ const replaceMessagePlaceholder = (message, name, value) => (message ?? '').repl
1590
1635
  * Generated bundle index. Do not edit.
1591
1636
  */
1592
1637
 
1593
- export { DraggableDirective, EventsOutsideAngularDirective, KENDO_ADORNMENTS, KENDO_COMMON, KENDO_DRAGGABLE, KENDO_EVENTS, KENDO_RESIZESENSOR, KENDO_TEMPLATE_CONTEXT, KENDO_TOGGLEBUTTONTABSTOP, KENDO_WATERMARK, KendoInput, Keys, MultiTabStop, PrefixTemplateDirective, PreventableEvent, ResizeBatchService, ResizeCompatService, ResizeObserverService, ResizeSensorComponent, ScrollbarWidthService, SeparatorComponent, SuffixTemplateDirective, TemplateContextDirective, ToggleButtonTabStopDirective, WatermarkOverlayComponent, anyChanged, applyAttributes, areObjectsEqual, closest, closestBySelector, closestInScope, contains, findElement, findFocusable, findFocusableChild, focusableSelector, getLicenseMessage, guid, hasClasses, hasObservers, isChanged, isControlRequired, isDocumentAvailable, isFirefox, isFocusable, isFocusableWithTabKey, isObject, isObjectPresent, isPresent, isSafari, isString, isVisible, matchesClasses, matchesNodeName, parseAttributes, parseCSSClassNames, processCssValue, removeHTMLAttributes, replaceMessagePlaceholder, rtlScrollPosition, scrollbarWidth, setHTMLAttributes, shouldShowValidationUI, splitStringToArray };
1638
+ export { DraggableDirective, EventsOutsideAngularDirective, KENDO_ADORNMENTS, KENDO_COMMON, KENDO_DRAGGABLE, KENDO_EVENTS, KENDO_RESIZESENSOR, KENDO_TEMPLATE_CONTEXT, KENDO_TOGGLEBUTTONTABSTOP, KENDO_WATERMARK, KendoInput, Keys, MultiTabStop, PrefixTemplateDirective, PreventableEvent, ResizeBatchService, ResizeCompatService, ResizeObserverService, ResizeSensorComponent, ScrollbarWidthService, SeparatorComponent, SuffixTemplateDirective, TemplateContextDirective, ToggleButtonTabStopDirective, WatermarkOverlayComponent, anyChanged, applyAttributes, areObjectsEqual, closest, closestBySelector, closestInScope, contains, findElement, findFocusable, findFocusableChild, focusableSelector, getLicenseMessage, guid, hasClasses, hasObservers, isChanged, isControlRequired, isDocumentAvailable, isFirefox, isFocusable, isFocusableWithTabKey, isObject, isObjectPresent, isPresent, isSafari, isString, isVisible, matchesClasses, matchesNodeName, normalizeNumpadKeys, parseAttributes, parseCSSClassNames, processCssValue, removeHTMLAttributes, replaceMessagePlaceholder, rtlScrollPosition, scrollbarWidth, setHTMLAttributes, shouldShowValidationUI, splitStringToArray };
1594
1639
 
package/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export * from './utils';
11
11
  export * from './enums';
12
12
  export * from './utils/focusable-selectors';
13
13
  export * from './utils/ng-class-parser';
14
+ export * from './utils/numpad-keys-normalizer';
14
15
  export * from './watermark';
15
16
  export * from './adornments';
16
17
  export { PreventableEvent } from './preventable-event';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-common",
3
- "version": "19.3.0-develop.31",
3
+ "version": "19.3.0-develop.33",
4
4
  "description": "Kendo UI for Angular - Utility Package",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -23,7 +23,7 @@
23
23
  "@progress/kendo-common": "^1.0.1",
24
24
  "@progress/kendo-draggable": "^3.0.2",
25
25
  "tslib": "^2.3.1",
26
- "@progress/kendo-angular-schematics": "19.3.0-develop.31"
26
+ "@progress/kendo-angular-schematics": "19.3.0-develop.33"
27
27
  },
28
28
  "publishConfig": {
29
29
  "access": "public"
@@ -0,0 +1,10 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ /**
6
+ * @hidden
7
+ *
8
+ * On some keyboards, PageUp/Down, Home/End, and arrow keys are mapped to Numpad keys
9
+ */
10
+ export declare const normalizeNumpadKeys: (event: KeyboardEvent) => string;