public createArcEvent()

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,
    });
  }