Componente
Meter group
Um medidor segmentado que divide um total em partes rotuladas e coloridas. Passe um array de itens, escale-os contra um intervalo min/max, disponha-os horizontal ou verticalmente, e sobrescreva os rótulos, medidores, ícones ou conteúdo ao redor com templates.
Divisão segmentada
- Photos42%
- Videos28%
- Notes14%
- Free16%
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { HbMeterGroupImports, type HbMeterItem } from '@herbst/ui';
@Component({
selector: 'hb-demo-meter-group-basic',
imports: [HbMeterGroupImports],
template: ` <hb-meter-group class="w-full max-w-md" [hbValue]="items" /> `,
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HbDemoMeterGroupBasicComponent {
protected readonly items: HbMeterItem[] = [
{ label: 'Photos', value: 42, color: '#6B7A55' },
{ label: 'Videos', value: 28, color: '#A64B2A' },
{ label: 'Notes', value: 14, color: '#B98A3E' },
{ label: 'Free', value: 16, color: '#3E4C3A' },
];
}
Vertical, ícones e posição do rótulo
- Oak38%
- Beech30%
- Maple18%
Medidor e rodapé customizados
- Oak37%
- Beech27%
- Maple15%
3 categories · 78% of quota used
Referência de API
hb-meter-group
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| [hbValue] | Os segmentos. Cada item é { label, value, color?, icon? }. | HbMeterItem[] | [] |
| [hbMin] / [hbMax] | O intervalo de valores contra o qual cada segmento é medido; um segmento preenche (value / (max − min)) da trilha. | number | 0 / 100 |
| [hbOrientation] | Dispõe a trilha como uma barra horizontal ou uma coluna vertical. | 'horizontal' | 'vertical' | 'horizontal' |
| [hbLabelPosition] | Se a lista de rótulos fica antes ou depois da trilha. | 'start' | 'end' | 'end' |
| [hbLabelOrientation] | Dispõe os rótulos numa linha que quebra ou numa coluna empilhada. | 'horizontal' | 'vertical' | 'horizontal' |
Template slots
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| ng-template[hbMeterGroupMeter] | Substitui cada segmento do medidor. Contexto: $implicit = item, index, orientation, size (percentual), totalPercent. | template | — |
| ng-template[hbMeterGroupLabel] | Substitui a lista de rótulos inteira. Contexto: $implicit = items, totalPercent, percentages. | template | — |
| ng-template[hbMeterGroupIcon] | Substitui o ícone por rótulo. Contexto: $implicit = item, icon. | template | — |
| ng-template[hbMeterGroupStart] / [hbMeterGroupEnd] | Insere conteúdo customizado antes ou depois do grupo inteiro (totais, legendas). Contexto = o contexto do rótulo. | template | — |