{"version":3,"file":"fikoyt-shared-pano.component-hq5RrVhL.mjs","sources":["../../../projects/shared/src/lib/app/uygulamalar/hmi-pano/pano/pano.component.html","../../../projects/shared/src/lib/app/uygulamalar/hmi-pano/pano/pano.component.ts"],"sourcesContent":["
\r\n\r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, OnInit, OnDestroy, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { HmiKartOkuyucuComponent, KartOkumaOlayi, NfcDurum } from '@uygulamalar/hmi-pano/kart-okuyucu/kart-okuyucu.component';\r\nimport { HizliErisimComponent } from '@uygulamalar/hmi-pano/hizli-erisim/hizli-erisim.component';\r\nimport { BounceScrollDirective } from '@uygulamalar/hmi-pano/directives/bounce-scroll.directive';\r\nimport { KartWebSocketService } from '@uygulamalar/hmi-pano/kart-okuyucu/services/kart-websocket.service';\r\nimport { PdksDurumService } from '@uygulamalar/hmi-pano/services/pdks-durum.service';\r\nimport { PdksOfflineService } from '@uygulamalar/hmi-pano/services/pdks-offline.service';\r\nimport { PanoDurumService } from '@uygulamalar/hmi-pano/services/pano-durum.service';\r\nimport { AdminService } from '@uygulamalar/admin/services/admin.service';\r\nimport { FirmaService } from '@uygulamalar/firma-yonetim/services/firma.service';\r\nimport { AvatarService } from '@/src/app/servisler/avatar.service';\r\nimport { FikoYTKokBilesenComponent } from '@service/kok-bilesen/kok-bilesen.component';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { hmiAyarGetir } from '@uygulamalar/hmi-pano/config/hmi-parametre-setleri';\r\n\r\ninterface DonanımDurumu {\r\n nfc: boolean;\r\n bluetooth: boolean;\r\n seri: boolean;\r\n kamera: boolean;\r\n konum: boolean;\r\n titresim: boolean;\r\n yonSensoru: boolean;\r\n isikSensoru: boolean;\r\n ekranKilidi: boolean;\r\n batarya: { seviye: number; sarj: boolean; destekleniyor: boolean };\r\n ag: { cevrimici: boolean; tur: string; hiz: string };\r\n}\r\n\r\n@Component({\r\n selector: 'hmi-pano-pano',\r\n standalone: true,\r\n imports: [CommonModule, RouterModule, HmiKartOkuyucuComponent, HizliErisimComponent, BounceScrollDirective],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: './pano.component.html',\r\n styleUrl: './pano.component.less',\r\n})\r\nexport class HmiPanoPanoComponent extends FikoYTKokBilesenComponent implements OnInit, OnDestroy {\r\n get karanlikMod(): boolean { return document.body.classList.contains('hmi-karanlik'); }\r\n\r\n panoDurum = inject(PanoDurumService);\r\n\r\n // Kart durumu\r\n nfcDurum: 'bekliyor' | 'tanindi' | 'bilinmiyor' | 'giris-anim' | 'cikis-anim' = 'bekliyor';\r\n private _sonKartUid = '';\r\n _sonPersonel: any = null;\r\n private _baslangicZamani = Date.now();\r\n\r\n // Reklam slider\r\n reklamlar: any[] = [\r\n { ikon: '🚀', baslik: 'FikoYT Sistem v2.0', aciklama: 'Yapay zeka destekli üretim takibi, gerçek zamanlı analiz ve akıllı raporlama artık aktif!', badge: 'YENİ', cta: 'Keşfet →', bg: 'linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #0ea5e9 100%)' },\r\n { ikon: '🏆', baslik: 'Ayın Yıldızları', aciklama: 'En yüksek verimlilik skoru ile Mart ayının en iyileri belirleniyor. Sıralaman kaçıncı?', badge: 'ÖDÜL', cta: null, bg: 'linear-gradient(135deg, #312e81 0%, #7c3aed 50%, #c084fc 100%)' },\r\n { ikon: '⚡', baslik: 'Hedef: 10.000 Adet', aciklama: 'Bu ayki üretim hedefimize %74 ulaştık. Son sprint başladı — birlikte başaracağız!', badge: 'HEDEF', cta: null, bg: 'linear-gradient(135deg, #064e3b 0%, #059669 50%, #34d399 100%)' },\r\n { ikon: '🛡️', baslik: 'İş Güvenliği Haftası', aciklama: 'Kask, gözlük ve eldiven kullanımı zorunludur. 365 gün kazasız çalışma hedefindeyiz!', badge: 'ÖNEMLİ', cta: null, bg: 'linear-gradient(135deg, #7c2d12 0%, #ea580c 50%, #fb923c 100%)' },\r\n { ikon: '🎁', baslik: 'Çalışan Memnuniyeti', aciklama: 'Yemekhane menüsü yenilendi! Önerilerinizi HMI panelden iletebilirsiniz.', badge: 'DUYURU', cta: 'Görüş Bildir →', bg: 'linear-gradient(135deg, #831843 0%, #db2777 50%, #f472b6 100%)' },\r\n ];\r\n reklamIndex = 0;\r\n private _reklamTimer: any;\r\n\r\n kisiselTikla(aksiyon: string) {\r\n console.log('[HMI] kisisel tikla:', aksiyon);\r\n }\r\n\r\n // Donanim durumu\r\n donanim: DonanımDurumu = {\r\n nfc: false, bluetooth: false, seri: false, kamera: false,\r\n konum: false, titresim: false, yonSensoru: false, isikSensoru: false,\r\n ekranKilidi: false,\r\n batarya: { seviye: 100, sarj: true, destekleniyor: false },\r\n ag: { cevrimici: navigator.onLine, tur: 'bilinmiyor', hiz: '' },\r\n };\r\n\r\n private _wakeLock: any = null;\r\n private _nfcController: AbortController | null = null;\r\n private _lightSensor: any = null;\r\n private _destroySubs: (() => void)[] = [];\r\n private _kartSorguDevam = false;\r\n private _erkenCekildi = false;\r\n private _hizliTapTimer: any = null;\r\n private _bilinmiyorTimer: any = null;\r\n private _destroy$ = new Subject();\r\n\r\n constructor(\r\n private wsService: KartWebSocketService,\r\n private adminService: AdminService,\r\n private firmaService: FirmaService,\r\n private avatar: AvatarService,\r\n public pdksDurum: PdksDurumService,\r\n private pdksOffline: PdksOfflineService,\r\n ) { super(); }\r\n\r\n // ════════════════════════════════════════════════\r\n // LIFECYCLE\r\n // ════════════════════════════════════════════════\r\n\r\n ngOnInit() {\r\n this.initHardwareAPIs();\r\n\r\n const reklamAraligi = hmiAyarGetir('reklamAraligi', 5) * 1000;\r\n this._reklamTimer = setInterval(() => {\r\n this.reklamIndex = (this.reklamIndex + 1) % this.reklamlar.length;\r\n this.CD.detectChanges();\r\n }, reklamAraligi);\r\n\r\n if (hmiAyarGetir('olayLoglama', true)) {\r\n this.wsService.olayGonder({\r\n olay_kodu: 'sayfa_acildi',\r\n aciklama: 'HMI Pano sayfası açıldı',\r\n veri: { sayfa: 'pano', url: window.location.href },\r\n });\r\n }\r\n\r\n this.wsService.veriGeldi$.pipe(takeUntil(this._destroy$)).subscribe(veri => {\r\n if (/(cihaz.?koptu|baglanti.{0,3}kesildi)/i.test(veri)) {\r\n this.nfcSimule('bekliyor');\r\n }\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n if (hmiAyarGetir('olayLoglama', true)) {\r\n this.wsService.olayGonder({\r\n olay_kodu: 'sayfa_kapandi',\r\n aciklama: 'HMI Pano sayfası kapandı',\r\n veri: { sayfa: 'pano' },\r\n });\r\n }\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n if (this._bilinmiyorTimer) clearTimeout(this._bilinmiyorTimer);\r\n if (this._hizliTapTimer) clearTimeout(this._hizliTapTimer);\r\n if (this._reklamTimer) clearInterval(this._reklamTimer);\r\n this._destroySubs.forEach(fn => fn());\r\n this.releaseWakeLock();\r\n if (this._nfcController) this._nfcController.abort();\r\n if (this._lightSensor) { try { this._lightSensor.stop(); } catch (_) {} }\r\n }\r\n\r\n // ════════════════════════════════════════════════\r\n // NAVIGASYON — route-based state yönetimi\r\n // ════════════════════════════════════════════════\r\n\r\n private _navigate(childPath: string) {\r\n this.router.navigate([childPath || '.'], { relativeTo: this.route });\r\n }\r\n\r\n // ════════════════════════════════════════════════\r\n // KART OKUYUCU OLAYLARI\r\n // ════════════════════════════════════════════════\r\n\r\n async onKartOkundu(olay: KartOkumaOlayi) {\r\n if (!olay.uid || olay.uid.trim().length < 2) return;\r\n\r\n if (this._hizliTapTimer) { clearTimeout(this._hizliTapTimer); this._hizliTapTimer = null; }\r\n this._erkenCekildi = false;\r\n this._kartSorguDevam = true;\r\n\r\n // Anlık UI tepkisi → yukleniyor route'una git\r\n this._navigate('yukleniyor');\r\n this.CD.detectChanges();\r\n\r\n const olayLoglamaAktif = hmiAyarGetir('olayLoglama', true);\r\n\r\n try {\r\n const firmaId = hmiAyarGetir('firmaId', '');\r\n const p = await this.firmaService.kartSorgula(firmaId, olay.uid);\r\n this._kartSorguDevam = false;\r\n\r\n if (this._erkenCekildi) {\r\n this._erkenCekildi = false;\r\n await this._kartTanidiktan(p, olay, firmaId, olayLoglamaAktif);\n this.onKartCekildi(olay);\r\n return;\r\n }\r\n await this._kartTanidiktan(p, olay, firmaId, olayLoglamaAktif);\n } catch (err) {\r\n this._kartSorguDevam = false;\r\n this._navigate('.');\r\n this.CD.detectChanges();\r\n const baslangicMs = Date.now() - this._baslangicZamani;\r\n if (baslangicMs < 5000) return;\r\n if (olayLoglamaAktif) {\r\n this.wsService.olayGonder({\r\n olay_kodu: 'kart_okuma_hatasi',\r\n aciklama: `Kart okuma hatası: ${olay.uid}`,\r\n veri: { kartUid: olay.uid, hata: String(err) },\r\n });\r\n }\r\n this.nfcSimule('bilinmiyor');\r\n }\r\n }\r\n\r\n private async _kartTanidiktan(p: any, olay: KartOkumaOlayi, firmaId: string, olayLoglamaAktif: boolean) {\n const pAd = p?.ad || '';\r\n const pSoyad = p?.soyad || '';\r\n const pIsimTam = `${pAd} ${pSoyad}`.trim();\r\n\r\n if (olayLoglamaAktif) {\r\n this.adminService.iotOlayKaydet({\r\n tip: 'kart_koyuldu', kartUid: olay.uid,\r\n personelId: p?._id, personelIsim: p ? pIsimTam : undefined,\r\n }).catch(() => {});\r\n this.wsService.olayGonder({\r\n olay_kodu: 'kart_koyuldu',\r\n aciklama: p ? `Kart okutuldu: ${pIsimTam}` : `Bilinmeyen kart okutuldu: ${olay.uid}`,\r\n veri: { kartUid: olay.uid, personelId: p?._id, firmaId, kaynak: (olay as any).kaynak || 'seri_port' },\r\n });\r\n }\r\n\r\n if (p) {\r\n const now = new Date();\r\n const saat = `${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}`;\r\n\r\n if (olayLoglamaAktif) {\r\n this.wsService.olayGonder({\r\n olay_kodu: 'personel_tanindi',\r\n aciklama: `${pIsimTam} kartını okuttu`,\r\n veri: { kartUid: olay.uid, personelId: p._id, personelIsim: pIsimTam, unvan: p.unvan || '', girisSaati: saat, departman: p.departman?.departmanAdi || '' },\r\n });\r\n }\r\n\r\n this._sonKartUid = olay.uid;\r\n this._sonPersonel = p;\r\n\r\n // PdksDurumService\r\n this.pdksDurum.aktifPersonel.set(p);\n this.pdksDurum.firmaId.set(firmaId);\n this.pdksDurum.cihazId.set(localStorage.getItem('fikoyt_cihaz_kimlik') || '');\n await this.pdksDurum.pdksAyarlarYukle(firmaId);\n await this.pdksDurum.gunlukVeriYukle(new Date());\n this.pdksDurum.timerBaslat();\n\r\n const isim = pAd || p._uyeIsim || '';\r\n const soyIsim = pSoyad || p._uyeSoyisim || '';\r\n const profilResmiId = String(p._uyeResimId || '');\r\n const fapiUrl = this.FikoYT.fapiUrl || '';\r\n const resimUrl = profilResmiId && fapiUrl ? `${fapiUrl}/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.${profilResmiId}.resim?boyut=256x?&thumbnail=true` : '';\r\n\r\n // PanoDurumService güncelle\r\n this.panoDurum.taninanKisi.set({ isim, soyIsim, rol: p.unvan || p.gorev || '', resimUrl, girisSaati: saat });\r\n this.panoDurum.sonPersonel.set(p);\r\n this.panoDurum.kisiYetkileri.set(p._uyeYetkiler || []);\r\n this.panoDurum.sonGirisler.update(onceki => [\r\n { isim, soyisim: soyIsim, rol: p.unvan || p.gorev || '', saat, resimUrl },\r\n ...onceki.filter(g => !(g.isim === isim && g.soyisim === soyIsim)),\r\n ].slice(0, 6));\r\n\r\n this.nfcDurum = 'tanindi';\r\n this.titret([80]);\r\n this._navigate('personel');\n this.CD.detectChanges();\r\n } else {\r\n const baslangicMs = Date.now() - this._baslangicZamani;\r\n if (baslangicMs < 5000) {\r\n this._navigate('.');\r\n this.CD.detectChanges();\r\n return;\r\n }\r\n this._sonKartUid = olay.uid;\r\n this._sonPersonel = null;\r\n if (olayLoglamaAktif) {\r\n this.wsService.olayGonder({\r\n olay_kodu: 'bilinmeyen_kart',\r\n aciklama: `Tanınmayan kart okutuldu: ${olay.uid}`,\r\n veri: { kartUid: olay.uid },\r\n });\r\n }\r\n this.nfcSimule('bilinmiyor');\r\n }\r\n }\r\n\r\n async onKartCekildi(olay: KartOkumaOlayi) {\r\n if (this._hizliTapTimer) { clearTimeout(this._hizliTapTimer); this._hizliTapTimer = null; }\r\n\r\n if (this._kartSorguDevam) {\r\n this._erkenCekildi = true;\r\n return;\r\n }\r\n\r\n const olayLoglamaAktif = hmiAyarGetir('olayLoglama', true);\r\n const sp = this._sonPersonel;\r\n const personelIsim = sp ? `${sp.ad || ''} ${sp.soyad || ''}`.trim() : undefined;\r\n\r\n if (olayLoglamaAktif) {\r\n this.adminService.iotOlayKaydet({\r\n tip: 'kart_cekildi', kartUid: olay.uid,\r\n personelId: this._sonPersonel?._id, personelIsim,\r\n }).catch(() => {});\r\n this.wsService.olayGonder({\r\n olay_kodu: 'kart_cekildi',\r\n aciklama: personelIsim ? `${personelIsim} kartını çekti` : `Kart çekildi: ${olay.uid}`,\r\n veri: { kartUid: olay.uid, personelId: this._sonPersonel?._id, personelIsim },\r\n });\r\n }\r\n\r\n this._sonKartUid = '';\n this._sonPersonel = null;\n this.panoDurum.sifirla();\n this.pdksDurum.sifirla();\n this.nfcSimule('bekliyor');\n }\r\n\r\n onNfcDurumDegisti(durum: NfcDurum) {\r\n if (durum === 'giris-anim' || durum === 'cikis-anim') return;\r\n if (hmiAyarGetir('olayLoglama', true)) {\r\n this.wsService.olayGonder({\r\n olay_kodu: 'durum_degisti',\r\n aciklama: `NFC durum değişti: ${durum}`,\r\n veri: { oncekiDurum: this.nfcDurum, yeniDurum: durum },\r\n });\r\n }\r\n this.nfcSimule(durum as any);\r\n }\r\n\r\n // ════════════════════════════════════════════════\r\n // NFC SIMULATION\r\n // ════════════════════════════════════════════════\r\n\r\n nfcSimule(durum: 'bekliyor' | 'tanindi' | 'bilinmiyor') {\r\n if (this._bilinmiyorTimer) { clearTimeout(this._bilinmiyorTimer); this._bilinmiyorTimer = null; }\r\n this.nfcDurum = durum;\r\n\r\n if (durum === 'tanindi') {\r\n this.titret([80]);\r\n this._navigate('personel');\r\n } else if (durum === 'bilinmiyor') {\r\n this.titret([200, 100, 200]);\r\n this._navigate('yetkisiz');\r\n } else {\r\n this._navigate('.');\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n // ════════════════════════════════════════════════\r\n // HELPERS\r\n // ════════════════════════════════════════════════\r\n\r\n get aktifDonanımSayisi(): number {\r\n let c = 0;\r\n if (this.donanim.nfc) c++;\r\n if (this.donanim.bluetooth) c++;\r\n if (this.donanim.seri) c++;\r\n if (this.donanim.kamera) c++;\r\n if (this.donanim.konum) c++;\r\n if (this.donanim.titresim) c++;\r\n if (this.donanim.isikSensoru) c++;\r\n if (this.donanim.ekranKilidi) c++;\r\n if (this.donanim.batarya.destekleniyor) c++;\r\n return c;\r\n }\r\n\r\n sifirla() {\n this._sonKartUid = '';\r\n this._sonPersonel = null;\r\n this.panoDurum.sifirla();\n this.pdksDurum.sifirla();\n this.nfcSimule('bekliyor');\r\n }\r\n\r\n // ════════════════════════════════════════════════\r\n // HTML5 HARDWARE APIS\r\n // ════════════════════════════════════════════════\r\n\r\n private async initHardwareAPIs() {\r\n this.detectCapabilities();\r\n await Promise.allSettled([\r\n this.initNFC(), this.initBattery(), this.initWakeLock(),\r\n this.initAmbientLight(), this.initScreenOrientation(),\r\n ]);\r\n this.initNetwork();\r\n this.CD.markForCheck();\r\n }\r\n\r\n private async initNFC() {\r\n if (!('NDEFReader' in window)) return;\r\n this.donanim.nfc = true;\r\n try {\r\n const ndef = new (window as any).NDEFReader();\r\n this._nfcController = new AbortController();\r\n await ndef.scan({ signal: this._nfcController.signal });\r\n ndef.addEventListener('reading', (event: any) => {\r\n this.nfcSimule('tanindi');\r\n this.titret([100]);\r\n this.CD.markForCheck();\r\n });\r\n ndef.addEventListener('readingerror', () => {\r\n this.nfcSimule('bilinmiyor');\r\n this.titret([200, 100, 200]);\r\n if (hmiAyarGetir('olayLoglama', true)) {\r\n this.wsService.olayGonder({ olay_kodu: 'nfc_okuma_hatasi', aciklama: 'NFC kart okuma hatası oluştu', veri: { kaynak: 'web_nfc' } });\r\n }\r\n });\r\n } catch (_) {}\r\n }\r\n\r\n private async initBattery() {\r\n if (!('getBattery' in navigator)) return;\r\n try {\r\n const battery = await (navigator as any).getBattery();\r\n this.donanim.batarya = { seviye: Math.round(battery.level * 100), sarj: battery.charging, destekleniyor: true };\r\n const update = () => { this.donanim.batarya.seviye = Math.round(battery.level * 100); this.donanim.batarya.sarj = battery.charging; this.CD.markForCheck(); };\r\n battery.addEventListener('levelchange', update);\r\n battery.addEventListener('chargingchange', update);\r\n this._destroySubs.push(() => { battery.removeEventListener('levelchange', update); battery.removeEventListener('chargingchange', update); });\r\n } catch (_) {}\r\n }\r\n\r\n private initNetwork() {\r\n const conn: any = (navigator as any).connection || (navigator as any).mozConnection || (navigator as any).webkitConnection;\r\n if (conn) {\r\n this.donanim.ag.tur = conn.effectiveType || conn.type || 'wifi';\r\n this.donanim.ag.hiz = conn.downlink ? `${conn.downlink} Mbps` : '';\r\n const update = () => { this.donanim.ag.tur = conn.effectiveType || conn.type || 'wifi'; this.donanim.ag.hiz = conn.downlink ? `${conn.downlink} Mbps` : ''; this.CD.markForCheck(); };\r\n conn.addEventListener('change', update);\r\n this._destroySubs.push(() => conn.removeEventListener('change', update));\r\n }\r\n this.donanim.ag.cevrimici = navigator.onLine;\r\n const onlineH = () => { this.donanim.ag.cevrimici = true; this.CD.markForCheck(); if (hmiAyarGetir('olayLoglama', true)) this.wsService.olayGonder({ olay_kodu: 'ag_durumu', aciklama: 'İnternet bağlantısı yeniden kuruldu', veri: { durum: 'cevrimici' } }); };\r\n const offlineH = () => { this.donanim.ag.cevrimici = false; this.CD.markForCheck(); if (hmiAyarGetir('olayLoglama', true)) this.wsService.olayGonder({ olay_kodu: 'ag_durumu', aciklama: 'İnternet bağlantısı kesildi', veri: { durum: 'cevrimdisi' } }); };\r\n window.addEventListener('online', onlineH);\r\n window.addEventListener('offline', offlineH);\r\n this._destroySubs.push(() => { window.removeEventListener('online', onlineH); window.removeEventListener('offline', offlineH); });\r\n }\r\n\r\n private async initWakeLock() {\r\n if (!('wakeLock' in navigator)) return;\r\n this.donanim.ekranKilidi = true;\r\n if (!hmiAyarGetir('ekranAcikTut', true)) return;\r\n try {\r\n this._wakeLock = await (navigator as any).wakeLock.request('screen');\r\n this._wakeLock.addEventListener('release', () => { this._wakeLock = null; });\r\n } catch (_) {}\r\n const handler = async () => {\r\n if (document.visibilityState === 'visible' && !this._wakeLock) {\r\n try { this._wakeLock = await (navigator as any).wakeLock.request('screen'); } catch (_) {}\r\n }\r\n };\r\n document.addEventListener('visibilitychange', handler);\r\n this._destroySubs.push(() => document.removeEventListener('visibilitychange', handler));\r\n }\r\n\r\n private async releaseWakeLock() {\r\n if (this._wakeLock) { try { await this._wakeLock.release(); } catch (_) {} this._wakeLock = null; }\r\n }\r\n\r\n private initAmbientLight() {\r\n if (!('AmbientLightSensor' in window)) return;\r\n this.donanim.isikSensoru = true;\r\n try {\r\n this._lightSensor = new (window as any).AmbientLightSensor();\r\n this._lightSensor.addEventListener('reading', () => {});\r\n this._lightSensor.start();\r\n } catch (_) {}\r\n }\r\n\r\n private async initScreenOrientation() {\r\n if (!screen.orientation) return;\r\n try { await (screen.orientation as any).lock('landscape'); } catch (_) {}\r\n }\r\n\r\n private detectCapabilities() {\r\n this.donanim.nfc = 'NDEFReader' in window;\r\n this.donanim.bluetooth = 'bluetooth' in navigator;\r\n this.donanim.seri = 'serial' in navigator;\r\n this.donanim.kamera = !!(navigator.mediaDevices?.getUserMedia);\r\n this.donanim.konum = 'geolocation' in navigator;\r\n this.donanim.titresim = 'vibrate' in navigator;\r\n this.donanim.yonSensoru = 'DeviceOrientationEvent' in window;\r\n }\r\n\r\n titret(desen: number[]) {\r\n if (!hmiAyarGetir('titresimGeriBildirim', true)) return;\r\n if ('vibrate' in navigator) navigator.vibrate(desen);\r\n }\r\n\r\n // ════════════════════════════════════════════════\r\n // TEST: Fikri Topaloğlu simülasyonu\r\n // ════════════════════════════════════════════════\r\n\r\n async testKartKoyuldu() {\r\n this._navigate('yukleniyor');\r\n this.CD.detectChanges();\r\n\r\n try {\r\n const p = await this.firmaService.personelAraIsimle('Fikri', 'Topaloğlu');\r\n if (p) {\r\n const now = new Date();\r\n const saat = `${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}`;\r\n const isim = p.ad || p._uyeIsim || 'Fikri';\r\n const soyIsim = p.soyad || p._uyeSoyisim || 'Topaloğlu';\r\n const profilResmiId = String(p._uyeResimId || '');\r\n const fapiUrl = this.FikoYT.fapiUrl || '';\r\n const resimUrl = profilResmiId && fapiUrl ? `${fapiUrl}/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.${profilResmiId}.resim?boyut=256x?&thumbnail=true` : '';\r\n\r\n this.panoDurum.taninanKisi.set({ isim, soyIsim, rol: p.unvan || p.gorev || '', resimUrl, girisSaati: saat });\r\n this._sonPersonel = p;\n this.panoDurum.sonPersonel.set(p);\n this.panoDurum.kisiYetkileri.set((p as any)._uyeYetkiler || []);\n const firmaId = hmiAyarGetir('firmaId', '');\n this.pdksDurum.aktifPersonel.set(p);\n this.pdksDurum.firmaId.set(firmaId);\n this.pdksDurum.cihazId.set(localStorage.getItem('fikoyt_cihaz_kimlik') || '');\n await this.pdksDurum.pdksAyarlarYukle(firmaId);\n await this.pdksDurum.gunlukVeriYukle(new Date());\n this.pdksDurum.timerBaslat();\n this.panoDurum.sonGirisler.update(onceki => [\r\n { isim, soyisim: soyIsim, rol: p.unvan || p.gorev || '', saat, resimUrl },\r\n ...onceki.filter(g => !(g.isim === isim && g.soyisim === soyIsim)),\r\n ].slice(0, 6));\r\n\r\n this.nfcDurum = 'tanindi';\r\n this._navigate('personel');\n this.CD.detectChanges();\r\n } else {\r\n this.nfcSimule('bilinmiyor');\r\n }\r\n } catch (err) {\r\n this._navigate('.');\r\n this.CD.detectChanges();\r\n }\r\n }\r\n\r\n testKartCekildi() {\n this._sonPersonel = null;\r\n this.panoDurum.sifirla();\n this.pdksDurum.sifirla();\n this.nfcSimule('bekliyor');\r\n }\r\n}\r\n"],"names":["i7"],"mappings":"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"}