"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); var core_1 = require("@angular/core"); var animations_1 = require("@angular/animations"); var dynamicdialogcontent_1 = require("./dynamicdialogcontent"); var dynamicdialog_config_1 = require("./dynamicdialog-config"); var common_1 = require("@angular/common"); var domhandler_1 = require("../dom/domhandler"); var dynamicdialog_ref_1 = require("./dynamicdialog-ref"); var DynamicDialogComponent = /** @class */ (function () { function DynamicDialogComponent(componentFactoryResolver, cd, renderer, config, dialogRef, zone) { this.componentFactoryResolver = componentFactoryResolver; this.cd = cd; this.renderer = renderer; this.config = config; this.dialogRef = dialogRef; this.zone = zone; this.visible = true; } DynamicDialogComponent.prototype.ngAfterViewInit = function () { this.loadChildComponent(this.childComponentType); this.cd.detectChanges(); }; DynamicDialogComponent.prototype.onOverlayClicked = function (evt) { this.dialogRef.close(); }; DynamicDialogComponent.prototype.onDialogClicked = function (evt) { evt.stopPropagation(); }; DynamicDialogComponent.prototype.loadChildComponent = function (componentType) { var componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType); var viewContainerRef = this.insertionPoint.viewContainerRef; viewContainerRef.clear(); this.componentRef = viewContainerRef.createComponent(componentFactory); }; DynamicDialogComponent.prototype.moveOnTop = function () { if (this.config.autoZIndex !== false) { var zIndex = this.config.baseZIndex || 0 + (++domhandler_1.DomHandler.zindex); this.container.style.zIndex = String(zIndex); this.maskViewChild.nativeElement.style.zIndex = String(zIndex - 1); } }; DynamicDialogComponent.prototype.onAnimationStart = function (event) { switch (event.toState) { case 'visible': this.container = event.element; this.moveOnTop(); this.bindGlobalListeners(); domhandler_1.DomHandler.addClass(document.body, 'ui-overflow-hidden'); break; case 'void': this.onContainerDestroy(); break; } }; DynamicDialogComponent.prototype.onAnimationEnd = function (event) { if (event.toState === 'void') { this.dialogRef.close(); } }; DynamicDialogComponent.prototype.onContainerDestroy = function () { domhandler_1.DomHandler.removeClass(document.body, 'ui-overflow-hidden'); this.unbindGlobalListeners(); this.container = null; }; DynamicDialogComponent.prototype.close = function () { this.visible = false; }; DynamicDialogComponent.prototype.onMaskClick = function () { if (this.config.dismissableMask) { this.close(); } }; DynamicDialogComponent.prototype.bindGlobalListeners = function () { if (this.config.closeOnEscape !== false && this.config.closable !== false) { this.bindDocumentEscapeListener(); } }; DynamicDialogComponent.prototype.unbindGlobalListeners = function () { this.unbindDocumentEscapeListener(); }; DynamicDialogComponent.prototype.bindDocumentEscapeListener = function () { var _this = this; this.documentEscapeListener = this.renderer.listen('document', 'keydown', function (event) { if (event.which == 27) { if (parseInt(_this.container.style.zIndex) == domhandler_1.DomHandler.zindex) { _this.close(); } } }); }; DynamicDialogComponent.prototype.unbindDocumentEscapeListener = function () { if (this.documentEscapeListener) { this.documentEscapeListener(); this.documentEscapeListener = null; } }; DynamicDialogComponent.prototype.ngOnDestroy = function () { this.onContainerDestroy(); if (this.componentRef) { this.componentRef.destroy(); } }; __decorate([ core_1.ViewChild(dynamicdialogcontent_1.DynamicDialogContent), __metadata("design:type", dynamicdialogcontent_1.DynamicDialogContent) ], DynamicDialogComponent.prototype, "insertionPoint", void 0); __decorate([ core_1.ViewChild('mask'), __metadata("design:type", core_1.ElementRef) ], DynamicDialogComponent.prototype, "maskViewChild", void 0); DynamicDialogComponent = __decorate([ core_1.Component({ selector: 'p-dynamicDialog', template: "\n\t\t
\n\t\t
\n
\n {{config.header}}\n \n \n \n
\n
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t", animations: [ animations_1.trigger('animation', [ animations_1.state('void', animations_1.style({ transform: 'translateX(-50%) translateY(-50%) scale(0.7)', opacity: 0 })), animations_1.state('visible', animations_1.style({ transform: 'translateX(-50%) translateY(-50%) scale(1)', opacity: 1 })), animations_1.transition('* => *', animations_1.animate('{{transitionParams}}')) ]) ] }), __metadata("design:paramtypes", [core_1.ComponentFactoryResolver, core_1.ChangeDetectorRef, core_1.Renderer2, dynamicdialog_config_1.DynamicDialogConfig, dynamicdialog_ref_1.DynamicDialogRef, core_1.NgZone]) ], DynamicDialogComponent); return DynamicDialogComponent; }()); exports.DynamicDialogComponent = DynamicDialogComponent; var DynamicDialogModule = /** @class */ (function () { function DynamicDialogModule() { } DynamicDialogModule = __decorate([ core_1.NgModule({ imports: [common_1.CommonModule], declarations: [DynamicDialogComponent, dynamicdialogcontent_1.DynamicDialogContent], entryComponents: [DynamicDialogComponent] }) ], DynamicDialogModule); return DynamicDialogModule; }()); exports.DynamicDialogModule = DynamicDialogModule; //# sourceMappingURL=dynamicdialog.js.map