@asi-ngtools/lib
Version:
This project is a little components library, simple to use, which will help you to simplify your project.
119 lines (118 loc) • 11.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Subject } from 'rxjs';
import { Component, ViewContainerRef, ViewChild, HostBinding } from '@angular/core';
import * as nh from '../../../native-helper';
export class AsiDialogContainer {
/**
* @param {?} viewContainerRef
*/
constructor(viewContainerRef) {
this.viewContainerRef = viewContainerRef;
this.class = 'asi-component asi-dialog-container';
this.dialogs = [];
this.subjectContainer = new Subject();
}
/**
* @return {?}
*/
onContainerEmpty() {
return this.subjectContainer.asObservable();
}
/**
* @param {?} dialogRef
* @return {?}
*/
addDialog(dialogRef) {
this.dialogs.push(dialogRef);
dialogRef.instance['_dialogDestroy'].subscribe(() => {
this.removeDialog(dialogRef);
});
setTimeout(() => {
if (this.visibleDialog && !dialogRef.instance.getConfig().over) {
this.visibleDialog.location.nativeElement.style.display = 'none';
}
this.visibleDialog = dialogRef;
this.visibleDialog.location.nativeElement.style.display = 'flex';
if (dialogRef.instance.getConfig().over) {
/** @type {?} */
const stillOpen = this.dialogs.find((dialog) => {
return dialog.instance === dialogRef.instance;
}) != null;
if (stillOpen) {
this.shadow.nativeElement.style.zIndex = 2;
this.visibleDialog.location.nativeElement.style.position = 'absolute';
this.visibleDialog.location.nativeElement.style.zIndex = 3;
}
}
}, 200);
}
/**
* @param {?} dialogRef
* @return {?}
*/
removeDialog(dialogRef) {
nh.remove(this.dialogs, (dialog) => {
return dialog.instance === dialogRef.instance;
});
if (dialogRef.instance.getConfig().over) {
this.shadow.nativeElement.style.zIndex = 1;
}
dialogRef.destroy();
if (this.dialogs.length === 0) {
this.shadow.nativeElement.style.opacity = '0';
setTimeout(() => {
if (this.dialogs.length === 0) {
this.subjectContainer.next(this);
this.subjectContainer.complete();
}
else {
this.shadow.nativeElement.style.opacity = '0.5';
}
}, 200);
}
else {
this.visibleDialog = this.dialogs[this.dialogs.length - 1];
this.visibleDialog.location.nativeElement.style.display = 'flex';
}
}
/**
* @return {?}
*/
ngAfterContentInit() {
setTimeout(() => {
this.shadow.nativeElement.style.opacity = '0.5';
}, 50);
}
}
AsiDialogContainer.decorators = [
{ type: Component, args: [{
selector: 'asi-dialog-container',
template: "<div class=\"dialog-container\">\r\n <div #shadow class=\"dialog-backdrop\"></div>\r\n</div>"
}] }
];
/** @nocollapse */
AsiDialogContainer.ctorParameters = () => [
{ type: ViewContainerRef }
];
AsiDialogContainer.propDecorators = {
class: [{ type: HostBinding, args: ['class',] }],
shadow: [{ type: ViewChild, args: ['shadow',] }]
};
if (false) {
/** @type {?} */
AsiDialogContainer.prototype.class;
/** @type {?} */
AsiDialogContainer.prototype.dialogs;
/** @type {?} */
AsiDialogContainer.prototype.visibleDialog;
/** @type {?} */
AsiDialogContainer.prototype.shadow;
/** @type {?} */
AsiDialogContainer.prototype.subjectContainer;
/** @type {?} */
AsiDialogContainer.prototype.viewContainerRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWRpYWxvZy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FzaS1kaWFsb2cvY29udGFpbmVyL2FzaS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFrQyxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBILE9BQU8sS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNN0MsTUFBTTs7OztJQVdKLFlBQW1CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO3FCQVR2QixvQ0FBb0M7dUJBRW5CLEVBQUU7Z0NBS08sSUFBSSxPQUFPLEVBQUU7S0FHcEU7Ozs7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0tBQzdDOzs7OztJQUVELFNBQVMsQ0FBQyxTQUF1QztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3QixTQUFTLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEs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QUFDO1NBQ2pELEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDUjs7O1lBbEZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyx5R0FBa0Q7YUFDbkQ7Ozs7WUFQbUIsZ0JBQWdCOzs7b0JBVWpDLFdBQVcsU0FBQyxPQUFPO3FCQUtuQixTQUFTLFNBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzaURpYWxvZyB9IGZyb20gJy4vLi4vZGlhbG9nL2FzaS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudFJlZiwgQWZ0ZXJDb250ZW50SW5pdCwgVmlld0NoaWxkLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0ICogYXMgbmggZnJvbSAnLi4vLi4vLi4vbmF0aXZlLWhlbHBlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FzaS1kaWFsb2ctY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJ2FzaS1kaWFsb2ctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzaURpYWxvZ0NvbnRhaW5lciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAnYXNpLWNvbXBvbmVudCBhc2ktZGlhbG9nLWNvbnRhaW5lcic7XHJcblxyXG4gIGRpYWxvZ3M6IEFycmF5PENvbXBvbmVudFJlZjxBc2lEaWFsb2c8YW55Pj4+ID0gW107XHJcbiAgdmlzaWJsZURpYWxvZzogQ29tcG9uZW50UmVmPEFzaURpYWxvZzxhbnk+PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2hhZG93Jykgc2hhZG93OiBhbnk7XHJcblxyXG4gIHByaXZhdGUgc3ViamVjdENvbnRhaW5lcjogU3ViamVjdDxBc2lEaWFsb2dDb250YWluZXI+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICB9XHJcblxyXG4gIG9uQ29udGFpbmVyRW1wdHkoKTogT2JzZXJ2YWJsZTxBc2lEaWFsb2dDb250YWluZXI+IHtcclxuICAgIHJldHVybiB0aGlzLnN1YmplY3RDb250YWluZXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBhZGREaWFsb2coZGlhbG9nUmVmOiBDb21wb25lbnRSZWY8QXNpRGlhbG9nPGFueT4+KSB7XHJcbiAgICB0aGlzLmRpYWxvZ3MucHVzaChkaWFsb2dSZWYpO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5pbnN0YW5jZVsnX2RpYWxvZ0Rlc3Ryb3knXS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbW92ZURpYWxvZyhkaWFsb2dSZWYpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnZpc2libGVEaWFsb2cgJiYgIWRpYWxvZ1JlZi5pbnN0YW5jZS5nZXRDb25maWcoKS5vdmVyKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlRGlhbG9nLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnZpc2libGVEaWFsb2cgPSBkaWFsb2dSZWY7XHJcbiAgICAgIHRoaXMudmlzaWJsZURpYWxvZy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XHJcblxyXG5cclxuICAgICAgaWYgKGRpYWxvZ1JlZi5pbnN0YW5jZS5nZXRDb25maWcoKS5vdmVyKSB7XHJcbiAgICAgICAgLy8gaWYgdGhlIGRpYWxvZyBpcyBzdGlsbCBvcGVuXHJcbiAgICAgICAgY29uc3Qgc3RpbGxPcGVuID0gdGhpcy5kaWFsb2dzLmZpbmQoKGRpYWxvZykgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGRpYWxvZy5pbnN0YW5jZSA9PT0gZGlhbG9nUmVmLmluc3RhbmNlO1xyXG4gICAgICAgIH0pICE9IG51bGw7XHJcbiAgICAgICAgaWYgKHN0aWxsT3Blbikge1xyXG4gICAgICAgICAgdGhpcy5zaGFkb3cubmF0aXZlRWxlbWVudC5zdHlsZS56SW5kZXggPSAyO1xyXG4gICAgICAgICAgdGhpcy52aXNpYmxlRGlhbG9nLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgICAgICAgdGhpcy52aXNpYmxlRGlhbG9nLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUuekluZGV4ID0gMztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIDIwMCk7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRGlhbG9nKGRpYWxvZ1JlZjogQ29tcG9uZW50UmVmPEFzaURpYWxvZzxhbnk+Pikge1xyXG4gICAgbmgucmVtb3ZlKHRoaXMuZGlhbG9ncywgKGRpYWxvZykgPT4ge1xyXG4gICAgICByZXR1cm4gZGlhbG9nLmluc3RhbmNlID09PSBkaWFsb2dSZWYuaW5zdGFuY2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZGlhbG9nUmVmLmluc3RhbmNlLmdldENvbmZpZygpLm92ZXIpIHtcclxuICAgICAgdGhpcy5zaGFkb3cubmF0aXZlRWxlbWVudC5zdHlsZS56SW5kZXggPSAxO1xyXG4gICAgfVxyXG4gICAgZGlhbG9nUmVmLmRlc3Ryb3koKTtcclxuXHJcbiAgICBpZiAodGhpcy5kaWFsb2dzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnNoYWRvdy5uYXRpdmVFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAnMCc7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ3MubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLnN1YmplY3RDb250YWluZXIubmV4dCh0aGlzKTtcclxuICAgICAgICAgIHRoaXMuc3ViamVjdENvbnRhaW5lci5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNoYWRvdy5uYXRpdmVFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAnMC41JztcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDIwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpc2libGVEaWFsb2cgPSB0aGlzLmRpYWxvZ3NbdGhpcy5kaWFsb2dzLmxlbmd0aCAtIDFdO1xyXG4gICAgICB0aGlzLnZpc2libGVEaWFsb2cubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hhZG93Lm5hdGl2ZUVsZW1lbnQuc3R5bGUub3BhY2l0eSA9ICcwLjUnO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxufVxyXG4iXX0=