private createArcEvent()

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