import { Observable } from 'rxjs'; import { ILoadingObservableFn, ILoadingPromiseFn } from './loading-generic-fn.interface'; /** Inteface com os métodos padrões de loading */ import { BaseMessage } from './../messaging/base-message'; import { ILoadingGenericFn } from './loading-generic-fn.interface'; /** * Interface padrão de loading */ export interface ILoadingDefault { /** Método para mostrar/ativar o spinner */ showLoading(): void; /** Método para esconder/desativar o spinner */ hideLoading(): void; /** Método para setar o texto de loading */ setLoadingText(loadingText: BaseMessage): void; /** * Método que executa a função passada por parâmetro e executa o spinner * @deprecated Utilize o método `executeWithLoading` (Este método não executa automaticamente o observable ou promise) */ executeLoading(callback: ILoadingGenericFn, ...args: any[]): ReturnType; /** * Método que retorna um observable que encapsula a execução do loading durante o processamento * do observable ou promise retornado da função recebida por parâmetro * Ao chamar o `subscribe`: * - o loading iniciará; * - o observable ou promise recebido da função passada parâmetro será executado; * - o loading terminará após o processamento do observable ou promise; */ executeWithLoading(callback: ILoadingObservableFn | ILoadingPromiseFn, ...args: any[]): Observable; }