(null);
+ overlayData$ = this.overlayDataSubject.asObservable();
+
+ constructor() {}
+
+ setOverlayData(data: any) {
+ this.overlayDataSubject.next(data);
+ }
+}
diff --git a/src/app/shared/components/overlay/overlay.component.html b/src/app/shared/components/overlay/overlay.component.html
new file mode 100644
index 0000000..b51b466
--- /dev/null
+++ b/src/app/shared/components/overlay/overlay.component.html
@@ -0,0 +1,3 @@
+
diff --git a/src/app/shared/components/overlay/overlay.component.scss b/src/app/shared/components/overlay/overlay.component.scss
new file mode 100644
index 0000000..e1a449c
--- /dev/null
+++ b/src/app/shared/components/overlay/overlay.component.scss
@@ -0,0 +1,21 @@
+.overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ backdrop-filter: blur(5px);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ z-index: 999;
+}
+
+.overlayContent {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: aqua;
+ height: auto;
+ width: auto;
+}
diff --git a/src/app/shared/components/overlay/overlay.component.spec.ts b/src/app/shared/components/overlay/overlay.component.spec.ts
new file mode 100644
index 0000000..796c7ff
--- /dev/null
+++ b/src/app/shared/components/overlay/overlay.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { OverlayComponent } from './overlay.component';
+
+describe('OverlayComponent', () => {
+ let component: OverlayComponent;
+ let fixture: ComponentFixture
;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [OverlayComponent]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(OverlayComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/shared/components/overlay/overlay.component.ts b/src/app/shared/components/overlay/overlay.component.ts
new file mode 100644
index 0000000..366441c
--- /dev/null
+++ b/src/app/shared/components/overlay/overlay.component.ts
@@ -0,0 +1,41 @@
+import {
+ Component,
+ EventEmitter,
+ HostListener,
+ Input,
+ OnInit,
+ Output,
+} from '@angular/core';
+import { OverlayService } from '../../../services/overlay.service';
+import { CommonModule } from '@angular/common';
+
+@Component({
+ selector: 'app-overlay',
+ standalone: true,
+ imports: [CommonModule],
+ templateUrl: './overlay.component.html',
+ styleUrl: './overlay.component.scss',
+})
+export class OverlayComponent implements OnInit {
+ overlayData: any;
+
+ constructor(private overlayService: OverlayService) {}
+
+ ngOnInit(): void {
+ this.overlayService.overlayData$.subscribe((data) => {
+ this.overlayData = data;
+ });
+ }
+
+ onCloseOverlay() {
+ this.overlayData = '';
+ }
+
+ @HostListener('document:click', ['$event'])
+ checkOpenContactEdit(event: MouseEvent) {
+ const targetElement = event.target as HTMLElement;
+ if (targetElement.closest('.overlay-content')) {
+ this.onCloseOverlay();
+ }
+ }
+}