import {
Component,
ViewEncapsulation,
ComponentRef,
ElementRef,
Input,
EventEmitter,
Output,
ViewChild
} from '@angular/core';
declare var UIkit: any;
@Component({
selector: 'modal-loading',
template: `
`,
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();
}
}