{"version":3,"file":"ipi-soft-ng-components-dialog.mjs","sources":["../../../../projects/ipi-soft/ng-components/dialog/src/dialog.component.ts","../../../../projects/ipi-soft/ng-components/dialog/src/dialog.component.html","../../../../projects/ipi-soft/ng-components/dialog/ipi-soft-ng-components-dialog.ts"],"sourcesContent":["import { Component, OnDestroy, ContentChild, TemplateRef, Input, Output, EventEmitter, ElementRef, ViewChild } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport { OverlayService } from '@ipi-soft/ng-components/services';\n\n@Component({\n  selector: 'ipi-dialog',\n  templateUrl: './dialog.component.html',\n  styleUrls: ['./dialog.component.css'],\n  imports: [\n    NgTemplateOutlet,\n  ],\n})\n\nexport class IpiDialogComponent implements OnDestroy {\n\n  constructor(\n    private elementRef: ElementRef,\n    private overlayService: OverlayService) {\n  }\n\n  @ContentChild('title') title?: TemplateRef<any>;\n  @ContentChild('description') description?: TemplateRef<any>;\n  @ContentChild('content') content?: TemplateRef<any>;\n  @ContentChild('actions') actions?: TemplateRef<any>;\n\n  @ViewChild('closeIcon') closeIconTemplate?: ElementRef;\n\n  @Input() closeIcon: boolean = false;\n\n  @Output() closeIconClick = new EventEmitter<void>();\n\n  public ngAfterViewInit(): void {\n    this.overlayService.appendToOverlay(this.elementRef.nativeElement, true);\n  }\n\n  public ngOnDestroy(): void {\n    this.overlayService.removeFromOverlay(this.elementRef.nativeElement);\n  }\n\n  public onCloseIconClick(): void {\n    this.closeIconClick.emit();\n  }\n\n  public handleKeydown(event: KeyboardEvent): void {\n    if (!(document.activeElement === this.closeIconTemplate?.nativeElement)) {\n      return;\n    }\n\n    if (event.key === 'Enter' || event.key === ' ') {\n      event.preventDefault();\n      this.closeIconClick.emit();\n    }\n  }\n\n}\n","<div class=\"backdrop\"></div>\n\n<div class=\"container\">\n    <div class=\"dialog\">\n        @if (closeIcon) {\n            <div #closeIcon tabindex=\"0\" class=\"close-icon\" (keydown)=\"handleKeydown($event)\" (click)=\"onCloseIconClick()\">\n                <svg width=\"20\" height=\"20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n                    <path d=\"M15 5 5 15M15 15 5 5\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n                </svg>\n            </div>\n        }\n\n        @if (title) {\n            <span class=\"title\">\n                <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n            </span>\n        }\n    \n        @if (description) {\n            <span class=\"description\">\n                <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\n            </span>\n        }\n    \n        @if (content) {\n            <div class=\"content\">\n                <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n            </div>\n        }\n    \n        @if (actions) {\n            <div class=\"actions\">\n                <ng-container [ngTemplateOutlet]=\"actions\"></ng-container>\n            </div>\n        }\n    </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}