import { Component, ViewEncapsulation, ComponentRef, ElementRef, Input, EventEmitter, Output, ViewChild } from '@angular/core'; declare var UIkit: any; @Component({ selector: 'modal-loading', template: `

{{title}}

{{message}}

`, encapsulation: ViewEncapsulation.None, }) /** * API to an open alert window. */ export class ModalLoading{ private static MODAL_LOADING_COUNTER: number = 0; id: string = "modal-loading"; title: string; @Input() isMobile: boolean = false; @Input() classTitle: string = "uk-background-primary uk-light"; @Input() public message:string ="Loading"; @ViewChild('loading_element') element: ElementRef; /** * if the value is true alert will be visible or else it will be hidden. */ // public isOpen:boolean=false; /** * Emitted when a ok button was clicked * or when Ok method is called. */ @Output() public alertOutput:EventEmitter = new EventEmitter(); constructor( public _elementRef: ElementRef){ } ngOnInit() { ModalLoading.MODAL_LOADING_COUNTER++; this.id = 'modal-loading-' + ModalLoading.MODAL_LOADING_COUNTER; } ngOnDestroy() { if(typeof document !== "undefined") { const element = document.getElementById("modal-container"); for (let i = element.childNodes.length - 1; i >= 0; --i) { let child: ChildNode = element.childNodes[i]; if (child['id'] == this.id) { child.remove(); } } } } /** * Opens a alert window creating backdrop. */ open(){ // this.isOpen= true; UIkit.modal(this.element.nativeElement).show(); } close(){ // this.isOpen = false; UIkit.modal(this.element.nativeElement).hide(); } }