import { AfterContentInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core'; import { FormControl } from '@angular/forms'; import { FileDto } from './models/file-dto'; import { FilePickerPermissions } from './models/file-picker-permissions'; import { UploadError } from './models/uploadError'; import * as i0 from "@angular/core"; import * as i1 from "@seniorsistemas/angular-components/common/deprecated-selector"; /** * @description Componente de upload de arquivos com suporte a seleção múltipla, * validação de tipo/tamanho, controle de permissões (adicionar, ler, remover), * download e cancelamento de uploads em andamento. * * @example * ```html * * ``` * * @category Inputs */ export declare class FilePickerComponent implements OnInit, OnDestroy, AfterContentInit { private readonly sanitizer; private readonly filePickerService; private readonly translate; static nextId: number; ADD_PERMISSION: FilePickerPermissions; READ_PERMISSION: FilePickerPermissions; REMOVE_PERMISSION: FilePickerPermissions; private readonly inputUpload; private readonly anchor; /** @description Identificador do componente no DOM. Gerado automaticamente se não informado. */ id: string; /** @description Rótulo do botão de seleção de arquivo. */ chooseLabel?: string; /** @description Rótulo do botão de remoção de arquivo. */ removeLabel?: string; /** @description Rótulo do botão de cancelamento de upload. */ cancelLabel?: string; /** @description Texto do tooltip exibido após upload bem-sucedido. */ successTooltip?: string; /** @description Permite selecionar múltiplos arquivos ao mesmo tempo. */ multiple?: boolean; /** @description Tipos MIME aceitos pelo seletor de arquivo (ex.: `'application/pdf,image/*'`). */ accept?: string; /** @description Lista de extensões de arquivo aceitas para validação (ex.: `['.pdf', '.docx']`). @default [] */ supportedExtensions: string[]; /** @description Label ARIA para o nome do arquivo, para leitores de tela. */ ariaLabelFileName?: string; /** @description Tamanho máximo por arquivo em bytes. */ maxFileSize?: number; /** @description Tamanho máximo combinado de todos os arquivos em bytes. */ maxCombinedFileSize?: number; /** @description Número máximo de arquivos que podem ser selecionados. */ fileLimit?: number; /** @description Label ARIA para a barra de progresso do upload. */ ariaLabelProgress?: string; /** @description Label ARIA para o ícone de sucesso. */ ariaLabelSuccess?: string; /** @description Label ARIA para mensagens de erro de validação. */ ariaLabelError?: string; /** @description Label ARIA para o botão de remoção de arquivo. */ ariaLabelRemove?: string; /** @description FormControl externo vinculado ao componente para controle de estado. */ formControl?: FormControl; /** @description Desabilita todas as interações do componente. @default false */ disabled: boolean; /** @description Exibe a data de upload de cada arquivo. @default false */ showFileUploadDate: boolean; /** @description Lista de permissões habilitadas no componente: `'add'`, `'read'`, `'remove'`. @default ALL_PERMISSIONS */ permissions: FilePickerPermissions[]; /** * @description Lista de arquivos já enviados a serem exibidos no componente. * Ao atribuir, os arquivos são processados e suas URLs são geradas para preview. */ set files(files: FileDto[]); /** @description Emitido quando o usuário seleciona arquivos válidos para upload. */ uploadHandler: EventEmitter<{ files: FileDto[]; }>; /** @description Emitido quando o usuário remove um arquivo da lista. */ removeFile: EventEmitter<{ file: File; }>; /** @description Emitido quando o usuário cancela um upload em andamento. Emite o índice do arquivo cancelado. */ cancelUpload: EventEmitter; /** @description Emitido quando o usuário clica para baixar um arquivo. */ downloadFile: EventEmitter<{ index: number; anchor: ElementRef; }>; /** @description Emitido quando um arquivo não passa na validação de tipo, tamanho ou limite. */ validateErrors: EventEmitter; private _files; private readonly ngUsubscribe; isSmallDevice: boolean; inputValue: string; modifiedDate?: string; ngOnInit(): void; ngOnDestroy(): void; ngAfterContentInit(): void; onResize(): void; _onInputFileSelect($event: Event): void; onFileSelect(files: FileDto[]): void; onRemoveFile(file: FileDto): void; onCancelUpload(index: number): void; onDowloadFile(index: number): void; get files(): FileDto[]; formatFileSize(size: number): string; private update; private isFileLimitExceeded; private isFileCombinedSizeExceeded; private isFileSizeExceeded; private isUnsupportedFileExtension; private clearFileInput; private getUploadDate; private setModifiedDate; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }