in src/focus.service.ts [319:344]
public createArcEvent(direction: Direction): ArcEvent {
const directive = this.selected ? this.registry.find(this.selected) : undefined;
let nextElem: HTMLElement | null = null;
if (isDirectional(direction)) {
let refRect = this.referenceRect;
if (this.selected && this.focusRoot.contains(this.selected)) {
refRect = this.selected.getBoundingClientRect();
}
nextElem = this.getFocusableElement(
direction,
this.focusRoot,
refRect,
new Set<HTMLElement>(),
);
}
return new ArcEvent({
directive,
event: direction,
next: nextElem,
target: this.selected,
});
}