@ciri/ngx-popup
Version:
An angular popup component that can customize animation.
56 lines (55 loc) • 2.25 kB
TypeScript
import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, Renderer2 } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { AnimationMetadata } from '@angular/animations';
import { OverlayHelper } from '../overlay/overlay-helper';
import { AnimationService } from '../animation.service';
export interface PopupAnimations {
enter?: AnimationMetadata | AnimationMetadata[];
leave?: AnimationMetadata | AnimationMetadata[];
}
export declare enum Position {
center = "center",
top = "top",
right = "right",
bottom = "bottom",
left = "left"
}
export declare class PopupComponent implements ControlValueAccessor, OnDestroy {
private hostElRef;
private cdr;
private renderer;
private overlayHelper;
private animation;
position: Position; /** 弹窗位置 */
animations: PopupAnimations; /** 自定义动画 */
overlay: boolean; /** 是否显示蒙版 */
overlayOpacity: number; /** 蒙版透明度 0~1 */
closeOnClickOverlay: boolean; /** 是否允许点击蒙版时自动关闭弹框 */
zIndex: number; /** 同 css z-index */
externalClass: object; /** 自定义类名 */
clickOverlay: EventEmitter<any>; /** 点击蒙版时触发 */
beforeOpen: EventEmitter<any>; /** 打开之前触发(还未执行进场动画) */
afterOpen: EventEmitter<any>; /** 打开之后触发(进场动画执行完毕) */
beforeClose: EventEmitter<any>; /** 关闭之前触发(还未执行离场动画) */
afterClose: EventEmitter<any>; /** 关闭之后触发(离场动画执行完毕) */
private container;
visible: boolean;
readonly el: any;
private destroy$;
private animationSub;
private dirty;
private leaving;
private onChange;
private closeOverlay;
constructor(hostElRef: ElementRef, cdr: ChangeDetectorRef, renderer: Renderer2, overlayHelper: OverlayHelper, animation: AnimationService);
ngOnDestroy(): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
writeValue(value: boolean): void;
private open;
private close;
private openOverlay;
private makeAnimation;
private getEnterAnimation;
private getLeaveAnimation;
}