openiis-ui
Version:
Una librería moderna de componentes UI para Angular con temas personalizables
83 lines (82 loc) • 2 kB
TypeScript
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export interface UploadConfig {
maxFileSize?: number;
allowedTypes?: string[];
maxFiles?: number;
compressionQuality?: number;
enableResize?: boolean;
maxWidth?: number;
maxHeight?: number;
}
export interface FileUploadItem {
id: string;
file: File;
name: string;
size: number;
type: string;
url?: string;
thumbnailUrl?: string;
}
export declare class OpeniisUploadService {
private uploadQueue$;
private defaultConfig;
constructor();
/**
* Obtener la cola de archivos como Observable
*/
get uploadQueue(): Observable<FileUploadItem[]>;
/**
* Obtener cola actual de forma síncrona
*/
getCurrentQueue(): FileUploadItem[];
/**
* Validar un archivo individual
*/
validateFile(file: File, config?: UploadConfig): {
valid: boolean;
error?: string;
};
/**
* Agregar archivos a la cola
*/
addFiles(files: FileList | File[], config?: UploadConfig): Observable<FileUploadItem[]>;
/**
* Obtener archivo por ID
*/
getFile(id: string): File | null;
/**
* Obtener todos los archivos
*/
getAllFiles(): {
id: string;
file: File;
name: string;
}[];
/**
* Eliminar archivo de la cola
*/
removeFile(id: string): void;
/**
* Limpiar toda la cola
*/
clearQueue(): void;
/**
* Comprimir imagen
*/
compressImage(file: File, quality?: number, maxWidth?: number, maxHeight?: number): Promise<File>;
/**
* Generar preview de imagen
*/
private generatePreview;
/**
* Actualizar un elemento en la cola
*/
private updateItem;
/**
* Generar ID único
*/
private generateId;
static ɵfac: i0.ɵɵFactoryDeclaration<OpeniisUploadService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<OpeniisUploadService>;
}