import { ComponentFactoryResolver } from '@angular/core'; import { Injector, ComponentRef, ViewContainerRef, TemplateRef } from '@angular/core'; import { Overlay } from '@angular/material'; import { Subject } from 'rxjs/Subject'; import { Observable } from 'rxjs/Observable'; import { TdLoadingContext } from '../directives/loading.directive'; import { LoadingStyle } from '../loading.component'; import { ITdLoadingConfig } from './loading.service'; export interface IInternalLoadingOptions extends ITdLoadingConfig { height?: number; style?: LoadingStyle; } export interface ILoadingRef { observable: Observable; componentRef: ComponentRef; subject?: Subject; times?: number; } /** * NOTE: @internal usage only. */ export declare class TdLoadingFactory { private _componentFactoryResolver; private _overlay; private _injector; constructor(_componentFactoryResolver: ComponentFactoryResolver, _overlay: Overlay, _injector: Injector); /** * Uses material `Overlay` services to create a DOM element and attach the loading component * into it. Leveraging the state and configuration from it. * * Saves a reference in context to be called when registering/resolving the loading element. */ createFullScreenComponent(options: ITdLoadingConfig): ILoadingRef; /** * Creates a loading component dynamically and attaches it into the given viewContainerRef. * Leverages TemplatePortals from material to inject the template inside of it so it fits * perfecly when overlaying it. * * Saves a reference in context to be called when registering/resolving the loading element. */ createOverlayComponent(options: ITdLoadingConfig, viewContainerRef: ViewContainerRef, templateRef: TemplateRef): ILoadingRef; /** * Creates a loading component dynamically and attaches it into the given viewContainerRef. * Replaces the template with the loading component depending if it was registered or resolved. * * Saves a reference in context to be called when registering/resolving the loading element. */ createReplaceComponent(options: ITdLoadingConfig, viewContainerRef: ViewContainerRef, templateRef: TemplateRef, context: TdLoadingContext): ILoadingRef; /** * Creates a fullscreen overlay for the loading usage. */ private _createOverlay(); /** * Creates a generic component dynamically waiting to be attached to a viewContainerRef. */ private _createComponent(options); /** * Initialize context for loading component. */ private _initializeContext(); /** * Maps configuration to the loading component instance. */ private _mapOptions(options, instance); }