Componente
File upload
Um uploader com arrastar e soltar. Escolha ou solte arquivos, visualize-os, imponha limites de tipo, tamanho e quantidade, e opcionalmente envie a um endpoint — numa dropzone completa ou botão compacto.
Avançado (dropzone)
Drop autumn photos here
Selected: —
import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
import { HbFileUploadImports, type HbUploadFile } from '@herbst/ui';
@Component({
selector: 'hb-demo-file-upload-advanced',
imports: [HbFileUploadImports],
template: `
<div class="flex w-full max-w-md flex-col gap-2">
<hb-file-upload
hbMultiple
hbAccept="image/*,.pdf"
hbChooseLabel="Choose files"
hbUploadLabel="Upload"
hbClearLabel="Clear"
hbDropLabel="Drop autumn photos here"
(hbSelect)="onSelect($event)"
(hbClear)="names.set('')"
/>
<p class="font-mono text-[12px] text-muted-foreground">Selected: {{ names() || '—' }}</p>
</div>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HbDemoFileUploadAdvancedComponent {
protected readonly names = signal('');
protected onSelect(files: HbUploadFile[]): void {
this.names.set(files.map((file) => file.name).join(', '));
}
}
Básico (compacto)
Limites de tipo, tamanho e quantidade
Images only · up to 1 MB · max 2 files
No errors yet.
Referência de API
hb-file-upload — selection
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| [hbMode] | Dropzone completa, ou um botão compacto. | 'advanced' | 'basic' | 'advanced' |
| [hbMultiple] | Permite selecionar mais de um arquivo. | boolean | false |
| [hbAccept] | Tipos aceitos (uma string accept, ex. "image/*,.pdf"). | string | '' |
| [hbMaxFileSize] / [hbFileLimit] | Tamanho máximo por arquivo em bytes, e número máximo de arquivos (0 = sem limite). | number | 0 |
| [hbShowPreview] / [hbDisabled] | Mostra prévias dos arquivos, e desabilita o controle. | boolean | true / false |
| labels | hbChooseLabel, hbUploadLabel, hbClearLabel, hbDropLabel. | string | 'Choose' / 'Upload' / 'Clear' / … |
hb-file-upload — uploading
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| [hbAuto] | Envia os arquivos imediatamente ao selecionar. | boolean | false |
| [hbUrl] / [hbName] / [hbWithCredentials] | Endpoint, nome do campo de formulário, e se envia credenciais. | string / boolean | '' / 'files' / false |
Outputs & templates
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| (hbSelect) / (hbRemove) / (hbClear) | Arquivos escolhidos, um arquivo removido, e a lista limpa. | HbUploadFile[] / HbUploadFile / void | — |
| (hbUpload) / (hbProgress) / (hbComplete) / (hbUploadError) | Eventos do ciclo de upload, incluindo erros de validação e de rede. | event objects | — |
| hbUploadHeader / hbUploadFile / hbUploadEmpty | Diretivas ng-template para customizar o cabeçalho, cada linha de arquivo e o estado vazio. | template | — |