UNPKG

@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
/** * @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=