{"version":3,"file":"pepperi-addons-ngx-lib-dialog.mjs","sources":["../../../projects/ngx-lib/dialog/dialog.component.ts","../../../projects/ngx-lib/dialog/dialog.component.html","../../../projects/ngx-lib/dialog/dialog.model.ts","../../../projects/ngx-lib/dialog/default-dialog.component.ts","../../../projects/ngx-lib/dialog/default-dialog.component.html","../../../projects/ngx-lib/dialog/dialog.service.ts","../../../projects/ngx-lib/dialog/dialog.module.ts","../../../projects/ngx-lib/dialog/public-api.ts","../../../projects/ngx-lib/dialog/pepperi-addons-ngx-lib-dialog.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n    selector: 'pep-dialog',\n    styleUrls: ['./dialog.component.scss', './dialog.component.theme.scss'],\n    templateUrl: './dialog.component.html',\n})\nexport class PepDialogComponent {\n    @Input() title: string;\n    @Input() showClose = false;\n    @Input() showHeader = true;\n    @Input() showFooter = true;\n\n    @Output() close: EventEmitter<any> = new EventEmitter<any>();\n\n    constructor() {\n        //\n    }\n    \n    closeDialog() {\n        this.close.emit(null);\n    }\n}\n","<div mat-dialog-title *ngIf=\"showHeader\" class=\"dialog-header-container\">\n    <span class=\"dialog-title\" *ngIf=\"title?.length\">\n        {{ title }}\n    </span>\n    <button mat-button *ngIf=\"showClose\" (click)=\"closeDialog()\" class=\"pep-button icon-button md weak dialog-close\">\n        <mat-icon>\n            <pep-icon name=\"system_close\">\n            </pep-icon>\n        </mat-icon>\n    </button>\n</div>\n<div mat-dialog-content>\n    <ng-content select=\"[pep-dialog-content]\"></ng-content>\n</div>\n<div mat-dialog-actions *ngIf=\"showFooter\" class=\"pep-border-top\">\n    <ng-content select=\"[pep-dialog-actions]\"></ng-content>\n</div>","export type PepDialogSizeType =\n    | 'inline'\n    | 'small'\n    | 'regular'\n    | 'large'\n    | 'full-screen';\n\nexport type PepDialogActionsType =\n    | 'close'\n    | 'cancel-continue'\n    | 'cancel-ok'\n    | 'cancel-delete'\n    | 'custom';\n\nexport class PepDialogActionButton {\n    title = '';\n    className = '';\n    callback: () => void;\n\n    constructor(title = '', className = '', callback: () => void = null) {\n        this.title = title;\n        this.className = className;\n        this.callback = callback;\n    }\n}\n\nexport class PepDialogData {\n    title?: string;\n    actionsType?: PepDialogActionsType;\n    content?: any;\n    showClose?: boolean;\n    showHeader?: boolean;\n    showFooter?: boolean;\n    actionButtons?: Array<PepDialogActionButton>;\n    \n    constructor(options: {\n        title?: string;\n        actionsType?: PepDialogActionsType;\n        content?: any;\n        contentDisabled?: boolean;\n        showClose?: boolean;\n        showHeader?: boolean;\n        showFooter?: boolean;\n        actionButtons?: Array<PepDialogActionButton>;\n    }) {\n        this.title = options?.title || '';\n        this.actionsType = options?.actionsType || 'close';\n        this.content = options?.content || '';\n        this.showClose = options?.showClose ?? false;\n        this.showHeader = options?.showHeader ?? true;\n        this.showFooter = options?.showFooter ?? true;\n        this.actionButtons = options?.actionButtons ?? null;\n    }\n}\n\nexport class PepDialogCustomizeData extends PepDialogData {\n    [key: string]: any;\n\n    constructor(options: any) {\n        super(options);\n\n        // Foreach rest properties save the rest[property] in this[property].\n        const { title, actionsType, content, contentDisabled, showClose, showHeader, showFooter, actionButtons, ...rest } = options || {};\n        Object.keys(rest).forEach((key) => {\n            // if (key in this) {\n                this[key] = rest[key];\n            // }\n        });\n    }\n}\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { PepDialogData, PepDialogActionButton } from './dialog.model';\n\n@Component({\n    templateUrl: './default-dialog.component.html',\n    styleUrls: ['./default-dialog.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class PepDefaultDialogComponent {\n    constructor(\n        @Inject(MAT_DIALOG_DATA) public data: PepDialogData,\n        public dialogRef: MatDialogRef<any>\n    ) {}\n\n    onActionButtonClicked(button: PepDialogActionButton): void {\n        this.dialogRef.close(true);\n        this.dialogRef.afterClosed().subscribe((isActionButtonClicked) => {\n            if (isActionButtonClicked && button?.callback) {\n                button.callback();\n            }\n        });\n    }\n\n    closeDialog(res) {\n        this.dialogRef.close(res);\n    }\n}\n","<pep-dialog [showClose]=\"data?.showClose\" [showHeader]=\"data?.showHeader\" [showFooter]=\"data?.showFooter\"\n    [title]=\"data?.title\" (close)=\"closeDialog($event)\">\n    <div pep-dialog-content [innerHtml]=\"data?.content | pepSafeHtml\"></div>\n    <div pep-dialog-actions class=\"pep-spacing-element-negative\">\n        <ng-container [ngSwitch]=\"data?.actionsType\">\n            <ng-container *ngSwitchCase=\"'close'\">\n                <button mat-button (click)=\"closeDialog(true)\" class=\"pep-spacing-element pep-button md weak\">\n                    {{ 'ACTIONS.CLOSE' | translate }}\n                </button>\n            </ng-container>\n            <ng-container *ngSwitchCase=\"'cancel-continue'\">\n                <button mat-button (click)=\"closeDialog(false)\" class=\"pep-spacing-element pep-button md weak\">\n                    {{ 'ACTIONS.CANCEL' | translate }}\n                </button>\n                <button mat-button (click)=\"closeDialog(true)\" class=\"pep-spacing-element pep-button md strong\">\n                    {{ 'ACTIONS.CONTINUE' | translate }}\n                </button>\n            </ng-container>\n            <ng-container *ngSwitchCase=\"'cancel-ok'\">\n                <button mat-button (click)=\"closeDialog(false)\" class=\"pep-spacing-element pep-button md weak\">\n                    {{ 'ACTIONS.CANCEL' | translate }}\n                </button>\n                <button mat-button (click)=\"closeDialog(true)\" class=\"pep-spacing-element pep-button md strong\">\n                    {{ 'ACTIONS.OK' | translate }}\n                </button>\n            </ng-container>\n            <ng-container *ngSwitchCase=\"'cancel-delete'\">\n                <button mat-button (click)=\"closeDialog(false)\" class=\"pep-spacing-element pep-button md weak\">\n                    {{ 'ACTIONS.CANCEL' | translate }}\n                </button>\n                <button mat-button (click)=\"closeDialog(true)\" class=\"pep-spacing-element pep-button md strong caution\">\n                    {{ 'ACTIONS.DELETE' | translate }}\n                </button>\n            </ng-container>\n            <ng-container *ngSwitchCase=\"'custom'\">\n                <ng-container *ngFor=\"let btn of data?.actionButtons\">\n                    <!-- [mat-dialog-close]=\"btn?.callback ? btn.callback : null\" -->\n                    <button mat-button (click)=\"onActionButtonClicked(btn)\" class=\"pep-spacing-element pep-button md\"\n                        [ngClass]=\"btn?.className != '' ? btn?.className : 'weak'\">\n                        {{ btn?.title }}\n                    </button>\n                </ng-container>\n            </ng-container>\n        </ng-container>\n    </div>\n</pep-dialog>","import { Injectable, TemplateRef } from '@angular/core';\nimport {\n    MatDialog,\n    MatDialogConfig,\n    MatDialogRef,\n} from '@angular/material/dialog';\nimport { PepLayoutService } from '@pepperi-addons/ngx-lib';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { PepDialogSizeType, PepDialogData, PepDialogCustomizeData } from './dialog.model';\nimport { PepDefaultDialogComponent } from './default-dialog.component';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class PepDialogService {\n    constructor(\n        private dialog: MatDialog,\n        private layoutService: PepLayoutService,\n        private overlay: Overlay\n    ) { }\n\n    private fixConfigIfNeeded(data: PepDialogData, config: MatDialogConfig) {\n        if (config.disableClose) {\n            // Create tmp object for comparing against the defaults.\n            const tmp = new PepDialogData({\n                showClose: data.showClose,\n                showHeader: data.showHeader,\n                showFooter: data.showFooter,\n                actionButtons: data.actionButtons,\n            });\n\n            const showCloseIsFalse = tmp.showClose === false;\n            const showHeaderIsFalse = tmp.showHeader === false;\n            const showFooterIsFalse = tmp.showFooter === false;\n            const noActions = tmp.actionButtons === null || tmp.actionButtons.length === 0;\n\n            if ((showFooterIsFalse && (showCloseIsFalse || showHeaderIsFalse)) || \n                (data.actionsType === 'custom' && noActions)\n            ) {\n                config.disableClose = false;\n            }\n        }\n    }\n\n    getDialogConfig(\n        options: {\n            disableClose?: boolean;\n            height?: string;\n            minWidth?: string;\n            maxWidth?: string;\n            maxHeight?: string;\n            panelClass?: string;\n        } = {},\n        size: PepDialogSizeType = 'regular'\n    ): MatDialogConfig {\n        const dialogConfig = new MatDialogConfig();\n\n        dialogConfig.autoFocus = false;\n        dialogConfig.direction = this.layoutService.isRtl() ? 'rtl' : 'ltr';\n        dialogConfig.disableClose = options.disableClose ?? true;\n        \n        dialogConfig.panelClass = ['pep-dialog'];\n        if (options.panelClass) {\n            dialogConfig.panelClass.push(options.panelClass);\n        }\n\n        if (size === 'inline') {\n            dialogConfig.height = options.height || 'auto';\n            dialogConfig.maxWidth = options.maxWidth || '100vw';\n            dialogConfig.maxHeight = options.maxHeight || '100vh';\n            dialogConfig.minWidth = options.minWidth || '300px';\n        }\n\n        dialogConfig.panelClass.push(size);\n\n        dialogConfig.scrollStrategy = this.overlay.scrollStrategies.noop();\n        // dialogConfig.scrollStrategy = this.overlay.scrollStrategies.block();\n\n        return dialogConfig;\n    }\n\n    openDefaultDialog(\n        data: PepDialogData,\n        config: MatDialogConfig = null\n    ): MatDialogRef<PepDefaultDialogComponent> {\n        if (!config) {\n            config = this.getDialogConfig();\n        }\n        this.fixConfigIfNeeded(data, config);\n\n        config.data = data;\n        const dialogRef = this.dialog.open(PepDefaultDialogComponent, config);\n        return dialogRef;\n    }\n\n    openDialog<T, D = any, R = any>(\n        componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n        data: any = {},\n        config: MatDialogConfig<D> = null\n    ): MatDialogRef<T, R> {\n        if (!config) {\n            config = this.getDialogConfig();\n        }\n\n        const tmpConfig = new PepDialogCustomizeData(data);\n        this.fixConfigIfNeeded(tmpConfig, config);\n\n        config.data = data;\n        const dialogRef = this.dialog.open(componentOrTemplateRef, config);\n        return dialogRef;\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n    PepIconModule,\n    PepIconRegistry,\n    pepIconSystemClose,\n} from '@pepperi-addons/ngx-lib/icon';\n\nimport { PepDefaultDialogComponent } from './default-dialog.component';\nimport { PepDialogComponent } from './dialog.component';\nimport { PepDialogService } from './dialog.service';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        // Material modules,\n        MatCommonModule,\n        MatButtonModule,\n        MatIconModule,\n        MatDialogModule,\n        // ngx-lib modules\n        PepNgxLibModule,\n        PepIconModule,\n    ],\n    exports: [PepDialogComponent],\n    declarations: [PepDefaultDialogComponent, PepDialogComponent],\n    entryComponents: [PepDefaultDialogComponent],\n    providers: [PepDialogService]\n})\nexport class PepDialogModule {\n    constructor(private pepIconRegistry: PepIconRegistry) {\n        this.pepIconRegistry.registerIcons([pepIconSystemClose]);\n    }\n}\n","/*\n * Public API Surface of ngx-lib/dialog\n */\nexport * from './dialog.module';\nexport * from './dialog.model';\nexport * from './dialog.component';\nexport * from './dialog.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i4","i5","i3","i4.PepDialogComponent"],"mappings":"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"}