{"version":3,"file":"deja-js-component-popup.mjs","sources":["../../../../projects/deja-js/component/popup/model/popup-action.model.ts","../../../../projects/deja-js/component/popup/model/popup-base.class.ts","../../../../projects/deja-js/component/popup/component/popup-content/popup-content.component.ts","../../../../projects/deja-js/component/popup/component/popup-content/popup-content.component.html","../../../../projects/deja-js/component/popup/component/popup-toolbar/popup-toolbar.component.ts","../../../../projects/deja-js/component/popup/component/popup-toolbar/popup-toolbar.component.html","../../../../projects/deja-js/component/popup/model/popup-config.model.ts","../../../../projects/deja-js/component/popup/component/popup/popup.component.ts","../../../../projects/deja-js/component/popup/component/popup/popup.component.html","../../../../projects/deja-js/component/popup/component/popup-actions/popup-actions.component.ts","../../../../projects/deja-js/component/popup/component/popup-actions/popup-actions.component.html","../../../../projects/deja-js/component/popup/component/popup-advanced/popup-advanced.component.ts","../../../../projects/deja-js/component/popup/component/popup-advanced/popup-advanced.component.html","../../../../projects/deja-js/component/popup/component/popup-box/popup-box.component.ts","../../../../projects/deja-js/component/popup/component/popup-box/popup-box.component.html","../../../../projects/deja-js/component/popup/model/popup-response.model.ts","../../../../projects/deja-js/component/popup/service/popup.service.ts","../../../../projects/deja-js/component/popup/component/popup-tray/popup-tray.component.ts","../../../../projects/deja-js/component/popup/component/popup-tray/popup-tray.component.html","../../../../projects/deja-js/component/popup/index.ts","../../../../projects/deja-js/component/popup/deja-js-component-popup.ts"],"sourcesContent":["/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { Portal } from '@angular/cdk/portal';\n\nexport class DejaPopupAction {\n    public refreshDrawer = true;\n    public isFinalAction = false;\n    public panelClass?: string;\n    public data?: unknown;\n    public icon?: string;\n    public label?: string;\n    public portal?: Portal<unknown>;\n\n    public constructor(\n        public name: string,\n        public target?: string\n    ) {\n        if (!this.icon) {\n            this.icon = name;\n        }\n        if (!this.label) {\n            this.label = name;\n        }\n    }\n}\n\nexport class DejaPopupButton extends DejaPopupAction {\n    public constructor(\n        public name: string,\n        public label?: string,\n        public icon?: string,\n        public isFinalAction = true\n    ) {\n        super(name);\n    }\n}\n\nexport class DejaPopupCustomAction extends DejaPopupAction {\n    public constructor(\n        public portal?: Portal<unknown>\n    ) {\n        super(undefined);\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { ComponentPortal, Portal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, Injector, OnInit, Renderer2 } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Destroy } from '@deja-js/component/core';\nimport { filter, Subscription, take, takeUntil, tap } from 'rxjs';\n\nimport { DejaPopupAction } from './popup-action.model';\nimport { DejaPopupConfig } from './popup-config.model';\n\n@Directive()\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport abstract class DejaPopupBase extends Destroy implements OnInit {\n\n    public actions: DejaPopupAction[];\n    public actionSelected: DejaPopupAction | string;\n    public isMinified = false;\n    public isFullscreen = false;\n    public dialogRef: MatDialogRef<DejaPopupBase>;\n    public config: DejaPopupConfig<unknown>;\n    public actionsPortal: Portal<unknown>;\n    protected injector: Injector;\n    protected renderer?: Renderer2;\n    protected elRef?: ElementRef;\n    protected unlisten?: () => void;\n\n    private aSub: Subscription[];\n\n    public ngOnInit(): void {\n        this.aSub = [];\n        this.dialogRef.beforeClosed().pipe(\n            take(1),\n            tap(() => {\n                if (this.unlisten) {\n                    this.unlisten();\n                }\n\n                this.destroy();\n\n                if (this.config.dejaPopupCom$) {\n                    const action = new DejaPopupAction('dialog-close', 'popup-tray');\n                    this.config.dejaPopupCom$.next(action);\n                }\n            }),\n            takeUntil(this.destroyed$)\n        ).subscribe();\n\n        if (this.config.actionComponentRef) {\n            this.actionsPortal = new ComponentPortal(this.config.actionComponentRef, undefined, this.injector);\n        }\n\n        if (this.config.dejaPopupCom$) {\n            this.aSub.push(\n                this.config.dejaPopupCom$.pipe(\n                    filter(a => !!a?.target && a.target === this.config.id),\n                    tap(a => this.doAction(a)),\n                    tap(action => {\n                        this.actionSelected = action;\n                        if (action.isFinalAction) {\n                            this.dialogRef.close(action);\n                        }\n                    }),\n                    takeUntil(this.destroyed$)\n                ).subscribe()\n            );\n        }\n    }\n\n    public dispatchAction(action: DejaPopupAction): boolean {\n        if (!action) {\n            return false;\n        }\n        this.config?.dejaPopupCom$?.next(action);\n        return undefined;\n    }\n\n    protected destroy(): void {\n        this.aSub.forEach(s => s.unsubscribe());\n    }\n\n    public abstract doAction(action: DejaPopupAction): void;\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { Component, Input } from '@angular/core';\n\nimport { DejaPopupConfig } from '../../model/popup-config.model';\n\n@Component({\n    selector: 'deja-popup-content',\n    templateUrl: './popup-content.component.html',\n    styleUrls: ['./popup-content.component.scss']\n})\nexport class DejaPopupContentComponent {\n\n    public content: string[];\n\n    @Input()\n    public set config(value: DejaPopupConfig<unknown>) {\n        if (!value.content) {\n            this.content = [];\n        } else if (typeof value.content === 'string') {\n            this.content = [value.content];\n        } else {\n            this.content = value.content;\n        }\n    }\n}\n","<ng-container *ngIf=\"content.length\">\n    <div *ngFor=\"let html of content\" [innerHTML]=\"html\"></div>\n</ng-container>","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { DejaPopupAction } from '../../model/popup-action.model';\nimport { DejaPopupConfig, DialogToolbarColor, DialogToolbarType } from '../../model/popup-config.model';\n\n@Component({\n    selector: 'deja-popup-toolbar',\n    templateUrl: './popup-toolbar.component.html',\n    styleUrls: ['./popup-toolbar.component.scss']\n})\nexport class DejaPopupToolbarComponent {\n    @Output() public readonly actionSelected = new EventEmitter<DejaPopupAction>();\n\n    @Input()\n    public set config(conf: DejaPopupConfig<unknown>) {\n        this.color = conf.toolbarColor;\n        this.title = conf.title;\n        this.iconName = conf.toolbarIconName;\n        this.type = conf.toolbarType;\n        this.actions = conf.toolbarActions;\n        this.dialogId = conf.id;\n        this.isFullScreen = conf.fullscreen;\n\n        if (!conf.fullscreen) {\n            this.defaultActions.unshift(this.buttonFullscreen);\n        } else if (conf.buttonFullscreenExit ?? true) {\n            this.defaultActions.unshift(this.buttonFullscreenExit);\n        }\n\n        if (!conf.hasBackdrop) {\n            this.defaultActions.unshift(this.buttonMinimize);\n        }\n    }\n\n    public defaultActions: DejaPopupAction[];\n\n    public color: DialogToolbarColor;\n    public title: string;\n    public iconName: string;\n    public type: DialogToolbarType;\n    public actions: DejaPopupAction[];\n    private dialogId: string;\n    private isFullScreen: boolean;\n\n    private buttonClose = {\n        name: 'toolbar-close',\n        icon: 'close',\n        label: 'Close'\n    } as DejaPopupAction;\n\n    private buttonFullscreen = {\n        name: 'toolbar-fullscreen',\n        icon: 'fullscreen',\n        label: 'Fullscreen'\n    } as DejaPopupAction;\n\n    private buttonFullscreenExit = {\n        name: 'toolbar-fullscreen-exit',\n        icon: 'fullscreen_exit',\n        label: 'Exit fullscreen'\n    } as DejaPopupAction;\n\n    private buttonMinimize = {\n        name: 'toolbar-minify',\n        icon: 'remove',\n        label: 'Dock'\n    } as DejaPopupAction;\n\n    public constructor() {\n        this.defaultActions = [this.buttonClose];\n    }\n\n    public doEmit(action: DejaPopupAction, event?: Event): void {\n        if (action.name === this.buttonFullscreen.name || action.name === this.buttonFullscreenExit.name) {\n            this.toggleFullScreenButton();\n        }\n        action.target = this.dialogId;\n        this.actionSelected.emit(action);\n        if (event) {\n            event.stopPropagation();\n            event.preventDefault();\n        }\n    }\n\n    public toggleFullScreenButton(): boolean {\n        this.isFullScreen = !this.isFullScreen;\n        let formerButton: DejaPopupAction;\n        let newButton;\n        if (this.isFullScreen) {\n            formerButton = this.buttonFullscreen;\n            newButton = this.buttonFullscreenExit;\n        } else {\n            formerButton = this.buttonFullscreenExit;\n            newButton = this.buttonFullscreen;\n        }\n        const idx = this.defaultActions.findIndex((a: DejaPopupAction) => a.name === formerButton.name);\n        if (idx === -1) {\n            return false;\n        }\n        this.defaultActions.splice(idx, 1, newButton);\n        return undefined;\n    }\n}\n","<div tabindex=\"0\"></div>\n\n<mat-toolbar *ngIf=\"!type || type==='base'\" [color]=\"color\" class=\"deja-popup-toolbar\">\n    <mat-icon *ngIf=\"iconName\">{{ iconName }}</mat-icon>\n    <span>{{ title }}</span>\n</mat-toolbar>\n\n<mat-toolbar *ngIf=\"type && type==='window'\" [color]=\"color\" class=\"deja-popup-toolbar-mini\">\n    <span class=\"deja-popup-toolbar-spacer deja-popup-toolbar-content\">\n        <mat-icon *ngIf=\"iconName\">{{ iconName }}</mat-icon>\n        <span>{{ title }}</span>\n    </span>\n\n    <span class=\"deja-popup-toolbar-actions deja-popup-toolbar-content\">\n        <ng-container *ngFor=\"let action of actions\">\n            <button *ngIf=\"!action.portal; else portalTpl\" type=\"button\" mat-icon-button (click)=\"doEmit(action, $event)\">\n                <mat-icon aria-label=\"action.name\" [matTooltip]=\"action.label\">{{ action.icon }}</mat-icon>\n            </button>\n            <ng-template #portalTpl>\n                <ng-template [cdkPortalOutlet]=\"action.portal\"></ng-template>\n            </ng-template>\n        </ng-container>\n    </span>\n\n    <span class=\"deja-popup-toolbar-actions deja-popup-toolbar-content\">\n        <ng-container *ngFor=\"let action of defaultActions\">\n            <button type=\"button\" mat-icon-button (click)=\"doEmit(action, $event)\">\n                <mat-icon aria-label=\"action.name\">{{ action.icon }}</mat-icon>\n            </button>\n        </ng-container>\n    </span>\n</mat-toolbar>\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { ComponentType } from '@angular/cdk/portal';\nimport { TemplateRef } from '@angular/core';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { SafeResourceUrl } from '@angular/platform-browser';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DejaPopupAction } from './popup-action.model';\n\nexport class DejaPopupConfig<D> extends MatDialogConfig<D> {\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    public static dialogCount = 0;\n\n    public readonly positionStart = { top: 100, left: 100 };\n    public readonly dimensionDefault = { width: '60vw', height: '65vh' };\n\n    public dejaPopupCom$?: BehaviorSubject<DejaPopupAction>;\n\n    public actionComponentRef: ComponentType<unknown>;\n    public contentComponentRef: ComponentType<unknown>;\n    public contentTemplate: DejaPopupContentTemplate<unknown>;\n    public actions: DejaPopupAction[];\n    public autoFocus = false;\n    public autoposition?: boolean;\n    public content?: string | string[];\n    public data?: D;\n    public dialogPanelId: string;\n    public fullscreen = false;\n    public availableInTray = true;\n    public maxWidth = '100vw';\n    public maxHeight = '100vh';\n    public padding?: boolean;\n    public shareActions = true;\n    public title?: string;\n    public toolbarActions?: DejaPopupAction[];\n    public toolbarColor?: DialogToolbarColor = 'primary';\n    public toolbarIconName?: string;\n    public toolbarType?: DialogToolbarType;\n    public url?: string | SafeResourceUrl;\n    public buttonFullscreenExit?: boolean;\n\n    public constructor() {\n        super();\n    }\n\n    public ensureDimension(): void {\n        if (!this.width) {\n            this.setDefaultWidth();\n        }\n        if (!this.height) {\n            this.setDefaultHeight();\n        }\n    }\n\n    public setDefaultWidth(): void {\n        this.width = this.dimensionDefault.width;\n    }\n\n    public setDefaultHeight(): void {\n        this.height = this.dimensionDefault.height;\n    }\n\n    public getDefaultPosition(): { top: string; left: string } {\n        const shift = (10 * DejaPopupConfig.dialogCount) - (100 * Math.ceil(DejaPopupConfig.dialogCount / 10));\n        return {\n            top: `${(this.positionStart.top + shift)}px`,\n            left: `${(this.positionStart.left + shift)}px`\n        };\n    }\n\n    public getMatDialogConfig(): MatDialogConfig {\n        this.createIds();\n\n        if (this.autoposition) {\n            this.ensurePosition();\n        }\n        if (!this.title) {\n            this.title = `Popup ${DejaPopupConfig.dialogCount}`;\n        }\n\n        const config: MatDialogConfig<DejaPopupConfig<D>> = new MatDialogConfig();\n\n        config.ariaDescribedBy = this.ariaDescribedBy;\n        config.backdropClass = this.backdropClass;\n        config.direction = this.direction;\n        config.disableClose = this.disableClose;\n        config.hasBackdrop = this.hasBackdrop;\n        config.height = this.height;\n        config.id = this.id;\n        config.maxHeight = this.maxHeight;\n        config.maxWidth = this.maxWidth;\n        config.minHeight = this.minHeight;\n        config.minWidth = this.minWidth;\n        config.panelClass = this.panelClass;\n        config.position = this.position;\n        config.role = this.role;\n        config.viewContainerRef = this.viewContainerRef;\n        config.width = this.width;\n\n        config.data = this;\n        return config;\n    }\n\n    public addPanelClass(panelClass: string): void {\n        if (!this.panelClass) {\n            this.panelClass = [panelClass];\n        } else if (Array.isArray(this.panelClass)) {\n            this.panelClass.push(panelClass);\n        } else {\n            this.panelClass = [panelClass, this.panelClass];\n        }\n    }\n\n    public hasContent(): boolean {\n        return !!this.content && this.content.length > 0;\n    }\n\n    public hasActions(): boolean {\n        return !!this.actions && !!this.actionComponentRef;\n    }\n\n    public ensurePosition(): boolean {\n        if (!this.position) {\n            this.position = this.getDefaultPosition();\n            return true;\n        }\n\n        if (!this.position.top && !this.position.bottom) {\n            this.position.top = `${(this.positionStart.top)}px`;\n        }\n\n        if (!this.position.left && !this.position.right) {\n            this.position.left = `${(this.positionStart.left)}px`;\n        }\n\n        return undefined;\n    }\n\n    private createIds(): void {\n        // Generate an ID if null or empty\n        if (!this.id) {\n            this.id = `deja-popup-${++DejaPopupConfig.dialogCount}`;\n        }\n        const className = `deja-popup-pane-${DejaPopupConfig.dialogCount}`;\n        this.addPanelClass(className);\n        this.dialogPanelId = `.${className}`;\n    }\n}\n\nexport type DialogToolbarType = 'base' | 'window';\nexport type DialogToolbarColor = null | 'primary' | 'accent' | 'warn' | 'danger';\nexport interface DejaPopupContentTemplate<T> {\n    templateRef: TemplateRef<T>;\n    templateContext?: unknown;\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { Component, Inject, Injector, ViewEncapsulation } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { DejaPopupAction } from '../../model/popup-action.model';\nimport { DejaPopupBase } from '../../model/popup-base.class';\nimport { DejaPopupConfig } from '../../model/popup-config.model';\n\n@Component({\n    encapsulation: ViewEncapsulation.None,\n    selector: 'deja-popup',\n    styleUrls: ['./popup.component.scss'],\n    templateUrl: './popup.component.html'\n})\nexport class DejaPopupComponent extends DejaPopupBase {\n\n    public isMinified = false;\n    public isFullscreen = false;\n\n    public constructor(\n        public dialogRef: MatDialogRef<DejaPopupBase>,\n        @Inject(MAT_DIALOG_DATA) public config: DejaPopupConfig<unknown>,\n        protected injector: Injector\n    ) {\n        super();\n    }\n\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    public doAction(_action: DejaPopupAction): void { }\n\n}\n","<deja-popup-toolbar *ngIf=\"config && config.title\" [config]=\"config\" (actionSelected)=\"dispatchAction($event)\">\n</deja-popup-toolbar>\n\n<div mat-dialog-content>\n    <deja-popup-content *ngIf=\"config?.hasContent()\" [config]=\"config\">\n    </deja-popup-content>\n</div>\n\n<div mat-dialog-actions *ngIf=\"config.hasActions()\">\n    <div [cdkPortalOutlet]=\"actionsPortal\"></div>\n</div>","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { DejaPopupAction } from '../../model/popup-action.model';\nimport { DejaPopupConfig } from '../../model/popup-config.model';\n\n@Component({\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    selector: 'deja-popup-actions',\n    templateUrl: './popup-actions.component.html',\n    styleUrls: ['./popup-actions.component.scss']\n})\nexport class DejaPopupActionsComponent implements OnInit {\n\n    public buttons: DejaPopupAction[];\n    public constructor(@Inject(MAT_DIALOG_DATA) public config: DejaPopupConfig<unknown>) { }\n\n    public ngOnInit(): void {\n        if (this.config.actions.length) {\n            this.buttons = this.config.actions;\n        }\n    }\n\n    public emit(action: DejaPopupAction): void {\n        if (this.config.dejaPopupCom$) {\n            action.target = this.config.id;\n            this.config.dejaPopupCom$.next(action);\n        }\n    }\n\n}\n","<div class=\"deja-popup-spacer\">&nbsp;</div>\n<ng-container *ngFor=\"let but of buttons\">\n\n    <button type=\"button\" *ngIf=\"!but.label\" mat-icon-button (click)=\"emit(but)\">\n        <mat-icon *ngIf=\"but.icon\" color=\"primary\" role=\"img\" aria-hidden=\"true\">{{but.icon}}</mat-icon>\n    </button>\n\n    <button type=\"button\" *ngIf=\"but.label\" mat-raised-button color=\"primary\" [name]=\"but.name\" (click)=\"emit(but)\">\n        <mat-icon *ngIf=\"but.icon\" role=\"img\" aria-hidden=\"true\">{{but.icon}}</mat-icon>{{but.label}}\n    </button>\n\n</ng-container>","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { CdkDragEnd, Point } from '@angular/cdk/drag-drop';\nimport { ComponentPortal, Portal } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, ElementRef, Inject, Injector, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { takeUntil, timer } from 'rxjs';\n\nimport { DejaPopupAction } from '../../model/popup-action.model';\nimport { DejaPopupBase } from '../../model/popup-base.class';\nimport { DejaPopupConfig } from '../../model/popup-config.model';\n\n@Component({\n    encapsulation: ViewEncapsulation.None,\n    selector: 'deja-popup-advanced',\n    styleUrls: ['./popup-advanced.component.scss'],\n    templateUrl: './popup-advanced.component.html'\n})\nexport class DejaPopupAdvancedComponent extends DejaPopupBase implements AfterViewInit, OnInit {\n    public dragstart = false;\n    public dragPosition = { x: 0, y: 0 } as Point;\n    public componentPortal: Portal<unknown>;\n\n    private left: number;\n    private top: number;\n\n    public constructor(\n        public dialogRef: MatDialogRef<DejaPopupBase>,\n        @Inject(MAT_DIALOG_DATA) public config: DejaPopupConfig<unknown>,\n        protected injector: Injector,\n        protected renderer: Renderer2,\n        protected elRef: ElementRef<HTMLElement>,\n        private domSanitizer: DomSanitizer\n    ) {\n        super();\n        if (config.url && typeof config.url === 'string') {\n            config.url = this.domSanitizer.bypassSecurityTrustResourceUrl(config.url);\n        }\n    }\n\n    public ngOnInit(): void {\n        super.ngOnInit();\n        if (this.config.contentComponentRef) {\n            this.componentPortal = new ComponentPortal(this.config.contentComponentRef, undefined, this.injector);\n        }\n    }\n\n    public ngAfterViewInit(): void {\n        this.left = this.elRef.nativeElement.offsetLeft;\n        this.top = this.elRef.nativeElement.offsetTop;\n\n        if (this.config.fullscreen) {\n            timer(0).pipe(\n                takeUntil(this.destroyed$)\n            ).subscribe(() => this.goFullScreen());\n        }\n    }\n\n    public doAction(action: DejaPopupAction): void {\n        this.actionSelected = action;\n        const actionName = typeof action === 'string' ? action : action.name;\n\n        switch (actionName) {\n            case 'toolbar-close':\n            case 'close':\n                action.isFinalAction = true;\n                break;\n\n            case 'toolbar-fullscreen':\n                this.goFullScreen();\n                break;\n\n            case 'toolbar-fullscreen-exit':\n                this.exitFullScreen();\n                break;\n\n            case 'toolbar-minify':\n                this.isMinified = true;\n                if (this.config.dejaPopupCom$) {\n                    const actionOut = new DejaPopupAction('do-minify', 'popup-tray');\n                    actionOut.panelClass = this.config.dialogPanelId;\n                    this.config.dejaPopupCom$.next(actionOut);\n                }\n                break;\n\n            default:\n        }\n    }\n\n    public goFullScreen(): void {\n        this.isFullscreen = true;\n        this.dragPosition = { x: 0, y: 0 };\n        this.dialogRef.updateSize('100vw', '100vh');\n    }\n\n    public exitFullScreen(): void {\n        this.isFullscreen = false;\n\n        const updatedWidth = (!this.config.width || this.config.width.length < 1) ? 'auto' : this.config.width;\n        const updatedHeight = (!this.config.height || this.config.height.length < 1) ? 'auto' : this.config.height;\n\n        this.dialogRef.updatePosition({ top: `${this.top}px`, left: `${this.left}px` });\n        this.dialogRef.updateSize(updatedWidth, updatedHeight);\n    }\n\n    public onCdkDragEnded(cdkDrag: CdkDragEnd): void {\n        this.dragstart = false;\n        this.top += cdkDrag.source.getFreeDragPosition().y;\n        this.left += cdkDrag.source.getFreeDragPosition().x;\n    }\n}\n","<div class=\"deja-popup-container\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragBoundary=\".cdk-overlay-container\" (cdkDragStarted)=\"dragstart = true\" (cdkDragEnded)=\"onCdkDragEnded($event)\" [cdkDragFreeDragPosition]=\"dragPosition\">\n    <div *ngIf=\"dragstart\" class=\"dialog-overlay\">&nbsp;</div>\n\n    <deja-popup-toolbar cdkDragHandle *ngIf=\"config && config.toolbarType\" [config]=\"config\" (actionSelected)=\"dispatchAction($event)\"></deja-popup-toolbar>\n\n    <div mat-dialog-content [ngClass]=\"{'frame-full': !config.padding, 'frame-padding': !!config.padding}\">\n\n        <deja-popup-content *ngIf=\"config?.hasContent()\" [config]=\"config\">\n        </deja-popup-content>\n\n        <div *ngIf=\"config?.url\" class=\"iframe-wrapper\">\n            <iframe [src]=\"config.url\"></iframe>\n        </div>\n\n        <ng-container *ngIf=\"config?.contentComponentRef\">\n            <div [cdkPortalOutlet]=\"componentPortal\"></div>\n        </ng-container>\n\n        <ng-container *ngIf=\"config?.contentTemplate\">\n            <ng-template [ngTemplateOutlet]=\"config?.contentTemplate.templateRef\" [ngTemplateOutletContext]=\"config?.contentTemplate.templateContext\"></ng-template>\n        </ng-container>\n    </div>\n\n    <div mat-dialog-actions *ngIf=\"config.hasActions()\">\n        <div [cdkPortalOutlet]=\"actionsPortal\"></div>\n    </div>\n</div>\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nimport { DejaPopupAction } from '../../model/popup-action.model';\nimport { DejaPopupBase } from '../../model/popup-base.class';\n\n@Component({\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    selector: 'deja-popup-box',\n    templateUrl: './popup-box.component.html',\n    styleUrls: ['./popup-box.component.scss']\n})\nexport class DejaPopupBoxComponent {\n    @Input() public dialog: MatDialogRef<DejaPopupBase>;\n    @Output() public readonly action = new EventEmitter();\n\n    public showActions = false;\n    public aActions: DejaPopupAction[];\n\n    public buttonClose = {\n        name: 'toolbar-close',\n        icon: 'close',\n        label: 'Close'\n    } as DejaPopupAction;\n\n    public buttonFullscreen = {\n        name: 'toolbar-fullscreen',\n        icon: 'fullscreen',\n        label: 'Fullscreen'\n    } as DejaPopupAction;\n\n    public buttonMinimize = {\n        name: 'toolbar-minify',\n        icon: 'remove',\n        label: 'Minify'\n    } as DejaPopupAction;\n\n    @HostListener('mouseenter')\n    public onMouseEnter(): void {\n        this.showActions = true;\n    }\n\n    @HostListener('mouseleave')\n    public onMouseLeave(): void {\n        this.showActions = false;\n    }\n\n    public doEmit(action: DejaPopupAction): void {\n        action.target = 'popup-tray';\n        this.dialog.componentInstance.isMinified = !this.dialog.componentInstance.isMinified;\n        action.panelClass = this.dialog.componentInstance.config.dialogPanelId;\n        this.action.emit(action);\n    }\n\n    public doClose(): void {\n        this.dialog.close();\n        const a = new DejaPopupAction('tray-refresh', 'popup-tray');\n        this.action.emit(a);\n    }\n}\n","<span class=\"deja-popup-box-title\">{{dialog.componentInstance.config.title}}</span>\n\n<span *ngIf=\"showActions\" class=\"deja-popup-box-actions\">\n    <span class=\"deja-popup-box-content\">\n        <button type=\"button\" *ngIf=\"!dialog.componentInstance.isMinified\" mat-icon-button (click)=\"doEmit(buttonMinimize)\" tabindex=\"0\">\n            <mat-icon aria-label=\"buttonMinimize.label\">{{buttonMinimize.icon}}</mat-icon>\n        </button>\n        <button type=\"button\" *ngIf=\"dialog.componentInstance.isMinified\" mat-icon-button (click)=\"doEmit(buttonFullscreen)\" tabindex=\"0\">\n            <mat-icon aria-label=\"buttonFullscreen.label\">{{buttonFullscreen.icon}}</mat-icon>\n        </button>\n        <button type=\"button\" mat-icon-button (click)=\"doClose()\" tabindex=\"0\">\n            <mat-icon aria-label=\"buttonClose.label\">{{buttonClose.icon}}</mat-icon>\n        </button>\n    </span>\n</span>","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { DejaPopupAction } from './popup-action.model';\nimport { DejaPopupBase } from './popup-base.class';\n\nexport class DejaPopupReponse {\n\n    public acceptedActionNames = ['check', 'ok', 'yes', 'confirm', 'save'];\n    public lastAction: DejaPopupAction | string;\n\n    public constructor(\n        public resp: unknown,\n        public componentInstance: DejaPopupBase\n    ) {\n        if (componentInstance?.actionSelected) {\n            this.lastAction = this.componentInstance.actionSelected;\n        } else {\n            this.lastAction = new DejaPopupAction('cancel');\n        }\n    }\n\n    public get accepted(): boolean {\n        return this.acceptedActionNames.some((nameOk: string) => typeof this.lastAction === 'string' ? nameOk === this.lastAction : nameOk === this.lastAction.name);\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\n\nimport { ComponentType } from '@angular/cdk/portal';\nimport { Injectable, TemplateRef } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\n\nimport { DejaPopupComponent } from '../component/popup/popup.component';\nimport { DejaPopupActionsComponent } from '../component/popup-actions/popup-actions.component';\nimport { DejaPopupAdvancedComponent } from '../component/popup-advanced/popup-advanced.component';\nimport { DejaPopupAction } from '../model/popup-action.model';\nimport { DejaPopupBase } from '../model/popup-base.class';\nimport { DejaPopupConfig } from '../model/popup-config.model';\nimport { DejaPopupReponse } from '../model/popup-response.model';\n\n@Injectable()\nexport class DejaPopupService extends MatDialog {\n    public defaultActionComponent: ComponentType<unknown> = DejaPopupActionsComponent;\n\n    public get openDialogs(): MatDialogRef<DejaPopupBase>[] {\n        return super.openDialogs;\n    }\n\n    private _dialogCom$: BehaviorSubject<DejaPopupAction>;\n    public get dejaPopupCom$(): BehaviorSubject<DejaPopupAction> {\n        if (!this._dialogCom$) {\n            this._dialogCom$ = new BehaviorSubject<DejaPopupAction>(null);\n        }\n        return this._dialogCom$;\n    }\n\n    /**\n     * Displays a modal dialog, with the given buttons.\n     * @param title\n     * @param message\n     * @param buttons types de DpiButton\n     * @param customComponent Custom Component that must extend DpiDialogComponent.\n     * @param data Données que l'on peux passer au Dialog\n     * @return La réponse du dialog sous forme d'un Observable\n     */\n    // eslint-disable-next-line rxjs/finnish\n    public openInline(title: string, content: string, buttons: DejaPopupAction[], config: DejaPopupConfig<unknown> = new DejaPopupConfig()): Observable<DejaPopupReponse> {\n\n        config.title = title;\n        config.content = content;\n        config.actions = buttons;\n\n        const dialogRef: MatDialogRef<DejaPopupBase> = this.open(DejaPopupComponent, config);\n\n        return dialogRef.afterClosed().pipe(\n            map(resp => new DejaPopupReponse(resp, dialogRef.componentInstance)));\n    }\n\n    // eslint-disable-next-line rxjs/finnish\n    public openCustom(customComponent: ComponentType<DejaPopupBase> | TemplateRef<DejaPopupBase>, config: DejaPopupConfig<unknown> = new DejaPopupConfig()): Observable<DejaPopupReponse> {\n\n        const dialogRef = this.open(customComponent, config);\n\n        return dialogRef.afterClosed().pipe(\n            map(resp => new DejaPopupReponse(resp, dialogRef.componentInstance))\n        );\n    }\n\n    // eslint-disable-next-line rxjs/finnish\n    public openUrl(url: string, config: DejaPopupConfig<unknown> = new DejaPopupConfig()): Observable<DejaPopupReponse> {\n\n        config.url = url;\n        config.ensureDimension();\n\n        const dialogRef: MatDialogRef<DejaPopupAdvancedComponent> = this.open(DejaPopupAdvancedComponent, config);\n\n        return dialogRef.afterClosed().pipe(\n            map(resp => new DejaPopupReponse(resp, dialogRef.componentInstance))\n        );\n    }\n\n    public openAdvanced(config: DejaPopupConfig<unknown> = new DejaPopupConfig()): MatDialogRef<DejaPopupAdvancedComponent> {\n\n        const dialogRef: MatDialogRef<DejaPopupAdvancedComponent> = this.open(DejaPopupAdvancedComponent, config);\n\n        return dialogRef;\n\n    }\n\n    public openAdvanced$(config: DejaPopupConfig<unknown> = new DejaPopupConfig()): Observable<DejaPopupReponse> {\n\n        const dialogRef = this.openAdvanced(config);\n        return dialogRef.afterClosed().pipe(\n            map(resp => new DejaPopupReponse(resp, dialogRef.componentInstance)));\n\n    }\n\n    // eslint-disable-next-line rxjs/finnish\n    public openPopUp(config: DejaPopupConfig<unknown> = new DejaPopupConfig()): Observable<DejaPopupReponse> {\n\n        config.hasBackdrop = false;\n        // config.isModal = false;\n\n        // config.ensureDimension();\n        if (config.autoposition === undefined) {\n            config.autoposition = true;\n        }\n\n        if (config.toolbarType === undefined) {\n            config.toolbarType = 'window';\n        }\n\n        return this.openAdvanced$(config);\n    }\n\n    /**\n      * Opens a modal dialog containing the given component.\n      * @param componentOrTemplateRef Type of the component to load into the dialog,\n      *     or a TemplateRef to instantiate as the dialog content.\n      * @param config Extra configuration options.\n      * @returns Reference to the newly-opened dialog.\n      */\n    public open<T, DataType = unknown, ResultType = unknown>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config: DejaPopupConfig<DataType>): MatDialogRef<T, ResultType> {\n\n        if (config.shareActions && !config.dejaPopupCom$) {\n            config.dejaPopupCom$ = this.dejaPopupCom$;\n        }\n\n        if (!config.actionComponentRef && this.defaultActionComponent) {\n            config.actionComponentRef = this.defaultActionComponent;\n        }\n\n        return super.open(componentOrTemplateRef, config.getMatDialogConfig());\n    }\n}\n","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { debounceTime, filter, from, map, Observable, switchMap } from 'rxjs';\n\nimport { DejaPopupAction } from '../../model/popup-action.model';\nimport { DejaPopupBase } from '../../model/popup-base.class';\nimport { DejaPopupService } from '../../service/popup.service';\n\n@Component({\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    selector: 'deja-popup-tray',\n    templateUrl: './popup-tray.component.html',\n    styleUrls: ['./popup-tray.component.scss']\n})\nexport class DejaPopupTrayComponent implements OnInit {\n\n    public dialogs$: Observable<MatDialogRef<DejaPopupBase>[]>;\n\n    public constructor(\n        public dialogSrv: DejaPopupService\n    ) { }\n\n    public ngOnInit(): void {\n\n        this.dialogs$ = from(this.dialogSrv.afterOpened).pipe(\n            switchMap(() => this.dialogSrv.dejaPopupCom$.pipe(\n                filter(action => !!action && action.target === 'popup-tray'),\n                map(action => {\n                    if (action.name === 'do-minify') {\n                        this.minify(action);\n                        action.refreshDrawer = false;\n                    }\n                    return action;\n                }),\n                filter(action => action.refreshDrawer))\n            ),\n            debounceTime(500),\n            map(() => this.dialogSrv.openDialogs.filter(dialog => dialog.componentInstance.config?.availableInTray))\n        );\n\n    }\n\n    public minify(action: DejaPopupAction): boolean {\n        const el = document.querySelector<HTMLElement>(action.panelClass);\n        if (!el) {\n            return false;\n        }\n        el.style.display = 'none';\n        this.refresh();\n        return undefined;\n    }\n\n    public maxify(action: DejaPopupAction): boolean {\n        const el = document.querySelector<HTMLElement>(action.panelClass);\n        if (!el) {\n            return false;\n        }\n        el.style.display = 'initial';\n        this.refresh();\n        return undefined;\n    }\n\n    public doAction(action: DejaPopupAction): boolean {\n        if (action.name === 'toolbar-minify') {\n            this.minify(action);\n        } else if (action.name === 'toolbar-fullscreen') {\n            this.maxify(action);\n        } else {\n            this.dialogSrv.dejaPopupCom$.next(action);\n        }\n        return undefined;\n    }\n\n    public closeAll(): void {\n        this.dialogSrv.closeAll();\n        this.refresh();\n    }\n\n    public minimizeAll(): void {\n        this.dialogSrv.openDialogs.forEach((d: MatDialogRef<DejaPopupBase>) => {\n            const a = new DejaPopupAction('minify-all', 'popup-tray');\n            d.componentInstance.isMinified = true;\n            a.panelClass = d.componentInstance.config.dialogPanelId;\n            this.minify(a);\n        });\n    }\n\n    public showAll(): void {\n        this.dialogSrv.openDialogs.forEach((d: MatDialogRef<DejaPopupBase>) => {\n            const a = new DejaPopupAction('show-all', 'popup-tray');\n            d.componentInstance.isMinified = false;\n            a.panelClass = d.componentInstance.config.dialogPanelId;\n            this.maxify(a);\n        });\n    }\n\n    private refresh(): void {\n        const a = new DejaPopupAction('tray-refresh', 'popup-tray');\n        this.dialogSrv.dejaPopupCom$.next(a);\n    }\n\n}\n","<span class=\"deja-popup-box-container\">\n    <ng-container *ngFor=\"let dialog of (dialogs$ | async)\">\n        <deja-popup-box [dialog]=\"dialog\" (action)=\"doAction($event)\">\n        </deja-popup-box>\n    </ng-container>\n</span>\n\n<button type=\"button\" mat-icon-button (click)=\"posYMenu.show($event)\">\n    <mat-icon>more_vert</mat-icon>\n</button>\n\n<deja-overlay #posYMenu>\n    <div class=\"deja-menu-content\">\n        <ul>\n            <li class=\"menu-item\" (click)=\"closeAll();posYMenu.close()\">\n                <mat-icon>close</mat-icon> Close all\n            </li>\n            <li class=\"menu-item\" (click)=\"showAll();posYMenu.close()\">\n                <mat-icon>fullscreen</mat-icon> Show all\n            </li>\n            <li class=\"menu-item\" (click)=\"minimizeAll();posYMenu.close()\">\n                <mat-icon>remove</mat-icon> Dock all\n            </li>\n        </ul>\n    </div>\n</deja-overlay>","/*\n *  @license\n *  Copyright Hôpitaux Universitaires de Genève. All Rights Reserved.\n *\n *  Use of this source code is governed by an Apache-2.0 license that can be\n *  found in the LICENSE file at https://github.com/DSI-HUG/dejajs-components/blob/master/LICENSE\n */\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DejaOverlayModule } from '@deja-js/component/overlay';\n\nimport { DejaPopupComponent } from './component/popup/popup.component';\nimport { DejaPopupActionsComponent } from './component/popup-actions/popup-actions.component';\nimport { DejaPopupAdvancedComponent } from './component/popup-advanced/popup-advanced.component';\nimport { DejaPopupBoxComponent } from './component/popup-box/popup-box.component';\nimport { DejaPopupContentComponent } from './component/popup-content/popup-content.component';\nimport { DejaPopupToolbarComponent } from './component/popup-toolbar/popup-toolbar.component';\nimport { DejaPopupTrayComponent } from './component/popup-tray/popup-tray.component';\nimport { DejaPopupService } from './service/popup.service';\n\n@NgModule({\n    declarations: [\n        DejaPopupActionsComponent,\n        DejaPopupAdvancedComponent,\n        DejaPopupBoxComponent,\n        DejaPopupComponent,\n        DejaPopupComponent,\n        DejaPopupContentComponent,\n        DejaPopupToolbarComponent,\n        DejaPopupTrayComponent\n    ],\n    exports: [\n        DejaPopupActionsComponent,\n        DejaPopupAdvancedComponent,\n        DejaPopupComponent,\n        DejaPopupComponent,\n        DejaPopupContentComponent,\n        DejaPopupToolbarComponent,\n        DejaPopupTrayComponent,\n        PortalModule\n    ],\n    imports: [\n        CommonModule,\n        DejaOverlayModule,\n        DragDropModule,\n        MatButtonModule,\n        MatDialogModule,\n        MatIconModule,\n        MatToolbarModule,\n        MatTooltipModule,\n        PortalModule\n    ],\n    providers: [DejaPopupService]\n})\nexport class DejaPopupModule { }\n\nexport * from './service/popup.service';\nexport * from './model/popup-action.model';\nexport * from './model/popup-base.class';\nexport * from './model/popup-config.model';\nexport * from './model/popup-response.model';\nexport * from './component/popup/popup.component';\nexport * from './component/popup-actions/popup-actions.component';\nexport * from './component/popup-advanced/popup-advanced.component';\nexport * from './component/popup-box/popup-box.component';\nexport * from './component/popup-content/popup-content.component';\nexport * from './component/popup-toolbar/popup-toolbar.component';\nexport * from './component/popup-tray/popup-tray.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i4.DejaPopupContentComponent","i5.DejaPopupToolbarComponent","i4","i5","i6.DejaPopupContentComponent","i7.DejaPopupToolbarComponent","i1.DejaPopupService","i6.DejaPopupBoxComponent"],"mappings":"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"}