Visão geral do componente divisor Angular
O componente Ignite UI for Angular Splitter fornece a capacidade de criar layouts, divididos em vários painéis dispostos vertical ou horizontalmente que podem ser redimensionados, expandidos e recolhidos. Essas interações são realizadas por meio da UI exposta nas barras divisoras entre os painéis. Um layout Splitter simples é demonstrado na demonstração abaixo.
Angular Splitter Example
Getting Started with Ignite UI for Angular Splitter
Para começar a usar o componente Ignite UI for Angular Splitter, primeiro você precisa instalar Ignite UI for Angular. Em um aplicativo Angular existente, digite o seguinte comando:
ng add igniteui-angular
Para obter uma introdução completa ao Ignite UI for Angular, leia o tópico de introdução.
O próximo passo é importar issoIgxSplitterModule no seu arquivo app.module.ts.
// app.module.ts
...
import { IgxSplitterModule } from 'igniteui-angular/splitter';
// import { IgxSplitterModule } from '@infragistics/igniteui-angular'; for licensed package
@NgModule({
...
imports: [..., IgxSplitterModule],
...
})
export class AppModule {}
Alternativamente,16.0.0 você pode importarIgxSplitterComponent como uma dependência independente ou usar oIGX_SPLITTER_DIRECTIVES token para importar o componente e todos os seus componentes e diretivas de suporte.
// home.component.ts
import { IGX_SPLITTER_DIRECTIVES } from 'igniteui-angular/splitter';
// import { IGX_SPLITTER_DIRECTIVES } from '@infragistics/igniteui-angular'; for licensed package
@Component({
selector: 'app-home',
template: `
<igx-splitter>
<igx-splitter-pane>
Pane 1
</igx-splitter-pane>
<igx-splitter-pane>
Pane 2
</igx-splitter-pane>
</igx-splitter>
`,
styleUrls: ['home.component.scss'],
standalone: true,
imports: [IGX_SPLITTER_DIRECTIVES]
/* or imports: [IgxSplitterComponent, IgxSplitterPaneComponent] */
})
export class HomeComponent {}
Agora que você importou o módulo ou diretivas do Splitter Ignite UI for Angular, pode começar a usar oigx-splitter componente.
Using the Angular Splitter
igxSplitter é inicializado com a tag igx-splitter. Vários painéis divisores podem ser definidos sob um único componente igx-splitter. O conteúdo do painel é modelável e será renderizado em seu próprio contêiner redimensionável.
<!-- splitter.component.html -->
<igx-splitter>
<igx-splitter-pane>
...
</igx-splitter-pane>
<igx-splitter-pane>
...
</igx-splitter-pane>
<igx-splitter-pane>
...
</igx-splitter-pane>
</igx-splitter>
Orientation
O divisor pode ser vertical ou horizontal, definido pelatype entrada. O valor padrão é Vertical.
public type = SplitterType.Horizontal;
<igx-splitter [type]="type">
<igx-splitter-pane>
...
</igx-splitter-pane>
<igx-splitter-pane>
...
</igx-splitter-pane>
</igx-splitter>
Collapsible Splitter
Você pode tornar o divisor dobrável ou não mostrando ou escondendo a alavanca e os expansores do divisor, usando anonCollapsible entrada. O valor padrão é falso, então o divisor é colapsável.
<igx-splitter [nonCollapsible]="true">
<igx-splitter-pane>
...
</igx-splitter-pane>
<igx-splitter-pane>
...
</igx-splitter-pane>
</igx-splitter>
Configuring panes
O componente igxSplitterPane contém várias propriedades de entrada. Você pode definir o tamanho inicial do painel usando asize propriedade de entrada. AsminSize propriedades de entrada emaxSize podem ser usadas para definir o tamanho mínimo ou máximo permitido do painel. Redimensionar alémminSize do limite nãomaxSize é permitido.
<igx-splitter>
<igx-splitter-pane size='300px' minSize='100px'>
...
</igx-splitter-pane>
<igx-splitter-pane size='300px' maxSize='500px'>
...
</igx-splitter-pane>
</igx-splitter>
Você também pode proibir o redimensionamento de um painel definindo suaresizable propriedade de entrada como falso.
<igx-splitter>
<igx-splitter-pane [resizable]='false'>
...
</igx-splitter-pane>
<igx-splitter-pane>
...
</igx-splitter-pane>
</igx-splitter>
Nested panes
Você pode aninhar componentes divisores para criar um layout mais complexo dentro de um painel divisor.
public typeHorizontal = SplitterType.Horizontal;
public typeVertical = SplitterType.Vertical;
<igx-splitter style='height: 30vh;' [type]='typeHorizontal' >
<igx-splitter-pane>
<igx-splitter [type]='typeVertical' [style.width]='"100%"'>
<igx-splitter-pane>
Pane1.1
</igx-splitter-pane>
<igx-splitter-pane>
Pane1.2
</igx-splitter-pane>
</igx-splitter>
</igx-splitter-pane>
<igx-splitter-pane>
<igx-splitter [type]='typeVertical' [style.width]='"100%"'>
<igx-splitter-pane>
Pane2.1
</igx-splitter-pane>
<igx-splitter-pane>
Pane2.2
</igx-splitter-pane>
</igx-splitter>
</igx-splitter-pane>
</igx-splitter>
Demo
Navegação pelo teclado
A navegação pelo teclado está disponível por padrão no componente splitter. Quando você foca uma barra divisora e pressiona uma das seguintes combinações de teclas, o comportamento descrito é executado.
Key combinations
Arrow Up- Move a barra divisora para cima em um divisor verticalArrow Down- Move a barra divisora para baixo em um divisor verticalArrow Left- Move a barra divisória para a esquerda em um divisor horizontalArrow Right- Move a barra divisória para a direita em um divisor horizontalCtrl + Arrow Up- Expande/Colapsa um painel em um divisor verticalCtrl + Arrow Down- Expande/Colapsa um painel em um divisor verticalCtrl + Arrow Left- Expande/Colapsa um painel em um divisor horizontalCtrl + Arrow Right- Expande/Colapsa um painel em um divisor horizontal
Estilização
Splitter Theme Property Map
Quando você modifica uma propriedade primária, todas as propriedades dependentes relacionadas são atualizadas automaticamente para refletir a alteração:
| Propriedade primária | Propriedade dependente | Descrição |
|---|---|---|
| $bar-cor | $handle cor | A cor da alça de arrasto da barra |
| $expander cor | A cor do expansor de seta | |
| $focus cor | A cor usada para a barra divisora focada |
Para começar a estilizar o componente igxSplitter, você precisa importar oindex arquivo, onde todas as funções de tema e mixins de componentes estão ativos:
@use "igniteui-angular/theming" as *;
// IMPORTANT: Prior to Ignite UI for Angular version 13 use:
// @import '~igniteui-angular/lib/core/styles/themes/index';
Você pode mudar os estilos padrão do divisor criando um novo tema que estenda osplitter-theme. Ao fornecer apenas os parâmetros base, o tema gerará automaticamente todos os estilos necessários para os estados de interação.
// In splitter-styling-sample.component.scss
$splitter-theme: splitter-theme(
$bar-color: #011627,
$handle-color: #ecaa53,
$expander-color: #ecaa53,
$size: 4px
);
Using CSS Variables
O próximo passo é passar o tema do divisor personalizado:
@include css-vars($custom-splitter-theme);
Demo
Este é o resultado final da aplicação do seu novo tema.
Styling with Tailwind
Você pode estilizar o splitter usando nossas classes utilitárias personalizadas Tailwind. Certifique-se de configurar o Tailwind primeiro.
Junto com a importação de vento de cauda em sua folha de estilo global, você pode aplicar os utilitários de tema desejados da seguinte maneira:
@import "tailwindcss";
...
@use 'igniteui-theming/tailwind/utilities/material.css';
O arquivo utilitário inclui tantolight as variantes quantodark as do tema.
- Use
light-*as aulas para o tema da luz. - Use
dark-*classes para o tema sombrio. - Adicione o nome do componente após o prefixo, por exemplo,
light-splitter,dark-splitter.
Uma vez aplicadas, essas classes possibilitam cálculos dinâmicos de temas. A partir daí, você pode sobrescrever as variáveis CSS geradas usandoarbitrary properties. Após os dois-pos, forneça qualquer formato de cor CSS válido (HEX, variável CSS, RGB, etc.).
Você pode encontrar a lista completa de propriedades no tema divisor. A sintaxe é a seguinte:
<igx-splitter
class="!light-splitter ![--bar-color:#7B9E89]">
...
</igx-splitter>
Note
O ponto de exclamação(!) é necessário para garantir que a classe utilitária tenha prioridade. O Tailwind aplica estilos em camadas e, sem marcar esses estilos como importantes, eles serão substituídos pelo tema padrão do componente.
Custom sizing
Você pode usar a--size variável, direcionando diretamente oigx-splitter seguinte:
igx-splitter {
--size: 10px;
}
Ou você pode usar a variável universal--igx-splitter-size para direcionar todas as instâncias:
<div class="my-app">
<igx-splitter></igx-splitter>
</div>
.my-app {
--igx-splitter-size: 10px;
}
API References
- Componente IgxSplitter
- Componente IgxSplitterPane
- Tipo de divisor
- Estilos de componentes IgxSplitter
Theming Dependencies
Nossa comunidade é ativa e sempre acolhedora para novas ideias.