in src/focus-service.ts [113:138]
private createArcEvent(direction: Button, selected: HTMLElement): ArcEvent {
if (!isDirectional(direction)) {
return new ArcEvent({
directive: this.registry.find(selected),
event: direction,
target: selected,
});
}
const context = new FocusContext(this.root.element, direction, this.strategies, {
activeElement: selected,
directive: this.registry.find(selected),
previousElement: this.previousSelectedElement,
referenceRect: this.root.element.contains(selected)
? selected.getBoundingClientRect()
: this.referenceRect,
});
return new ArcFocusEvent({
context,
directive: this.registry.find(selected),
event: direction,
next: context ? context.find(this.root.element) : null,
target: selected,
});
}