/**----------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { ElementRef } from '@angular/core'; import { FocusableContainer } from '../types/focusable-container'; /** * @hidden */ export interface FocusableElement { /** * A reference to the focusable DOM element. */ element: ElementRef; /** * The order of the element with respect to the other focusable elements. * If multiple elements share the same value, their relative to each other order follows their position in the component tree. */ focusIndex: number; /** * The part of the Scheduler the element belongs to - 'toolbar', 'content' or 'footer'. */ containerType: FocusableContainer; /** * Includes or excludes the element from the tab sequence. * * @param active If `true`, the element will receive a tabIndex of `0` or greater. If `false`, the `tabIndex` has to be set to `-1`. */ toggle(active: boolean): void; /** * Indicates if the element can be focused. * * @returns `true` if the element can be focused. Otherwise, returns `false`. */ canFocus(): boolean; /** * Focuses the element. * @param preventScroll If `true`, the browser will not scroll the element into view. Defaults to `true`. */ focus(preventScroll?: boolean): void; /** * Toggles the focused state of the element without explicitly focusing it. */ toggleFocus(value: boolean): void; }