import { EventEmitter } from '../../stencil-public-runtime'; import { IDropdownItem, IDropdownSubAction } from '../ez-dropdown/structure/DropdownItem'; type ButtonMode = 'default' | 'icon-only' | 'icon-left'; type ButtonSize = 'small' | 'medium' | 'large'; interface RippleType { x: number; y: number; id: number; } /** * Split Button Component * * @example * ```html * * * ``` * * @fires buttonClick - Emitido quando o botão principal é clicado * @fires dropdownItemClick - Emitido quando um botão do dropdown é clicado * @fires dropdownSubActionClick - Emitido quando uma subação de um item do dropdown é clicada */ export declare class EzSplitButton { _element: HTMLElement; private leftButton; private rightButton; private dropdownParent; private offsetParentRect; private i18n; leftRipples: RippleType[]; rightRipples: RippleType[]; isLeftPressed: boolean; isRightPressed: boolean; /** * Se true, o dropdown do botão é exibido. */ show: boolean; /** * Se false o usuário não pode interagir com o botão. * @deprecated Use `isDisabled` prop instead. */ enabled: boolean; /** * Se verdadeiro o clique no botão fica desabilitado mas a navegação continua funcional. * Se full, o usuário não pode interagir com o botão. */ isDisabled: boolean | "full" | ""; /** * Define o ícone a ser usado da biblioteca de ícones: [ez-icons](https://gilded-nasturtium-6b64dd.netlify.app/docs/components/layout-doc/icons/) * @deprecated Use `leftIconName` prop instead. */ iconName: string; /** * Define o ícone esquerdo a ser usado da biblioteca de ícones: [ez-icons](https://gilded-nasturtium-6b64dd.netlify.app/docs/components/layout-doc/icons/) */ leftIconName: string; /** * Define o ícone direito a ser usado da biblioteca de ícones: [ez-icons](https://gilded-nasturtium-6b64dd.netlify.app/docs/components/layout-doc/icons/) */ rightIconName: string; /** * Define o caminho usado nos modos `icon-only` e `icon-left` para imagens não contempladas na biblioteca de ícones. */ image: string; /** * Define o conteúdo do dropdown. */ items: Array; /** * Texto a ser apresentado como label do botão. */ label: string; /** * Texto a ser apresentado como title do botão principal */ leftTitle: string; /** * Texto a ser apresentado como title do botão dropdown */ rightTitle: string; /** * Define o modo de uso do botão. */ mode: ButtonMode; /** * Define o tamanho do ez-split-button. */ size: ButtonSize; /** * Define a variante do ez-split-button. */ variant?: "primary" | "secondary" | "tertiary"; /** * Se verdadeiro, desabilita a animação de ripple. */ suppressAnimation?: boolean; /** * Função builder que possibilita alterar como o item da lista vai ser apresentado. * Observação: No react ele se transforma em VNode e não como HTMLElement. */ itemBuilder: (item: IDropdownItem, level: number) => HTMLElement | string; /** * Emitido quando o botão principal é clicado */ buttonClick: EventEmitter; /** * Emitido quando um item do dropdown é clicado */ dropdownItemClick: EventEmitter; /** * Emitido quando uma subAction de um item do dropdown é clicada */ dropdownSubActionClick: EventEmitter; /** * Remove o foco de ambos os botões. */ setBlur(): Promise; /** * Aplica o foco no botão principal. */ setLeftButtonFocus(): Promise; /** * Aplica o foco no botão do dropdown. */ setRightButtonFocus(): Promise; /** * Abre ou Fecha o dropdown do Split Button. */ toggleDropdown(): Promise; /** * Informa se a lista de ações está aberta. */ isOpenedDropdown(): Promise; private rippleCounter; private eventListeners; private createRipple; private getEventCoordinates; private addRippleToButton; private setButtonPressed; private scheduleRippleCleanup; private removeRipple; onMouseDown(event: MouseEvent): void; onTouchStart(event: TouchEvent): void; clickListener(evt: MouseEvent): void; private shouldShowLabelOnLeftButton; private shouldShowIconOnLeftButton; private getIconSize; private closeDropdown; private handleButtonClick; private handleDropdownItemClick; private handleDropdownSubActionClick; /** * Método responsável em posicionar o dropdown na tela. * Faz com que o dropdown se ajuste automaticamente ao espaco na tela */ private positionDropdown; private calculateDropdownPosition; private setupEventListeners; private cleanupEventListeners; componentWillLoad(): Promise; componentDidLoad(): void; disconnectedCallback(): void; componentDidUpdate(): void; private addElementIDs; private renderRipples; render(): any; private renderLeftButton; private renderDivider; private renderDropdownSection; private renderRightButton; private renderDropdownContent; private renderLeftIcon; private renderLabel; private renderRightIcon; private renderDropdown; private removeForcedFocusVisibleLeft; private removeForcedFocusVisibleRight; private addBlurListeners; private removeBlurListeners; connectedCallback(): void; private get isButtonDisabled(); private get isButtonAriaDisabled(); } export {};