Skip to content

Commit 49b3cda

Browse files
chintankavathiatimowolf
authored andcommitted
refactor: replace keyCode with key value
BREAKING CHANGE: changed `Keys` enum to use `key` value instead of `keyCode`. `keyCode` is deprecated from `KeyBoardEvent` and should be replaced with `key`.
1 parent 11389bc commit 49b3cda

File tree

4 files changed

+33
-41
lines changed

4 files changed

+33
-41
lines changed

projects/ngx-datatable/src/lib/components/body/body-cell.component.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -410,15 +410,15 @@ export class DataTableBodyCellComponent<TRow extends { level?: number } = any>
410410

411411
@HostListener('keydown', ['$event'])
412412
onKeyDown(event: KeyboardEvent): void {
413-
const keyCode = event.keyCode;
413+
const key = event.key;
414414
const isTargetCell = event.target === this._element;
415415

416416
const isAction =
417-
keyCode === Keys.return ||
418-
keyCode === Keys.down ||
419-
keyCode === Keys.up ||
420-
keyCode === Keys.left ||
421-
keyCode === Keys.right;
417+
key === Keys.return ||
418+
key === Keys.down ||
419+
key === Keys.up ||
420+
key === Keys.left ||
421+
key === Keys.right;
422422

423423
if (isAction && isTargetCell) {
424424
event.preventDefault();

projects/ngx-datatable/src/lib/components/body/body-row.component.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -183,15 +183,15 @@ export class DataTableBodyRowComponent<TRow = any> implements DoCheck, OnChanges
183183

184184
@HostListener('keydown', ['$event'])
185185
onKeyDown(event: KeyboardEvent): void {
186-
const keyCode = event.keyCode;
186+
const key = event.key;
187187
const isTargetRow = event.target === this._element;
188188

189189
const isAction =
190-
keyCode === Keys.return ||
191-
keyCode === Keys.down ||
192-
keyCode === Keys.up ||
193-
keyCode === Keys.left ||
194-
keyCode === Keys.right;
190+
key === Keys.return ||
191+
key === Keys.down ||
192+
key === Keys.up ||
193+
key === Keys.left ||
194+
key === Keys.right;
195195

196196
const isCtrlA = event.key === 'a' && (event.ctrlKey || event.metaKey);
197197

projects/ngx-datatable/src/lib/components/body/selection.component.ts

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ export class DataTableSelectionComponent<TRow = any> {
7575
if (select) {
7676
this.selectRow(event, index, row);
7777
} else if (type === 'keydown') {
78-
if ((event as KeyboardEvent).keyCode === Keys.return) {
78+
if ((event as KeyboardEvent).key === Keys.return) {
7979
this.selectRow(event, index, row);
8080
} else if ((event as KeyboardEvent).key === 'a' && (event.ctrlKey || event.metaKey)) {
8181
this.selectRow(event, 0, this.rows[this.rows.length - 1]);
@@ -87,12 +87,9 @@ export class DataTableSelectionComponent<TRow = any> {
8787
}
8888

8989
onKeyboardFocus(model: ActivateEvent<TRow>): void {
90-
const { keyCode } = model.event as KeyboardEvent;
90+
const { key } = model.event as KeyboardEvent;
9191
const shouldFocus =
92-
keyCode === Keys.up ||
93-
keyCode === Keys.down ||
94-
keyCode === Keys.right ||
95-
keyCode === Keys.left;
92+
key === Keys.up || key === Keys.down || key === Keys.right || key === Keys.left;
9693

9794
if (shouldFocus) {
9895
const isCellSelection = this.selectionType === SelectionType.cell;
@@ -103,28 +100,28 @@ export class DataTableSelectionComponent<TRow = any> {
103100
}
104101
}
105102
if (!model.cellElement || !isCellSelection) {
106-
this.focusRow(model.rowElement, keyCode);
103+
this.focusRow(model.rowElement, key);
107104
} else if (isCellSelection) {
108-
this.focusCell(model.cellElement, model.rowElement, keyCode, model.cellIndex);
105+
this.focusCell(model.cellElement, model.rowElement, key, model.cellIndex);
109106
}
110107
}
111108
}
112109

113-
focusRow(rowElement: HTMLElement, keyCode: number): void {
114-
const nextRowElement = this.getPrevNextRow(rowElement, keyCode);
110+
focusRow(rowElement: HTMLElement, key: Keys): void {
111+
const nextRowElement = this.getPrevNextRow(rowElement, key);
115112
if (nextRowElement) {
116113
nextRowElement.focus();
117114
}
118115
}
119116

120-
getPrevNextRow(rowElement: HTMLElement, keyCode: number): any {
117+
getPrevNextRow(rowElement: HTMLElement, key: Keys): any {
121118
const parentElement = rowElement.parentElement;
122119

123120
if (parentElement) {
124121
let focusElement: Element;
125-
if (keyCode === Keys.up) {
122+
if (key === Keys.up) {
126123
focusElement = parentElement.previousElementSibling;
127-
} else if (keyCode === Keys.down) {
124+
} else if (key === Keys.down) {
128125
focusElement = parentElement.nextElementSibling;
129126
}
130127

@@ -134,20 +131,15 @@ export class DataTableSelectionComponent<TRow = any> {
134131
}
135132
}
136133

137-
focusCell(
138-
cellElement: HTMLElement,
139-
rowElement: HTMLElement,
140-
keyCode: number,
141-
cellIndex: number
142-
): void {
134+
focusCell(cellElement: HTMLElement, rowElement: HTMLElement, key: Keys, cellIndex: number): void {
143135
let nextCellElement: Element;
144136

145-
if (keyCode === Keys.left) {
137+
if (key === Keys.left) {
146138
nextCellElement = cellElement.previousElementSibling;
147-
} else if (keyCode === Keys.right) {
139+
} else if (key === Keys.right) {
148140
nextCellElement = cellElement.nextElementSibling;
149-
} else if (keyCode === Keys.up || keyCode === Keys.down) {
150-
const nextRowElement = this.getPrevNextRow(rowElement, keyCode);
141+
} else if (key === Keys.up || key === Keys.down) {
142+
const nextRowElement = this.getPrevNextRow(rowElement, key);
151143
if (nextRowElement) {
152144
const children = nextRowElement.getElementsByClassName('datatable-body-cell');
153145
if (children.length) {
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
export enum Keys {
2-
up = 38,
3-
down = 40,
4-
return = 13,
5-
escape = 27,
6-
left = 37,
7-
right = 39
2+
up = 'ArrowUp',
3+
down = 'ArrowDown',
4+
return = 'Enter',
5+
escape = 'Escape',
6+
left = 'ArrowLeft',
7+
right = 'ArrowRight'
88
}

0 commit comments

Comments
 (0)