import { JSXInterface } from '../jsx'; import { BasicElement, CSSResultGroup, PropertyValues, TemplateResult } from '@refinitiv-ui/core'; /** * Used to display multiple buttons to create a list of commands bar. */ export declare class ButtonBar extends BasicElement { /** * Element version number * @returns version number */ static get version(): string; /** * Element's role attribute for accessibility * `role` should be `radiogroup` when it is managed. */ protected defaultRole: 'toolbar' | 'radiogroup'; /** * A `CSSResultGroup` that will be used * to style the host, slotted children * and the internal template of the element. * @return CSS template */ static get styles(): CSSResultGroup; /** * Manages user interaction, only allowing one toggle button to be active at any one time. */ managed: boolean; /** * Default slot */ private defaultSlot; /** * Called once after the component is first rendered * @param changedProperties map of changed properties with old values * @returns {void} */ protected firstUpdated(changedProperties: PropertyValues): void; /** * Handles key down event * @param event Key down event object * @returns {void} */ private onKeyDown; /** * Navigate to next or previous focusable button * @param direction next | down * @returns {void} */ private navigateToSibling; /** * Navigate to the first focusable button * @returns {void} */ private first; /** * Navigate to the last focusable button * @returns {void} */ private last; /** * Sets the tabindex to -1 for all buttons except the currently focused one. * @param target the button to be focused * @param buttons Array of Buttons that contains target * @returns {void} */ private rovingTabIndex; /** * Set tabIndex to all buttons * @returns {void} */ private manageTabIndex; /** * Check if button bar is nested, a.k.a. has parent button bar * @returns `True` if button bar is nested */ private isNested; /** * Handles tap event * @param event the param is the event of click and tap handlers * @returns {void} */ private onTapHandler; /** * Get the target Button item and handle it with other managed Button items * @param targetButton an Button item is the target of the event * @returns {void} */ private manageButtons; /** * Return the array of Element items which is changed in the default slot * @returns the array of Element of the default slot */ private getElementsOfSlot; /** * Return the array of Buttons which focusable * @returns the array of focusable Buttons */ private getFocusableButtons; /** * Filter Button classes by the toggles property * @param buttons the array of Button items is the converted nodes of the default slot * @returns filtered Button items by the toggles property */ private getManagedButtons; /** * A `TemplateResult` that will be used * to render the updated internal template. * @return {TemplateResult} Render template */ protected render(): TemplateResult; } declare global { interface HTMLElementTagNameMap { 'ef-button-bar': ButtonBar; } } declare global { interface HTMLElementTagNameMap { 'ef-button-bar': ButtonBar; } namespace JSX { interface IntrinsicElements { 'ef-button-bar': Partial | JSXInterface.HTMLAttributes; } } } export {};