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