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

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

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

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