npm package: @senior-hcm-service-tower/hst-upload-files
Description: Componente desenvolvido para uso em telas customizadas e BPMs pelo time de serviços customizados HCM da Senior Sistemas.
Latest version: 1.0.7

  # HCM Service Tower Senior - Upload Files 🚀
  Componente desenvolvido para uso em telas customizadas e BPMs pelo time de serviços customizados HCM da Senior Sistemas.
  
  ## 📝 Requisitos  
  - Angular: 18.0.1
  
  ## 🛠️Configuração
  Ao utilizar o componente, deve ser adicionado um control pelo formControlName, podendo ser parametrizado de acordo com as necessidades conforme os inputs disponibilizados, como por exemplo: quantidade de arquivos, formatos, tamanho máximo e etc.


### Exemplo de uso no BPM
```html
<hst-upload-files formControlName="arquivo"></hst-upload-files>
```

Utilizando todos os parâmetros de controle:
```html
<hst-upload-files 
  formControlName="arquivo"
  label="Clique para anexar o contrato"
  [maxFile]="1"
  [maxFileSize]="15"
  [allowedFileTypes]="['pdf', 'docx']"
  disablePreview
>
</hst-upload-files>
```

### Exemplo de uso em telas customizadas
```html
<hst-upload-files 
  formControlName="arquivo" 
  area="projeto-contratos"
  domainName="senior-devcom.br"
  noWorkflow
  ><hst-upload-files
```
<small>_noWorkflow_ serve para informar que não será mantido os arquivos no bucket do BPM, necessitando de uma "area" de armazenamento</small>

Utilizando todos os parâmetros de controle:
```html
<hst-upload-files 
  formControlName="arquivo"
  label="Clique para anexar todos os contratos"
  [maxFile]="5"
  [maxFileSize]="15"
  [allowedFileTypes]="['pdf', 'docx']"
  area="projeto-contratos"
  noWorkflow
  disablePreview
>
</hst-upload-files>
```

## 🔧 Inputs

| Input  | Entrada | Valor Padrão | Descrição |
| ------------- | ------------- | ------------- | ------------- |
| label   | String | Anexar arquivo | Label do botão de anexo
| maxFile | Number | 1 | Numero máximo de arquivos anexados
| maxFileSize | Number | 10 | Tamanho máximo em mb de cada arquivo
| allowFileTypes | String[] | [] | Formatos aceitos (se vazio, aceita todos)
| area | String | undefined | Nome do projeto, apenas utilizar quando não for workflow
| domainName | String | '' | Tenant name, apenas utilizar quando não for workflow
| allowMultipleFiles | Boolean | false | Se informado, permite selecionar vários arquivos ao mesmo tempo (Respeitando o numero máximo de arquivos)
| disablePreview | Boolean | false | Desabilita a miniatura de arquivos (disponivel apenas para imagens)
| noWorkflow | Boolean | false | Informar em projetos de tela customizada
| noContentText | String | Não há nenhum anexo | Texto que apresenta quando não há arquivos

Após tudo configurado, para fazer o upload dos arquivos para o ambiente do Senior X, basta chamar a função _syncFiles_ do componente

### Upload de arquivos

Para enviar o arquivo ao bucket do tenant e gerar o id, é necessário enviar manualmente pela função "syncFiles" do componente. No BPM, esse processo será feito no submit do workflow.

Exemplo: 
```javascript
@ViewChild(UploadFilesComponent) uploadFilesComponent: UploadFilesComponent;

async enviarArquivos(): Promise<void> {
  await this.uploadFilesComponent.syncFiles();
}
```