in packages/web-components/fast-foundation/src/data-grid/data-grid-cell.ts [189:248]
public handleKeydown(e: KeyboardEvent): void {
if (
e.defaultPrevented ||
this.columnDefinition === null ||
(this.cellType === DataGridCellTypes.default &&
this.columnDefinition.cellInternalFocusQueue !== true) ||
(this.cellType === DataGridCellTypes.columnHeader &&
this.columnDefinition.headerCellInternalFocusQueue !== true)
) {
return;
}
switch (e.key) {
case keyEnter:
case keyFunction2:
if (this.isInternalFocused || this.columnDefinition === undefined) {
return;
}
switch (this.cellType) {
case DataGridCellTypes.default:
if (this.columnDefinition.cellFocusTargetCallback !== undefined) {
const focusTarget: HTMLElement = this.columnDefinition.cellFocusTargetCallback(
this
);
if (focusTarget !== null) {
this.isInternalFocused = true;
focusTarget.focus();
}
e.preventDefault();
}
break;
case DataGridCellTypes.columnHeader:
if (
this.columnDefinition.headerCellFocusTargetCallback !==
undefined
) {
const focusTarget: HTMLElement = this.columnDefinition.headerCellFocusTargetCallback(
this
);
if (focusTarget !== null) {
this.isInternalFocused = true;
focusTarget.focus();
}
e.preventDefault();
}
break;
}
break;
case keyEscape:
if (this.isInternalFocused) {
this.focus();
this.isInternalFocused = false;
e.preventDefault();
}
break;
}
}