{"version":3,"file":"primeng-dynamicdialog.umd.js","sources":["../../src/app/components/dynamicdialog/dynamicdialogcontent.ts","../../src/app/components/dynamicdialog/dynamicdialog-config.ts","../../src/app/components/dynamicdialog/dynamicdialog-ref.ts","../../src/app/components/dynamicdialog/dynamicdialog.ts","../../src/app/components/dynamicdialog/dynamicdialog-injector.ts","../../src/app/components/dynamicdialog/dialogservice.ts","../../src/app/components/dynamicdialog/primeng-dynamicdialog.ts"],"sourcesContent":["import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[pDynamicDialogContent]'\n})\nexport class DynamicDialogContent {\n  \n\tconstructor(public viewContainerRef: ViewContainerRef) {}\n\n}\n","export class DynamicDialogConfig {\r\n\tdata?: any;\r\n\theader?: string;\r\n\tfooter?: string;\r\n\twidth?: string;\r\n\theight?: string;\r\n\tcloseOnEscape?: boolean;\r\n\tbaseZIndex?: number;\r\n\tautoZIndex?: boolean;\r\n\tdismissableMask?: boolean;\r\n\trtl?: boolean;\r\n\tstyle?: any;\r\n\tcontentStyle?: any;\r\n\tstyleClass?: string;\r\n\ttransitionOptions?: string;\r\n\tclosable?: boolean;\r\n\tshowHeader?: boolean;\r\n\tmodal?: boolean;\r\n}\r\n","import { Observable, Subject } from 'rxjs';\r\n\r\nexport class DynamicDialogRef {\r\n\tconstructor() { }\r\n\r\n\tclose(result?: any) {\r\n\t\tthis._onClose.next(result);\r\n    }\r\n    \r\n    destroy() {\r\n\t\tthis._onDestroy.next();\r\n\t}\r\n\r\n\tprivate readonly _onClose = new Subject<any>();\r\n    onClose: Observable<any> = this._onClose.asObservable();\r\n\r\n    private readonly _onDestroy = new Subject<any>();\r\n\tonDestroy: Observable<any> = this._onDestroy.asObservable();\r\n}\r\n","import { Component, NgModule, Type, ComponentFactoryResolver, ViewChild, OnDestroy, ComponentRef, AfterViewInit, ChangeDetectorRef, Renderer2, NgZone, ElementRef, ChangeDetectionStrategy, ViewRef, ViewEncapsulation } from '@angular/core';\nimport { trigger,style,transition,animate,AnimationEvent, animation, useAnimation } from '@angular/animations';\nimport { DynamicDialogContent } from './dynamicdialogcontent';\nimport { DynamicDialogConfig } from './dynamicdialog-config';\nimport { CommonModule } from '@angular/common';\nimport { DomHandler } from 'primeng/dom';\nimport { DynamicDialogRef } from './dynamicdialog-ref';\n\nconst showAnimation = animation([\n    style({ transform: '{{transform}}', opacity: 0 }),\n    animate('{{transition}}', style({ transform: 'none', opacity: 1 }))\n]);\n\nconst hideAnimation = animation([\n    animate('{{transition}}', style({ transform: '{{transform}}', opacity: 0 }))\n]);\n\n@Component({\n\tselector: 'p-dynamicDialog',\n\ttemplate: `\n        <div #mask [ngClass]=\"{'p-dialog-mask':true, 'p-component-overlay p-dialog-mask-scrollblocker': config.modal !== false}\">\n            <div [ngClass]=\"{'p-dialog p-dynamic-dialog p-component':true, 'p-dialog-rtl': config.rtl}\" [ngStyle]=\"config.style\" [class]=\"config.styleClass\"\n                [@animation]=\"{value: 'visible', params: {transform: transformOptions, transition: config.transitionOptions || '150ms cubic-bezier(0, 0, 0.2, 1)'}}\"\n                (@animation.start)=\"onAnimationStart($event)\" (@animation.done)=\"onAnimationEnd($event)\" role=\"dialog\" *ngIf=\"visible\"\n                [style.width]=\"config.width\" [style.height]=\"config.height\">\n                <div class=\"p-dialog-header\" *ngIf=\"config.showHeader === false ? false: true\">\n                    <span class=\"p-dialog-title\">{{config.header}}</span>\n                    <div class=\"p-dialog-header-icons\">\n                        <button [ngClass]=\"'p-dialog-header-icon p-dialog-header-maximize p-link'\" type=\"button\" (click)=\"hide()\" (keydown.enter)=\"hide()\" *ngIf=\"config.closable !== false\">\n                            <span class=\"p-dialog-header-close-icon pi pi-times\"></span>\n                        </button>\n                    </div>\n                </div>\n                <div class=\"p-dialog-content\" [ngStyle]=\"config.contentStyle\">\n                    <ng-template pDynamicDialogContent></ng-template>\n                </div>\n                <div class=\"p-dialog-footer\" *ngIf=\"config.footer\">\n                    {{config.footer}}\n                </div>\n            </div>\n        </div>\n\t`,\n\tanimations: [\n        trigger('animation', [\n            transition('void => visible', [\n                useAnimation(showAnimation)\n            ]),\n            transition('visible => void', [\n                useAnimation(hideAnimation)\n            ])\n        ])\n    ],\n    changeDetection: ChangeDetectionStrategy.Default,\n    encapsulation: ViewEncapsulation.None,\n    styleUrls: ['../dialog/dialog.css']\n})\nexport class DynamicDialogComponent implements AfterViewInit, OnDestroy {\n\n\tvisible: boolean = true;\n\n\tcomponentRef: ComponentRef<any>;\n\n\tmask: HTMLDivElement;\n\n\t@ViewChild(DynamicDialogContent) insertionPoint: DynamicDialogContent;\n\n\t@ViewChild('mask') maskViewChild: ElementRef;\n\n\tchildComponentType: Type<any>;\n\n    container: HTMLDivElement;\n\n    wrapper: HTMLElement;\n\n    documentKeydownListener: any;\n\n    documentEscapeListener: Function;\n\n    maskClickListener: Function;\n\n    transformOptions: string = \"scale(0.7)\";\n\n\tconstructor(private componentFactoryResolver: ComponentFactoryResolver, private cd: ChangeDetectorRef, public renderer: Renderer2,\n\t\t\tpublic config: DynamicDialogConfig, private dialogRef: DynamicDialogRef, public zone: NgZone) { }\n\n\tngAfterViewInit() {\n\t\tthis.loadChildComponent(this.childComponentType);\n\t\tthis.cd.detectChanges();\n\t}\n\n\tloadChildComponent(componentType: Type<any>) {\n\t\tlet componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n\n\t\tlet viewContainerRef = this.insertionPoint.viewContainerRef;\n\t\tviewContainerRef.clear();\n\n\t\tthis.componentRef = viewContainerRef.createComponent(componentFactory);\n\t}\n\n\tmoveOnTop() {\n        if (this.config.autoZIndex !== false) {\n\t\t\tconst zIndex = (this.config.baseZIndex||0) + (++DomHandler.zindex);\n\t\t\tthis.container.style.zIndex = String(zIndex);\n\t\t\tthis.maskViewChild.nativeElement.style.zIndex = String(zIndex - 1);\n\t\t}\n    }\n\n\tonAnimationStart(event: AnimationEvent) {\n\t\tswitch(event.toState) {\n\t\t\tcase 'visible':\n                this.container = event.element;\n                this.wrapper = this.container.parentElement;\n\t\t\t\tthis.moveOnTop();\n                this.bindGlobalListeners();\n\n                if (this.config.modal !== false) {\n                    this.enableModality();\n                }\n                this.focus();\n\t\t\tbreak;\n\n\t\t\tcase 'void':\n\t\t\t\tthis.onContainerDestroy();\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tonAnimationEnd(event: AnimationEvent) {\n\t\tif (event.toState === 'void') {\n\t\t\tthis.dialogRef.destroy();\n\t\t}\n\t}\n\n\tonContainerDestroy() {\n\t\tthis.unbindGlobalListeners();\n\n        if (this.config.modal !== false) {\n            this.disableModality();\n        }\n        this.container = null;\n\t}\n\n\tclose() {\n        this.visible = false;\n        this.cd.markForCheck();\n\t}\n\n    hide() {\n        if (this.dialogRef) {\n            this.dialogRef.close();\n        }\n    }\n\n    enableModality() {\n        if (this.config.closable !== false && this.config.dismissableMask) {\n            this.maskClickListener = this.renderer.listen(this.wrapper, 'mousedown', (event: any) => {\n                if (this.wrapper && this.wrapper.isSameNode(event.target)) {\n                    this.hide();\n                }\n            });\n        }\n\n        if (this.config.modal !== false) {\n            DomHandler.addClass(document.body, 'p-overflow-hidden');\n        }\n    }\n\n    disableModality() {\n        if (this.wrapper) {\n            if (this.config.dismissableMask) {\n                this.unbindMaskClickListener();\n            }\n\n            if (this.config.modal !== false) {\n                DomHandler.removeClass(document.body, 'p-overflow-hidden');\n            }\n\n            if (!(this.cd as ViewRef).destroyed) {\n                this.cd.detectChanges();\n            }\n        }\n    }\n\n    onKeydown(event: KeyboardEvent) {\n        if (event.which === 9) {\n            event.preventDefault();\n\n            let focusableElements = DomHandler.getFocusableElements(this.container);\n\n            if (focusableElements && focusableElements.length > 0) {\n                if (!focusableElements[0].ownerDocument.activeElement) {\n                    focusableElements[0].focus();\n                }\n                else {\n                    let focusedIndex = focusableElements.indexOf(focusableElements[0].ownerDocument.activeElement);\n\n                    if (event.shiftKey) {\n                        if (focusedIndex == -1 || focusedIndex === 0)\n                            focusableElements[focusableElements.length - 1].focus();\n                        else\n                            focusableElements[focusedIndex - 1].focus();\n                    }\n                    else {\n                        if (focusedIndex == -1 || focusedIndex === (focusableElements.length - 1))\n                            focusableElements[0].focus();\n                        else\n                            focusableElements[focusedIndex + 1].focus();\n                    }\n                }\n            }\n        }\n    }\n\n    focus() {\n        let focusable = DomHandler.findSingle(this.container, '[autofocus]');\n        if (focusable) {\n            this.zone.runOutsideAngular(() => {\n                setTimeout(() => focusable.focus(), 5);\n            });\n        }\n    }\n\n\tbindGlobalListeners() {\n        this.bindDocumentKeydownListener();\n\n        if (this.config.closeOnEscape !== false && this.config.closable !== false) {\n            this.bindDocumentEscapeListener();\n        }\n    }\n\n    unbindGlobalListeners() {\n        this.unbindDocumentKeydownListener();\n        this.unbindDocumentEscapeListener();\n    }\n\n    bindDocumentKeydownListener() {\n        this.zone.runOutsideAngular(() => {\n            this.documentKeydownListener = this.onKeydown.bind(this);\n            window.document.addEventListener('keydown', this.documentKeydownListener);\n        });\n    }\n\n    unbindDocumentKeydownListener() {\n        if (this.documentKeydownListener) {\n            window.document.removeEventListener('keydown', this.documentKeydownListener);\n            this.documentKeydownListener = null;\n        }\n    }\n\n\tbindDocumentEscapeListener() {\n        const documentTarget: any = this.maskViewChild ? this.maskViewChild.nativeElement.ownerDocument : 'document';\n\n        this.documentEscapeListener = this.renderer.listen(documentTarget, 'keydown', (event) => {\n            if (event.which == 27) {\n                if (parseInt(this.container.style.zIndex) == (DomHandler.zindex + (this.config.baseZIndex ? this.config.baseZIndex : 0))) {\n\t\t\t\t\tthis.hide();\n\t\t\t\t}\n            }\n        });\n    }\n\n    unbindDocumentEscapeListener() {\n        if (this.documentEscapeListener) {\n            this.documentEscapeListener();\n            this.documentEscapeListener = null;\n        }\n    }\n\n    unbindMaskClickListener() {\n        if (this.maskClickListener) {\n            this.maskClickListener();\n            this.maskClickListener = null;\n        }\n    }\n\n\tngOnDestroy() {\n\t\tthis.onContainerDestroy();\n\n\t\tif (this.componentRef) {\n\t\t\tthis.componentRef.destroy();\n\t\t}\n\t}\n}\n\n@NgModule({\n\timports: [CommonModule],\n\tdeclarations: [DynamicDialogComponent, DynamicDialogContent],\n\tentryComponents: [DynamicDialogComponent]\n})\nexport class DynamicDialogModule { }\n","import { Injector, Type, InjectionToken, InjectFlags } from '@angular/core';\r\n\r\nexport class DynamicDialogInjector implements Injector {\r\n\t\r\n\tconstructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) { }\r\n\r\n\tget<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags): T;\r\n\tget(token: any, notFoundValue?: any);\r\n\tget(token: any, notFoundValue?: any, flags?: any) {\r\n\t\tconst value = this._additionalTokens.get(token);\r\n\r\n\t\tif (value) return value;\r\n\r\n\t\treturn this._parentInjector.get<any>(token, notFoundValue);\r\n\t}\r\n}\r\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, Type, EmbeddedViewRef, ComponentRef } from '@angular/core';\nimport { DynamicDialogComponent } from './dynamicdialog';\nimport { DynamicDialogInjector } from './dynamicdialog-injector';\nimport { DynamicDialogConfig } from './dynamicdialog-config';\nimport { DynamicDialogRef } from './dynamicdialog-ref';\n\n@Injectable()\nexport class DialogService {\n\n    dialogComponentRefMap: Map<DynamicDialogRef, ComponentRef<DynamicDialogComponent>> = new Map();\n\n    constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) {\n    }\n\n    public open(componentType: Type<any>, config: DynamicDialogConfig) {\n        const dialogRef = this.appendDialogComponentToBody(config);\n\n        this.dialogComponentRefMap.get(dialogRef).instance.childComponentType = componentType;\n\n        return dialogRef;\n    }\n\n    private appendDialogComponentToBody(config: DynamicDialogConfig) {\n        const map = new WeakMap();\n        map.set(DynamicDialogConfig, config);\n\n        const dialogRef = new DynamicDialogRef();\n        map.set(DynamicDialogRef, dialogRef);\n\n        const sub = dialogRef.onClose.subscribe(() => {\n            this.dialogComponentRefMap.get(dialogRef).instance.close();\n        });\n\n        const destroySub = dialogRef.onDestroy.subscribe(() => {\n            this.removeDialogComponentFromBody(dialogRef);\n            destroySub.unsubscribe();\n            sub.unsubscribe();\n        });\n\n        const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DynamicDialogComponent);\n        const componentRef = componentFactory.create(new DynamicDialogInjector(this.injector, map));\n\n        this.appRef.attachView(componentRef.hostView);\n\n        const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n        document.body.appendChild(domElem);\n\n        this.dialogComponentRefMap.set(dialogRef, componentRef);\n\n        return dialogRef;\n    }\n\n    private removeDialogComponentFromBody(dialogRef: DynamicDialogRef) {\n        if (!dialogRef || !this.dialogComponentRefMap.has(dialogRef)) {\n            return;\n        }\n\n        const dialogComponentRef = this.dialogComponentRefMap.get(dialogRef);\n        this.appRef.detachView(dialogComponentRef.hostView);\n        dialogComponentRef.destroy();\n        this.dialogComponentRefMap.delete(dialogRef);\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Directive","Subject","animation","style","animate","DomHandler","trigger","transition","useAnimation","Component","ChangeDetectionStrategy","ViewEncapsulation","ViewChild","CommonModule","NgModule","Injectable"],"mappings":"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"}