ngx-bootstrap
Version:
Angular Bootstrap
278 lines (267 loc) • 10.2 kB
TypeScript
import * as i0 from '@angular/core';
import { EventEmitter, StaticProvider, InjectionToken, OnInit, ElementRef, Renderer2, ComponentRef, RendererFactory2, TemplateRef, OnDestroy, ViewContainerRef, ModuleWithProviders } from '@angular/core';
import { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';
import * as i1 from 'ngx-bootstrap/focus-trap';
declare class BsModalRef<T = any> {
/**
* Event that is fired when the modal behind the ref starts hiding
*/
onHide?: EventEmitter<unknown>;
/**
* Event that is fired when the modal behind the ref finishes hiding
*/
onHidden?: EventEmitter<unknown>;
/**
* Allow user to ID for the modal. Otherwise, a unique number will be given
*/
id?: number | string;
/**
* Reference to a component inside the modal. Null if modal's been created with TemplateRef
*/
content?: T;
/**
* Hides the modal
*/
hide: () => void;
/**
* Sets new class to modal window
*/
setClass: (newClass: string) => void;
static ɵfac: i0.ɵɵFactoryDeclaration<BsModalRef<any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<BsModalRef<any>>;
}
declare class ModalBackdropOptions {
animate: boolean;
constructor(options: ModalBackdropOptions);
}
type CloseInterceptorFn = () => Promise<void>;
declare class ModalOptions<T = Record<string, unknown>> {
/**
* Allow user to ID for the modal. Otherwise, a unique number will be given
*/
id?: number | string;
/**
* Includes a modal-backdrop element. Alternatively,
* specify static for a backdrop which doesn't close the modal on click.
*/
backdrop?: boolean | 'static';
/**
* Closes the modal when escape key is pressed.
*/
keyboard?: boolean;
focus?: boolean;
/**
* Shows the modal when initialized.
*/
show?: boolean;
/**
* Ignore the backdrop click
*/
ignoreBackdropClick?: boolean;
/**
* Css class for opened modal
*/
class?: string;
/**
* Toggle animation
*/
animated?: boolean;
/**
* Modal data
*/
initialState?: Partial<T>;
/**
* Function to intercept the closure
*/
closeInterceptor?: CloseInterceptorFn;
/**
* Modal providers
*/
providers?: StaticProvider[];
/**
* aria-labelledby attribute value to set on the modal window
*/
ariaLabelledBy?: string;
/**
* aria-describedby attribute value to set on the modal window
*/
ariaDescribedby?: string;
static ɵfac: i0.ɵɵFactoryDeclaration<ModalOptions<any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ModalOptions<any>>;
}
declare const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions>;
/** This component will be added as background layout for modals if enabled */
declare class ModalBackdropComponent implements OnInit {
get isAnimated(): boolean;
set isAnimated(value: boolean);
get isShown(): boolean;
set isShown(value: boolean);
element: ElementRef;
renderer: Renderer2;
protected _isAnimated: boolean;
protected _isShown: boolean;
constructor(element: ElementRef, renderer: Renderer2);
ngOnInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ModalBackdropComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ModalBackdropComponent, "bs-modal-backdrop", never, {}, {}, never, never, true, never>;
}
declare class BsModalService {
private clf;
private modalDefaultOption;
config: ModalOptions;
onShow: EventEmitter<any>;
onShown: EventEmitter<any>;
onHide: EventEmitter<any>;
onHidden: EventEmitter<any>;
protected isBodyOverflowing: boolean;
protected originalBodyPadding: number;
protected scrollbarWidth: number;
protected backdropRef?: ComponentRef<ModalBackdropComponent>;
private _backdropLoader;
private modalsCount;
private lastHiddenId;
private lastDismissReason?;
private loaders;
private _renderer;
private _focusEl;
constructor(rendererFactory: RendererFactory2, clf: ComponentLoaderFactory, modalDefaultOption: ModalOptions);
/** Shows a modal */
show<T>(content: string | TemplateRef<any> | {
new (...args: any[]): T;
}, config?: ModalOptions<T>): BsModalRef<T>;
hide(id?: number | string): void;
_showBackdrop(): void;
_hideBackdrop(): void;
_showModal<T>(content: any): BsModalRef<T>;
_hideModal(id?: number | string): void;
getModalsCount(): number;
setDismissReason(reason: string): void;
removeBackdrop(): void;
/** Checks if the body is overflowing and sets scrollbar width */
/** @internal */
checkScrollbar(): void;
setScrollbar(): void;
private resetScrollbar;
private getScrollbarWidth;
private _createLoaders;
private removeLoaders;
private copyEvent;
static ɵfac: i0.ɵɵFactoryDeclaration<BsModalService, [null, null, { optional: true; }]>;
static ɵprov: i0.ɵɵInjectableDeclaration<BsModalService>;
}
declare class ModalContainerComponent implements OnInit, OnDestroy {
protected _element: ElementRef;
private _renderer;
config: ModalOptions;
isShown: boolean;
level?: number;
isAnimated: boolean;
bsModalService?: BsModalService;
_focusEl: Element | null;
private isModalHiding;
private clickStartedInContent;
constructor(options: ModalOptions, _element: ElementRef, _renderer: Renderer2);
ngOnInit(): void;
onClickStarted(event: MouseEvent): void;
onClickStop(event: MouseEvent): void;
onPopState(): void;
onEsc(event: KeyboardEvent): void;
ngOnDestroy(): void;
hide(): void;
private _hide;
static ɵfac: i0.ɵɵFactoryDeclaration<ModalContainerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ModalContainerComponent, "modal-container", never, {}, {}, never, ["*"], true, never>;
}
/** Mark any code with directive to show it's content in modal */
declare class ModalDirective implements OnDestroy, OnInit {
private _element;
private _renderer;
/** allows to set modal configuration via element property */
set config(conf: ModalOptions);
get config(): ModalOptions;
/** allows to provide a callback to intercept the closure of the modal */
closeInterceptor?: CloseInterceptorFn;
/** This event fires immediately when the `show` instance method is called. */
onShow: EventEmitter<ModalDirective>;
/** This event is fired when the modal has been made visible to the user
* (will wait for CSS transitions to complete)
*/
onShown: EventEmitter<ModalDirective>;
/** This event is fired immediately when
* the hide instance method has been called.
*/
onHide: EventEmitter<ModalDirective>;
/** This event is fired when the modal has finished being
* hidden from the user (will wait for CSS transitions to complete).
*/
onHidden: EventEmitter<ModalDirective>;
/** This field contains last dismiss reason.
* Possible values: `backdrop-click`, `esc` and `id: number`
* (if modal was closed by direct call of `.hide()`).
*/
dismissReason?: string;
get isShown(): boolean;
protected _config: ModalOptions;
protected _isShown: boolean;
protected isBodyOverflowing: boolean;
protected originalBodyPadding: number;
protected scrollbarWidth: number;
protected timerHideModal: number;
protected timerRmBackDrop: number;
protected backdrop?: ComponentRef<ModalBackdropComponent>;
private _backdrop;
private isNested;
private clickStartedInContent;
private _focusEl;
constructor(_element: ElementRef, _viewContainerRef: ViewContainerRef, _renderer: Renderer2, clf: ComponentLoaderFactory, modalDefaultOption: ModalOptions);
onClickStarted(event: MouseEvent): void;
onClickStop(event: MouseEvent): void;
onEsc(event: KeyboardEvent): void;
ngOnDestroy(): void;
ngOnInit(): void;
/** Allows to manually toggle modal visibility */
toggle(): void;
/** Allows to manually open modal */
show(): void;
/** Check if we can close the modal */
hide(event?: Event): void;
/** Private methods @internal */
/**
* Manually close modal
* @internal
*/
protected _hide(): void;
protected getConfig(config?: ModalOptions): ModalOptions;
/**
* Show dialog
* @internal
*/
protected showElement(): void;
/** @internal */
protected hideModal(): void;
/** @internal */
protected showBackdrop(callback?: () => void): void;
/** @internal */
protected removeBackdrop(): void;
/** Events tricks */
protected focusOtherModal(): void;
/** @internal */
protected resetAdjustments(): void;
/** Scroll bar tricks */
/** @internal */
protected checkScrollbar(): void;
protected setScrollbar(): void;
protected resetScrollbar(): void;
protected getScrollbarWidth(): number;
static ɵfac: i0.ɵɵFactoryDeclaration<ModalDirective, [null, null, null, null, { optional: true; }]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<ModalDirective, "[bsModal]", ["bs-modal"], { "config": { "alias": "config"; "required": false; }; "closeInterceptor": { "alias": "closeInterceptor"; "required": false; }; }, { "onShow": "onShow"; "onShown": "onShown"; "onHide": "onHide"; "onHidden": "onHidden"; }, never, never, true, never>;
}
declare class ModalModule {
static forRoot(): ModuleWithProviders<ModalModule>;
static forChild(): ModuleWithProviders<ModalModule>;
static ɵfac: i0.ɵɵFactoryDeclaration<ModalModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<ModalModule, never, [typeof i1.FocusTrapModule, typeof ModalBackdropComponent, typeof ModalDirective, typeof ModalContainerComponent], [typeof ModalBackdropComponent, typeof ModalDirective]>;
static ɵinj: i0.ɵɵInjectorDeclaration<ModalModule>;
}
export { BsModalRef, BsModalService, MODAL_CONFIG_DEFAULT_OVERRIDE, ModalBackdropComponent, ModalBackdropOptions, ModalContainerComponent, ModalDirective, ModalModule, ModalOptions };
export type { CloseInterceptorFn };