Componente
Org chart
Uma árvore hierárquica de nós conectados. Passe dados aninhados, disponha-a vertical ou horizontalmente, colapse ramos, selecione nós como único, múltiplo ou checkboxes em cascata, e faça template de cada nó.
Árvore colapsável
- Director
- Curator
- Assistant A
- Assistant B
- Field lead
import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
import { HbOrgChartImports, type HbOrgChartKey, type HbOrgChartNode } from '@herbst/ui';
@Component({
selector: 'hb-demo-org-chart-basic',
imports: [HbOrgChartImports],
template: ` <hb-org-chart class="w-full" [hbNodes]="nodes" [(hbCollapsedKeys)]="collapsed" /> `,
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HbDemoOrgChartBasicComponent {
protected readonly collapsed = signal<HbOrgChartKey[]>(['field']);
protected readonly nodes: HbOrgChartNode[] = [
{
key: 'director',
label: 'Director',
children: [
{
key: 'curator',
label: 'Curator',
children: [
{ key: 'assistant-a', label: 'Assistant A' },
{ key: 'assistant-b', label: 'Assistant B' },
],
},
{
key: 'field',
label: 'Field lead',
children: [{ key: 'collector', label: 'Collector' }],
},
],
},
];
}
Template de nó e seleção
- A. HerbstDirector
- M. VogelCurator
- L. BraunAssistant
- R. KleinAssistant
- S. AdlerField lead
Click a node · keys: []
Checkbox em cascata e horizontal
Herbst Trees Oak Beech
Shrubs Hazel
0 checked
Referência de API
hb-org-chart
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| [hbNodes] | Os dados da árvore. Cada nó é { key, label?, data?, children?, selectable?, collapsible?, styleClass? }. | HbOrgChartNode[] | [] |
| [hbLayout] | Cresce a árvore de cima para baixo ou da esquerda para a direita. | 'vertical' | 'horizontal' | 'vertical' |
| [hbSelectionMode] | Como os nós são selecionados. checkbox cascateia para descendentes e reflete o estado indeterminado do pai. | 'none' | 'single' | 'multiple' | 'checkbox' | 'none' |
| [(hbSelection)] | As keys dos nós selecionados, bidirecional. | HbOrgChartKey[] | [] |
| [hbMetaKeySelection] | No modo multiple, exige Ctrl/Cmd para adicionar à seleção em vez de alternar aditivamente. | boolean | false |
| [hbCollapsible] / [(hbCollapsedKeys)] | Mostra os controles de ramo, e o conjunto bidirecional de keys de nós colapsados. | boolean / HbOrgChartKey[] | true / [] |
Events & template
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| (hbNodeSelect) / (hbNodeUnselect) | Emitem o nó ao ser selecionado ou desselecionado. | HbOrgChartNode | — |
| (hbNodeExpand) / (hbNodeCollapse) | Emitem o nó quando seu ramo é expandido ou colapsado. | HbOrgChartNode | — |
| ng-template[hbOrgChartNode] | Renderiza o corpo de cada nó. Contexto: $implicit = o nó. Sem ele, o label do nó é mostrado. | template | — |
| node.selectable / node.collapsible / node.styleClass | Overrides por nó: bloquear seleção, bloquear colapso, ou adicionar classes à caixa daquele nó. | boolean / string | — |