import { TemplateRef } from '@angular/core'; /** * @usedBy PoPopupComponent, PoWidgetComponent * * @description * * Interface para lista de ações do componente. */ export interface PoPopupAction { /** * @description * * Rótulo da ação. * * No componente `po-dropdown`, a label também pode representar o agrupador de subitens. */ label: string; /** * @description * * Ação que será executada, sendo possível passar o nome ou a referência da função. * * No componente `po-dropdown`, a action também pode ser executada para o agrupador de subitens. * * > Para que a função seja executada no contexto do elemento filho o mesmo deve ser passado utilizando *bind*. * * Exemplo: `action: this.myFunction.bind(this)` */ action?: Function; /** * @description * * Define um ícone que será exibido ao lado esquerdo do rótulo. * * É possível usar qualquer um dos ícones da [Biblioteca de ícones](https://po-ui.io/icons). conforme exemplo abaixo: * ``` * * * ``` * * Também é possível utilizar outras fontes de ícones, por exemplo a biblioteca Font Awesome, da seguinte forma: * ``` * * * ``` * * Outra opção seria a customização do ícone através do `TemplateRef`, conforme exemplo abaixo: * component.html: * ``` * * * * * * ``` * component.ts: * ``` * @ViewChild('iconTemplate', { static: true } ) iconTemplate : TemplateRef; * * myProperty = [ * { * label: 'FA ICON', * icon: this.iconTemplate * } * ]; * ``` */ icon?: string | TemplateRef; /** * @description * * Atribui uma linha separadora acima do item. * * */ separator?: boolean; /** * @description * * Função que deve retornar um booleano para habilitar ou desabilitar a ação para o registro selecionado. * * Também é possível informar diretamente um valor booleano que vai habilitar ou desabilitar a ação para todos os registros. * */ disabled?: boolean | Function; /** * @description * * Define a cor do item, sendo `default` o padrão. * * Valores válidos: * - `default` * - `danger` - indicado para ações exclusivas (excluir, sair). */ type?: string; /** * @description * * URL utilizada para redirecionamento das páginas. * * No componente `po-dropdown`, a url também pode ser configurada para o agrupador de subitens. * Entretanto, quando a `url` é informada em um agrupador, o clique **não abrirá os subitens**, pois o item será * tratado como um link e o redirecionamento terá prioridade sobre a exibição da lista. * */ url?: string; /** * @description * * Define se a ação está selecionada. * */ selected?: boolean; /** * @description * * Define se a ação será visível. * * > Caso o valor não seja especificado a ação será visível. * * Opções para tornar a ação visível ou não: * * - Função que deve retornar um booleano. * * - Informar diretamente um valor booleano. * */ visible?: boolean | Function; $id?: string; $subItemTemplate?: TemplateRef; }