public sendButton()

in src/focus-service.ts [78:107]


  public sendButton(direction: Button): boolean {
    const selected = this.elementStore.element;
    if (isForForm(direction, selected)) {
      return false;
    }

    const ev = this.createArcEvent(direction, selected);
    this.bubbleEvent(ev, 'onButton', selected);
    if (ev.defaultPrevented) {
      return true;
    }
    if (!(ev instanceof ArcFocusEvent)) {
      return this.defaultFires(ev);
    }

    let originalNext = ev.next;
    for (let i = 0; i < FocusService.maxFocusInterations; i++) {
      if (this.bubbleInOut(ev, selected)) {
        return true;
      }
      if (originalNext === ev.next) {
        return this.defaultFires(ev);
      }

      originalNext = ev.next;
      resetEvent(ev);
    }

    throw new Error('Max iterations exceeded');
  }