@jcbautistam/custom-table
Version:
Librería de tabla reutilizable con acciones, filtros, exportación y más.
65 lines (64 loc) • 1.77 kB
TypeScript
import { Observable, Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export interface ExportJob {
id: string;
fileName: string;
progress: number;
isCompleted: boolean;
error: string | null;
timestamp: number;
progressAnimation?: Subscription | null;
}
export interface ExportStatus {
isExporting: boolean;
activeJobs: ExportJob[];
showNotification: boolean;
}
export declare class ExportNotificationService {
private defaultStatus;
private exportStatusSubject;
exportStatus$: Observable<ExportStatus>;
constructor();
/**
* Inicia una nueva exportación y retorna su ID
*/
startExport(fileName: string): string;
/**
* Actualiza el progreso de una exportación específica
*/
updateProgress(jobId: string, targetProgress: number): void;
/**
* Detiene de forma segura una animación
*/
private stopAnimation;
/**
* Anima el progreso de una forma más realista
*/
private animateProgressTo;
/**
* Marca una exportación como completada
*/
completeExport(jobId: string): void;
/**
* Marca una exportación como fallida
*/
errorExport(jobId: string, error: any): void;
/**
* Elimina un trabajo de la lista de trabajos activos
*/
private removeJob;
/**
* Oculta la notificación manualmente
*/
hideNotification(): void;
/**
* Muestra la notificación si estaba oculta
*/
showNotification(): void;
/**
* Genera un ID único para cada trabajo
*/
private generateJobId;
static ɵfac: i0.ɵɵFactoryDeclaration<ExportNotificationService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ExportNotificationService>;
}