UNPKG

ngx-light-modal

Version:

Lightweight and dependency-free Angular modal package using standalone components. Supports stacking, backdrops, dynamic injection, and custom content components.

98 lines (91 loc) 4.29 kB
import * as _angular_core from '@angular/core'; import { ComponentRef, Injector, ApplicationRef, EnvironmentInjector, Type, ViewContainerRef, ElementRef } from '@angular/core'; import { Observable } from 'rxjs'; declare enum CloseState { EXITED = "EXITED", BACKDROP_DISMISS = "BACKDROP_DISMISS", CLOSE_BUTTON = "CLOSE_BUTTON", ESCAPE = "ESCAPE", SUBMITTED = "SUBMITTED", CANCELLED = "CANCELLED" } interface CloseResult<T = any> { state: CloseState; data?: T; } interface ModalConfig { showBackdrop?: boolean; dismissOnBackdropClick?: boolean; showCloseButton?: boolean; escapeKeyClose?: boolean; backdropClass?: string; modalClass?: string; } declare class ModalRef<T = any> { componentInstance: any; readonly id: number; private _afterClosed; private _beforeClosed; private _afterOpened; afterClosed$: Observable<CloseResult<T>>; beforeClosed$: Observable<void>; afterOpened$: Observable<void>; contentRef?: ComponentRef<any>; constructor(componentInstance: any, id: number); onSubmitted(): Observable<CloseResult<T>>; onEscaped(): Observable<CloseResult<T>>; onBackdropDismiss(): Observable<CloseResult<T>>; onStateClose(state: CloseState): Observable<CloseResult<T>>; onCancelled(): Observable<CloseResult<T>>; onUserDismissed(): Observable<CloseResult<T>>; close(result?: any, state?: CloseState): void; notifyAfterOpened(): void; private getStateObservable; } declare class ModalService { private injector; private appRef; private environmentInjector; private modalStack; private contentComponentRegistry; constructor(injector: Injector, appRef: ApplicationRef, environmentInjector: EnvironmentInjector); open<T>(component: Type<T>, data?: Partial<T>, config?: ModalConfig): ModalRef<T>; private generateModalId; getModalRef(contentComponent: unknown): ModalRef | undefined; private cleanupModal; getTopModal(): ModalRef | undefined; isTopModal(modalRef: ModalRef): boolean; private closeSource; onClose$(): Observable<CloseResult>; onStateClose$(state: CloseState): Observable<CloseResult>; onSubmitted$(): Observable<CloseResult>; onDismissed$(): Observable<CloseResult>; onEscaped$(): Observable<CloseResult>; notifyClose(result: CloseResult): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalService, never>; static ɵprov: _angular_core.ɵɵInjectableDeclaration<ModalService>; } declare class ModalContainerComponent { modalContent: ViewContainerRef; modal: ElementRef; modalRef: ModalRef; contentComponent: ComponentRef<any>; modalService: ModalService; showBackdrop: _angular_core.InputSignal<boolean>; dismissOnBackdropClick: _angular_core.InputSignal<boolean>; showCloseButton: _angular_core.InputSignal<boolean>; escapeKeyClose: _angular_core.InputSignal<boolean>; modalClass: _angular_core.InputSignal<string>; backdropClass: _angular_core.InputSignal<string>; zIndex: _angular_core.InputSignal<number>; focus(): void; handleEscape(event: KeyboardEvent): void; createComponent<T>(component: Type<T>): ComponentRef<any>; onBackdropClick(event: MouseEvent): void; closeWithButton(): void; close(state: CloseState): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalContainerComponent, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalContainerComponent, "app-modal-container", never, { "showBackdrop": { "alias": "showBackdrop"; "required": true; "isSignal": true; }; "dismissOnBackdropClick": { "alias": "dismissOnBackdropClick"; "required": true; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": true; "isSignal": true; }; "escapeKeyClose": { "alias": "escapeKeyClose"; "required": true; "isSignal": true; }; "modalClass": { "alias": "modalClass"; "required": true; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>; } export { CloseState, ModalContainerComponent, ModalRef, ModalService }; export type { CloseResult, ModalConfig };