import { RdComponent } from './rdComponent'; import { AppComponent } from '../app.component'; export class PopUpOptions { widthPercent: number; size: string = 'medium'; headerBackground: string; closeOnOutsideClick: boolean = true } export abstract class RdPopUp extends RdComponent { private onClose = function (data) { }; public static open(options?: PopUpOptions) { var onloadCallback; var onCloseCallback; options = options ? options : new PopUpOptions(); var promise = { onLoad: (callback: (controller) => void) => { onloadCallback = callback; return promise; }, onDismiss: (callback: (data: any) => void) => { AppComponent.instance.modalInstance.open(this, options, (controller) => { controller.onClose = callback; if (onloadCallback) onloadCallback(controller); }); return promise; } }; return promise; } close(data?) { this.dismiss(); this.onClose(data); } dismiss() { AppComponent.instance.modalInstance.dismiss(); } }