import { Component, EventEmitter, Input, Output } from '@angular/core'; @Component({ selector: 'app-set-a-password', templateUrl: './set-a-password.component.html', styleUrls: ['./set-a-password.component.scss'] }) export class SetAPasswordComponent { @Input() pathTitle = ['การจัดการข้อมูลองค์กร', 'ตั้งค่าผู้ใช้งาน', 'สร้างรหัสผู้ใช้งาน'] @Output() sendPathTitle: EventEmitter<string[]> = new EventEmitter<string[]>(); activeTab: string = 'tab1'; // กำหนด tab เริ่มต้น // ฟังก์ชันในการเปลี่ยนแท็บ changeTab(tab: { id: string, text: string }) { this.sendPathTitle.emit(['การจัดการข้อมูลองค์กร', 'ตั้งค่าผู้ใช้งาน', tab.text]) this.activeTab = tab.id; } modalOptions: { [nameModal: string]: { // ชื่อตรวจสอบการเปิดปิด isModalOpen: boolean; // เปิด/ปิด modalSize: string; // ขนาดของ Modal (s,m,l,vw10-vw100 ) backdropClose: boolean; // (คลิก Backdrop แล้ว true ปิด false ไม่ปิด ) } } = { "add": { isModalOpen: false, modalSize: 'm', backdropClose: true, }, "edit": { isModalOpen: false, modalSize: 'm', backdropClose: true, } } openModal(name: string, size: string, closeOnBackdrop?: boolean) { this.modalOptions[name].modalSize = size; this.modalOptions[name].backdropClose = closeOnBackdrop || false; this.modalOptions[name].isModalOpen = true; document.body.style.overflow = 'hidden'; // ล็อก Scroll } closeModal(name: string) { this.modalOptions[name].isModalOpen = false; // ตรวจสอบว่ามี Modal อื่นเปิดอยู่หรือไม่ if (!this.isAnyModalOpen()) { document.body.style.overflow = ''; // คืนค่าการ Scroll เฉพาะเมื่อ Modal ทั้งหมดปิดแล้ว } } isAnyModalOpen(): boolean { // Logic ตรวจสอบว่า Modal อื่นยังเปิดอยู่หรือไม่ return Object.values(this.modalOptions).some(modal => modal.isModalOpen); // หากไม่มี Modal อื่นเปิด } }