import { TemplateRef } from '@angular/core'; /** * @usedBy PoHeaderComponent * * @description * * *Interface* que define a seção de Actions do header. * * Indicação de uso: * - Primeira ação destinada à app launcher. * - Segunda ação (terceiro ícone) destinada à notificações. * - Terceira ação (segundo ícone) destinada para agrupamento de ações. * * > Caso seja passado items e popover, o componente irá renderizar o popover e os itens serão ignorados. * */ export interface PoHeaderActionTool { /** * * @optional * * @description * * Título da ação */ label?: string; /** * * @optional * * @description * * Texto que será apresentado na tooltip */ tooltip?: string; /** * * @optional * * @description * * Ícone do botão de ação */ icon?: string; /** * * @optional * * @description * * Template que será utilizado na ação */ popover?: PoHeaderActionPopoverAction; /** * * @optional * * @description * * Evento emitido ao clicar em uma ação * * Exemplo: `action: this.myFunction.bind(this)` */ action?: Function; /** * * @optional * * @description * * Itens de ações * */ items?: Array; /** * * @optional * * @description * * Valor númerico com a repsentação de notificações * */ badge?: number; /** * * * @description * * link utilizado no redirecionamento das páginas. * */ link?: string; /** * * @optional * * @description * * Função executada quando o popup ou popover da ação é aberto. * * Esse evento é disparado toda vez que o usuário clica no botão da ação e o popup (quando há `items`) * ou o popover (quando há `popover`) é exibido. * * O callback recebe como parâmetro o `label` da ação que disparou o evento. * * Exemplo: `onOpen: (label) => console.log('Aberto:', label)` */ onOpen?: (label?: string) => void; /** * * @optional * * @description * * Função executada quando o popup ou popover da ação é fechado. * * Esse evento é disparado toda vez que o popup (quando há `items`) ou o popover (quando há `popover`) * é ocultado, seja por clique fora do elemento ou por ação programática. * * O callback recebe como parâmetro o `label` da ação que disparou o evento. * * Exemplo: `onClose: (label) => console.log('Fechado:', label)` */ onClose?: (label?: string) => void; $selected?: any; } /** * @usedBy PoHeaderComponent * * @description * * *Interface* que define um template para uma ação. * */ export interface PoHeaderActionPopoverAction { /** * @description * * Template que será renderizado dentro do popover. */ content: TemplateRef; /** * @description * * Largura, em pixels, do template renderizado dentro do popover. * * Valores permitidos: de 240 a 800. * */ width?: number; } /** * @usedBy PoHeaderComponent * * @description * * *Interface* que define uma lista de ações. * */ export interface PoHeaderActionToolItem { /** * * @description * * Label da ação */ label: string; /** * * @description * * Evento emitido ao clicar em uma ação * * Exemplo: `action: this.myFunction.bind(this)` */ action: Function; }