Visão geral do serviço Angular Icon

    O Ignite UI for Angular Icon Service permite que os desenvolvedores adicionem novos ícones de várias fontes às suas interfaces do usuário.

    Introduction

    O Ignite UI for Angular Icon Service fornece vários métodos que permitem aos usuários criar e gerenciar famílias de ícones.

    O serviço de ícones pode ser importado diretamente do pacote Ignite UI for Angular.

    import { IgxIconComponent } from 'igniteui-angular/icon';
    import { IgxIconService } from 'igniteui-angular/core';
    
    
    @Component({
        selector: 'app-root',
        standalone: true,
        imports: [ IgxIconComponent ]
    })
    export class AppComponent implements OnInit {
        constructor(public iconService: IgxIconService) {}
    }
    

    Adding Icon Families

    Por padrão, o Serviço Ícone define sua família padrão paramaterial.

    Adicionar novas famílias de ícones é feito usando osetFamily método do serviço de ícones. Ele cria uma entrada familiar com alguns metadados que instruem oigx-icon componente sobre o(s) ícone(s) que deve renderizar.

    Vamos usar um exemplo prático para explicar como osetFamily método funciona:

    /** 
    * The icon service associates a given family name (provided by the user) 
    * with a specific CSS class (as documented in the providing icon font) 
    * and corresponding icon name (documented in the icon font).
    * NOTE: Material is already the default family.
    */ 
    iconService.setFamily('material', { className: 'material-icons', type: 'liga' });
    iconService.setFamily('fa-solid', { className: 'fas', type: 'font', prefix: 'fa' });
    

    O exemplo acima cria duas famílias de ícones: 'material' e 'fa-sólido'. Seus tipos são diferentes, amaterial família é registrada comoliga, enquanto afa-solid família é registrada comofont. A diferença entre os dois é como oigx-icon componente os renderizaria. Normalmente, o Font Awesome usa nomes de classes para especificar pontos de código para uma família de fontes, por isso definimos seu tipo parafont. Sempre que precisarmos depender de pontos de código para renderizar ícones, devemos definir o tipo parafont. A família Material Icons ainda é uma família de fontes, porém, a forma padrão de exibir um ícone é fornecer umligature nome, em vez de um nome de classe apontando para um ponto de código específico. Por isso, precisamos definir o tipo paraliga. Existe um terceiro tipo de família -svg, reservado para famílias de ícones que serão compostas por SVGs registrados pelo Serviço de Ícones.

    Tendo registrado as duas famílias de fontes acima, agora podemos consumir seus ícones de forma padronizada via oigx-icon componente:

    <igx-icon family="material" name="home"></igx-icon>
    <igx-icon family="fa-solid" name="car"></igx-icon>
    

    Você deve ter notado que, para amaterial família, usamos a ligaduraname como nome, enquanto no caso dafa-solid família especificamos oclassName para nome, que éfa-car só que remove ofa- prefixo como foi especificado quando registramos a família de ícones na etapa anterior.

    Adding SVG Icons

    O Serviço de Ícones Ignite UI for Angular nos permite associar imagens SVG a famílias e dar nomes a elas para que possam ser incluídas via oigx-icon componente da mesma forma que ícones baseados em fontes. Os SVGs devem ser resolvidos por meio de strings ou por URI absoluto para o ativo SVG.

    // Add a new 'material' icon called 'my-icon' from an SVG file
    iconService.addSvgIcon('my-icon', 'my-icon.svg', 'material');
    
    // Add a new 'fa-solid' icon called 'my-icon' from string 
    iconService.addSvgIconFromText('my-icon', '<svg>...</svg>', 'fa-solid');
    

    Mais tarde na marcação:

    <igx-icon family="material" name="my-icon"></igx-icon>
    <igx-icon family="fa-solid" name="my-icon"></igx-icon>
    

    Note que estamos adicionando ícones SVG personalizados a famílias de tiposliga efont Isso é possível porque osaddSvgIcon métodos eaddSvgIconFromText registram os ícones comosvg tipo implicitamente, permitindo que oigx-icon componente renderize corretamente o SVG.

    Meta Families

    O Ignite UI for Angular Icon Service nos permite criar mapas de pseudo-família que combinam ícones adicionados por meio da configuração de uma família de ícones de fonte ou da adição de SVGs sob um guarda-chuva comum para que seja mais fácil referenciá-los.

    // The `setIconRef` sets an icon reference in the icon map,
    // assuming material and fa-solid have been added as families,
    iconService.setIconRef('home', 'my-family', { family: 'material', name: 'home' });
    iconService.setIconRef('home-alt', 'my-family', { family: 'fa-solid', name: 'home' });
    iconService.setIconRef('car', 'my-family', { family: 'fa-solid', name: 'car' });
    

    Mais tarde na marcação:

    <igx-icon family="my-family" name="home"></igx-icon>
    <igx-icon family="my-family" name="home-alt"></igx-icon>
    <igx-icon family="my-family" name="car"></igx-icon>
    

    Icon Retrieval

    É possível obter um ícone para um dadofamily e íconename para ler o íconetype original,name,family, eclassName.

    const { family, className, name, type } = iconService.getIcon('my-family', 'car');
    
    console.log(family); // -> 'fa-solid'
    console.log(className); // -> 'fas'
    console.log(name); // -> 'fa-car'
    console.log(type); // -> 'font'
    

    Internal Usage

    A partir da versão 18.1.0 de Ignite UI for Angular, adicionamos um novosetFamily método que nos permite criar novas famílias de ícones no Serviço de Ícones e associá-los a classes, tipos e até prefixos CSS. Além disso, ícones usados internamente agora são todos declarados por referência em uma novadefault família com nomes com aliased (veja tabela abaixo).

    Cognome Ícone de destino Target Family
    add add material
    add_child adicionar filho imx-icons
    add_row adicionar linha imx-icons
    arrow_back arrow_back material
    arrow_drop_down arrow_drop_up material
    arrow_forward seta_para_frente material
    arrow_next chevron_right material
    arrow_prev chevron_left material
    case_sensitive case-sensitive imx-icons
    carousel_next seta_para_frente material
    carousel_prev arrow_back material
    chevron_left chevron_left material
    chevron_right chevron_right material
    relógio access_time material
    fechar fechar material
    colapso expand_less material
    confirmar verificar material
    date_range date_range material
    excluir delete material
    drag_indicator drag_indicator material
    editar editar material
    erro erro material
    expandir expandir_mais material
    expand_more expandir_mais material
    file_download arquivo_download material
    filter_all selecionar tudo imx-icons
    filter_before é antes imx-icons
    filter_contains Contém imx-icons
    filter_does_not_contain não-contém- imx-icons
    filter_empty está vazio imx-icons
    filter_equal Equals imx-icons
    filter_false é-falso imx-icons
    filter_greater_than maior que imx-icons
    filter_greater_than_or_equal maior ou igual imx-icons
    filter_in está na imx-icons
    filter_last_month último mês imx-icons
    filter_last_year último ano imx-icons
    filter_less_than menor que imx-icons
    filter_less_than_or_equal menor que ou igual imx-icons
    filter_next_month próximo mês imx-icons
    filter_next_year próximo ano imx-icons
    filter_not_empty não vazio imx-icons
    filter_not_equal não igual imx-icons
    filter_not_null não é nulo imx-icons
    filter_null é-nulo imx-icons
    filter_starts_with começa com imx-icons
    filter_this_month este mês imx-icons
    filter_this_year este ano imx-icons
    filter_today Hoje imx-icons
    filter_true é-verdade imx-icons
    filter_yesterday Ontem imx-icons
    first_page first_page material
    group_work trabalho em grupo material
    esconder visibilidade_desligada material
    import_export import_export material
    input_collapse arrow_drop_up material
    input_clear claro material
    input_expand arrow_drop_down material
    jump_down pular para baixo imx-icons
    jump_up pular para cima imx-icons
    last_page last_page material
    more_vert more_vert material
    próximo navigate_next material
    alfinete pino à esquerda imx-icons
    Prev navigate_before material
    atualizar atualizar material
    retirar cancelar material
    procurar procurar material
    selecionado terminado material
    programa visibilidade material
    sort_asc arrow_upward material
    sort_desc seta_para_baixo material
    Funções Funções material
    table_rows table_rows material
    Hoje calendar_today material
    tree_collapse expandir_mais material
    tree_expand chevron_right material
    unfold_less desdobrar_menos material
    unfold_more unfold_more material
    Desafixar desafixar à esquerda imx-icons
    view_column view_column material

    Para aproveitar a alteração dos ícones internos por referência, em vez de criar modelos personalizados, você pode fazer o seguinte para substituir os ícones de expansão/recolhimento na combinação e selecionar componentes:

    iconService.setIconRef('input_expand', 'default', {
        name: 'arrow_downward',
        family: 'material',
    });
    
    iconService.setIconRef('input_collapse', 'default', {
        name: 'arrow_upward',
        family: 'material',
    });
    

    Isso definirá os ícones de expandir e colapsar para asarrow_downward ligaduras earrow_upward, respectivamente, damaterial família de fontes para todos os componentes combo e select.

    Aqui está um detalhamento de todos os ícones usados por cada componente:

    Faixa de ação

    Ícone Descrição
    add_child Usado pelo menu pop-up.
    add_row Usado pelo menu pop-up.
    more_vert Usado pelo menu pop-up.

    Calendário

    Ícone Descrição
    arrow_prev Usado pelo cabeçalho para navegar entre meses/anos.
    arrow_next Usado pelo cabeçalho para navegar entre meses/anos.
    Ícone Descrição
    carousel_prev Usado para navegar entre slides.
    carousel_next Usado para navegar entre slides.

    Cavaco

    Ícone Descrição
    selecionado Usado para indicar que um chip está selecionado.
    retirar Usado para o botão remover.

    Combo (incl. Simple Combo)

    Ícone Descrição
    case_sensitive Usado para indicar e alternar a filtragem que diferencia maiúsculas de minúsculas.
    input_clear Usado para o botão de limpeza.
    input_expand Usado para o botão de alternância quando o menu de combinação está recolhido.
    input_collapse Usado para o botão de alternância quando o menu de combinação é expandido.

    Seletor de data

    Ícone Descrição
    Hoje Usado para o botão de alternância que aciona o seletor.
    input_clear Usado para o botão de limpeza.

    Seletor de intervalo de datas

    Ícone Descrição
    date_range Usado para o botão de alternância que aciona o seletor.

    Painel de expansão

    Ícone Descrição
    expandir Usado para o botão de alternância que aciona o estado expandido.
    colapso Usado para o botão de alternância que aciona o estado recolhido.

    Grid

    Ícone Descrição
    add Usado no menu de filtro do Excel para adicionar entrada de filtro.
    arrow_back Usado em vários elementos da interface do usuário para mover uma coluna para trás.
    arrow_drop_down Usado em vários botões para indicar menus alternáveis.
    arrow_forward Usado em vários elementos da interface do usuário para mover uma coluna para frente.
    Cancelar Usado em vários elementos da interface do usuário para cancelar operações.
    chevron_right Usado para indicar menus expansíveis, como na filtragem de estilo do Excel.
    fechar Usado para fechar um menu expandido.
    confirmar Usado para confirmar uma operação.
    drag_indicator Usado para mostrar uma alça para indicar que um item pode ser arrastado.
    erro Usado em células editáveis para indicar entrada de dados incorreta.
    expand_more Usado pelo menu de filtragem do Excel para indicar a adição de mais filtros.
    file_download Usado pelo exportador de filtros do Excel.
    filter_* Usado para vários operandos de filtragem.
    group_work Usado pela área de soltar agrupar por.
    esconder Usado por vários elementos da interface do usuário para ocultar colunas.
    import_export Usado pelo seletor de dados de pivô para movimentação.
    input_clear Usado por campos de entrada para limpar dados de entrada.
    próximo Usado pelo menu de linha de filtragem para navegar entre as fichas.
    alfinete Usado por vários elementos da interface do usuário para fixação de coluna.
    Prev Usado pelo menu de linha de filtragem para navegar entre as fichas.
    retirar Usado por vários elementos da interface do usuário como um indicador de remoção.
    atualizar Usado pelo menu de linha de filtragem para recarregar os filtros.
    selecionado Usado por vários elementos da interface do usuário para indicar a seleção ativa.
    programa Usado por vários elementos da interface do usuário para mostrar colunas.
    sort_asc Usado por vários elementos da interface do usuário para indicar a direção da classificação.
    sort_desc Usado por vários elementos da interface do usuário para indicar a direção da classificação.
    Funções Usado pela grade dinâmica e pelos seletores de dados.
    table_rows Usado pelo seletor de dados da grade dinâmica.
    tree_collapse Usado por estrutura semelhante a uma árvore para mostrar menos detalhes.
    tree_expand Usado por estrutura semelhante a árvore para mostrar mais detalhes.
    Desafixar Usado por vários elementos da interface do usuário para fixação de coluna.
    unfold_less Usado pela grade hierárquica para recolher todas as linhas.
    unfold_more Usado pela grade hierárquica para expandir todas as linhas.
    view_column Usado pelo seletor de dados dinâmicos.

    Grupo de Entrada

    Ícone Descrição
    input_clear Usado para o botão de limpeza.

    Paginador

    Ícone Descrição
    first_page Usado pelo botão usado para navegar até a primeira página.
    last_page Usado pelo botão usado para navegar até a última página.
    Prev Usado pelo botão usado para navegar para a página anterior.
    próximo Usado pelo botão usado para navegar para a próxima página.

    Construtor de consultas

    Ícone Descrição
    add Usado pelo botão para adicionar novas entradas de filtro.
    fechar Usado pelo botão que fecha o menu contextual.
    editar Usado pelo botão para editar entradas de filtro.
    confirmar Usado pelo botão para confirmar a adição de novas entradas de filtro.
    desagrupar Usado pelo botão para desagrupar entradas de filtro.
    excluir Usado pelo botão para excluir entradas de filtro.
    filter_* Usado para vários operandos de filtragem.

    Selecionar

    Ícone Descrição
    input_expand Usado para o botão de alternância quando o menu de seleção é recolhido.
    input_collapse Usado para o botão de alternância quando o menu de seleção é expandido.

    Guias

    Ícone Descrição
    Prev Usado pelo botão usado para navegar para a guia anterior.
    próximo Usado pelo botão usado para navegar para a próxima guia.

    Seletor de tempo

    Ícone Descrição
    relógio Usado para o botão de alternância que aciona o seletor.

    Árvore

    Ícone Descrição
    tree_expand Usado para o botão de alternância que aciona o seletor.
    tree_collapse Usado para o botão de alternância que aciona o seletor.

    API

    Aqui está um resumo rápido de todos os métodos disponíveis por meio do Ignite UI for Angular Icon Service.

    Add Family

    setFamily(name: string, meta: IconFamilyMeta): IgxIconService;
    

    Icon References

    Defina SOMENTE se NÃO já apresentar o mapa de ícones:

    addIconRef(name: string, family: string, icon: IconMeta): void;
    

    Defina uma referência de ícone no mapa de ícones (substituída se já estiver presente):

    setIconRef(name: string, family: string, icon: IconMeta): void;
    

    Referência de Obter e Ícone

    getIconRef(family: string, name: string): IconReference;
    

    SVG Icons

    Do URI:

    addSvgIcon(name: string, url: string, family: string, stripMeta = false): void;
    

    Da string:

    addSvgIconFromText(name: string, iconText: string, family: string, stripMeta = false): void;
    

    API References

    Additional Resources

    Nossa comunidade é ativa e sempre acolhedora para novas ideias.