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
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

PropriedadeDescriçãoTipoPadrã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

PropriedadeDescriçãoTipoPadrã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