81 lines
1.8 KiB
TypeScript
81 lines
1.8 KiB
TypeScript
/** @file
|
|
* @author Edouard DUPIN
|
|
* @copyright 2020, Edouard DUPIN, all right reserved
|
|
* @license MPL-2 (see license file)
|
|
*/
|
|
|
|
import { Component, Input, Output, OnInit, OnDestroy, EventEmitter } from '@angular/core';
|
|
|
|
import { PopInService } from 'app/service';
|
|
|
|
@Component({
|
|
// moduleId: module.id.toString(),
|
|
selector: 'app-popin',
|
|
templateUrl: './popin.html',
|
|
styleUrls: [ './popin.less' ]
|
|
})
|
|
export class PopInComponent implements OnInit, OnDestroy {
|
|
@Input() id: string;
|
|
@Input() popTitle: string = 'No title';
|
|
@Input() closeTopRight: any = 'false';
|
|
@Input() popSize: string = 'medium';
|
|
|
|
@Output() callback: EventEmitter<any> = new EventEmitter();
|
|
@Input() closeTitle: any = null;
|
|
@Input() validateTitle: any = null;
|
|
@Input() saveTitle: any = null;
|
|
@Input() otherTitle: any = null;
|
|
|
|
public displayPopIn: boolean = false;
|
|
|
|
constructor(private popInService: PopInService) {
|
|
|
|
}
|
|
ngOnInit(): void {
|
|
// ensure id attribute exists
|
|
if(!this.id) {
|
|
console.error('popin must have an id');
|
|
return;
|
|
}
|
|
// move element to bottom of page (just before </body>) so it can be displayed above everything else
|
|
// this.element.appendTo('body');
|
|
this.popInService.add(this);
|
|
// this.element.hide();
|
|
}
|
|
// remove self from popIn service when directive is destroyed
|
|
ngOnDestroy(): void {
|
|
this.popInService.remove(this.id);
|
|
// this.element.remove();
|
|
}
|
|
// open popIn
|
|
open(): void {
|
|
this.displayPopIn = true;
|
|
// this.element.show();
|
|
}
|
|
// close popin
|
|
close(): void {
|
|
this.displayPopIn = false;
|
|
// this.element.hide();
|
|
}
|
|
|
|
onCloseTop(): void {
|
|
this.callback.emit([ 'close-top' ]);
|
|
}
|
|
|
|
onValidate(): void {
|
|
this.callback.emit([ 'validate' ]);
|
|
}
|
|
|
|
onClose(): void {
|
|
this.callback.emit([ 'close' ]);
|
|
}
|
|
|
|
onOther(): void {
|
|
this.callback.emit([ 'other' ]);
|
|
}
|
|
|
|
onSave(): void {
|
|
this.callback.emit([ 'save' ]);
|
|
}
|
|
}
|