import { ArchivoRechazado } from '../../../../utils/general/archivos.util'; import * as i0 from "@angular/core"; interface VistaArchivo { icono: string; color: string; extension: string; peso: string; } /** * Selector de archivos con dropzone (drag & drop) o click, validación de * extensión/peso, y lista de archivos elegidos con ícono por tipo y opción de quitar. * * Uso: ``. * * @Input label - Texto del label (mismo patrón que app-input: si no se pasa, no se * renderiza label) * @Input wlabel - Ancho mínimo del label en px cuando `isVertical` es false * @Input isRequired - Muestra el asterisco de campo requerido junto al label * @Input isVertical - Label arriba del dropzone en vez de al costado (default: true) * @Input value - [(value)] lista de archivos ya elegidos/válidos (mismo nombre que * el `value` two-way de app-input/app-input-editor/etc.) * @Input extensiones - Extensiones permitidas sin punto (ej. ['pdf','jpg']); vacío = todas * @Input pesoMaximoMB - Peso máximo por archivo en MB (0 = sin límite) * @Input multiple - Permite elegir/soltar más de un archivo a la vez * @Input disabled - Deshabilita el dropzone/click * @Input texto - Texto principal del dropzone * @Input textoAyuda - Texto de ayuda debajo del dropzone (si no se define, se genera * automáticamente a partir de `extensiones`/`pesoMaximoMB`); mismo nombre * que `textoAyuda` en app-input * @Input icono - Clase del ícono del dropzone (default: 'fa-cloud-arrow-up') * @Input accept - `accept` nativo del input file (si no se define, se genera desde `extensiones`) * @Input variante - 'estandar' (compacto, bordes rectos), 'modern' (10px, sombra) o 'soft' * (el look original de ng-erp-crm-tsi: dropzone punteada suave, cards con acento lateral) * @Output rechazados - Archivos que no pasaron la validación de extensión/peso, con el motivo * @Output fileSelected - Archivos que SÍ pasaron la validación y se agregaron a `value` en esta * tanda (drop/selección puntual, no el array completo) — útil para, por ejemplo, * subirlos a un servicio apenas se agregan, sin esperar a que se guarde el formulario. * Mismo nombre que el output de app-button en su modo `uploadButton`. */ export declare class InputFileComponent { label: import("@angular/core").InputSignal; wlabel: import("@angular/core").InputSignal; isRequired: import("@angular/core").InputSignal; isVertical: import("@angular/core").InputSignal; value: import("@angular/core").ModelSignal; extensiones: import("@angular/core").InputSignal; pesoMaximoMB: import("@angular/core").InputSignal; multiple: import("@angular/core").InputSignal; disabled: import("@angular/core").InputSignal; texto: import("@angular/core").InputSignal; textoAyuda: import("@angular/core").InputSignal; icono: import("@angular/core").InputSignal; accept: import("@angular/core").InputSignal; /** 'estandar' (compacto, bordes rectos), 'modern' (10px, sombra) o 'soft' (el look * original de ng-erp-crm-tsi: dropzone punteada suave, cards con acento lateral). */ variante: import("@angular/core").InputSignal<"estandar" | "modern" | "soft">; rechazados: import("@angular/core").OutputEmitterRef; fileSelected: import("@angular/core").OutputEmitterRef; private readonly fileInput; protected readonly arrastrando: import("@angular/core").WritableSignal; private readonly reglas; protected readonly acceptVisible: import("@angular/core").Signal; protected readonly ayudaVisible: import("@angular/core").Signal; protected abrir(): void; protected onDragOver(event: DragEvent): void; protected onDrop(event: DragEvent): void; protected onChange(event: Event): void; protected quitar(indice: number): void; protected verArchivo(file: File): VistaArchivo; private agregar; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};