{"version":3,"file":"fikoyt-shared-fikoyt-kart.component-B2RpWvgx.mjs","sources":["../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fiko-ses-oynatici/fiko-ses-oynatici.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fiko-ses-oynatici/fiko-ses-oynatici.component.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fiko-three-js/IFikoThreeJS/fiko-screenshot/FikoScreenshot.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fiko-three-js/fiko-stp-onizleme-karti/fiko-stp-onizleme-karti.component.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/paylasim-sistemi/fikoyt-kart-kok/icerikler/icerikler.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/paylasim-sistemi/fikoyt-kart-kok/icerikler/icerikler.component.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/paylasim-sistemi/fikoyt-kart-kok/kart-menu/.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/paylasim-sistemi/fikoyt-kart-kok/kart-menu/.component.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/paylasim-sistemi/fikoyt-kart-kok/fikoyt-kart.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/paylasim-sistemi/fikoyt-kart-kok/fikoyt-kart.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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n @if (sesObje?.paused == true || sesObje == null) {\r\n \r\n } @else {\r\n \r\n }\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n @if (altyaziAktif && aktifAltyazi) {\r\n
\r\n {{ aktifAltyazi }}\r\n
\r\n }\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n 0 ? (aktifZaman / sarkiSure * 100) + '%' : '0%'\"\r\n (mousedown)=\"zamanKaydiriliyor=true;\"\r\n (change)=\"zamanKaydirildi($event)\" />\r\n
\r\n
\r\n {{ aktifZaman | minuteSeconds }}\r\n -{{ kalanSure | minuteSeconds }}\r\n {{ sarkiSure | minuteSeconds }}\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n @if (transkriptGoster) {\r\n
\r\n
\r\n Yazıya Çevirme\r\n \r\n
\r\n
\r\n @if (transkriptYukleniyor) {\r\n Ses analiz ediliyor...\r\n } @else {\r\n {{ transkriptMetni }}\r\n }\r\n
\r\n
\r\n }\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, Output, Pipe, PipeTransform, ViewChild } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'minuteSeconds',\r\n standalone: true\r\n})\r\nexport class MinuteSecondsPipe implements PipeTransform {\r\n transform(value: number): string {\r\n if (!value) return \"00:00\"\r\n const minutes: number = Math.floor(value / 60);\r\n return (minutes < 10 ? \"0\" + minutes : minutes) + ':' + (parseInt(String(value % 60)) < 10 ? \"0\" + parseInt(String(value % 60)) : parseInt(String(value % 60)));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'fikoyt-fiko-ses-oynatici',\r\n templateUrl: './fiko-ses-oynatici.component.html',\r\n styleUrls: ['./fiko-ses-oynatici.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [MinuteSecondsPipe]\r\n})\r\nexport class FikoSesOynaticiComponent implements OnDestroy {\r\n\r\n @ViewChild('spectrumCanvas') spectrumCanvasRef: ElementRef;\r\n\r\n private URL: any;\r\n public get url(): any {\r\n return this.URL;\r\n }\r\n @Input() public set url(v: any) {\r\n this.URL = v;\r\n this.CD.detectChanges();\r\n }\r\n\r\n private DURAKLATILDI: boolean = true;\r\n public get duraklatildi(): boolean {\r\n return this.DURAKLATILDI;\r\n }\r\n @Input() public set duraklatildi(v: boolean) {\r\n this.DURAKLATILDI = v;\r\n if (v) {\r\n if (this.sesObje)\r\n this.sesObje.pause();\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n @Output() duraklatildiChange: EventEmitter = new EventEmitter();\r\n\r\n @Input() aktifZaman: number = 0;\r\n\r\n private SARKISURE: number = 0;\r\n public get sarkiSure(): number {\r\n return this.SARKISURE;\r\n }\r\n @Input() public set sarkiSure(v: number) {\r\n this.SARKISURE = v;\r\n this.CD.detectChanges();\r\n }\r\n\r\n zamanKaydiriliyor: boolean = false;\r\n sesSeviyesi: number = 1;\r\n sessiz: boolean = false;\r\n bufferYuzdesi: number = 0;\r\n sesObje: HTMLAudioElement = null;\r\n\r\n // Oynatma hızı\r\n hizSecenekleri: number[] = [0.5, 0.75, 1, 1.25, 1.5, 2];\r\n aktifHizIndex: number = 2; // 1x varsayılan\r\n\r\n get aktifHiz(): number {\r\n return this.hizSecenekleri[this.aktifHizIndex];\r\n }\r\n\r\n // Kalan süre\r\n get kalanSure(): number {\r\n return Math.max(0, this.sarkiSure - this.aktifZaman);\r\n }\r\n\r\n // Spectrum modları\r\n spectrumModlari: string[] = ['barlar', 'cizgi', 'dairesel', 'ayna', 'parcacik', 'osiloskop'];\r\n spectrumModIsimleri: string[] = ['Barlar', 'Çizgi', 'Dairesel', 'Ayna', 'Parçacık', 'Osiloskop'];\r\n aktifSpectrumMod: number = 0;\r\n\r\n // Transkript (Yazıya çevirme) - Altyazı sistemi\r\n transkriptMetni: string = '';\r\n transkriptYukleniyor: boolean = false;\r\n transkriptGoster: boolean = false;\r\n @Input() sunucuUrl: string = ''; // Backend base URL (örn: https://fikoyt.com:9000)\r\n @Input() mevcutTranskript: string = ''; // MongoDB'den gelen mevcut transkript metni\r\n @Input() mevcutSegmentler: { start: number; end: number; text: string }[] = []; // MongoDB'den gelen segmentler\r\n @Output() transkriptHazir: EventEmitter<{ metin: string; segmentler: { start: number; end: number; text: string }[] }> = new EventEmitter();\r\n\r\n // Altyazı segmentleri\r\n altyaziSegmentleri: { start: number; end: number; text: string }[] = [];\r\n aktifAltyazi: string = '';\r\n altyaziAktif: boolean = false; // Altyazı modu açık/kapalı\r\n\r\n // Spectrum\r\n private audioContext: AudioContext = null;\r\n private analyser: AnalyserNode = null;\r\n private sourceNode: MediaElementAudioSourceNode = null;\r\n private animFrameId: number = null;\r\n private spectrumVerisi: Uint8Array = null;\r\n private parcaciklar: { x: number; y: number; hiz: number; boyut: number; aci: number; alpha: number }[] = [];\r\n\r\n constructor(private readonly CD: ChangeDetectorRef) {\r\n CD.detach();\r\n }\r\n\r\n oynat() {\r\n if (this.sesObje == null) {\r\n this.sesObje = new Audio(this.url);\r\n this.sesObje.crossOrigin = 'anonymous';\r\n this.sesObje.volume = this.sessiz ? 0 : this.sesSeviyesi;\r\n this.sesObje.playbackRate = this.aktifHiz;\r\n\r\n if (this.sarkiSure == 0 || !this.sarkiSure) {\r\n this.sesObje.onloadedmetadata = () => {\r\n if (this.sesObje.duration === Infinity || isNaN(this.sesObje.duration)) {\r\n // Chrome WebM blob duration fix: seek sonuna zorla, duration ortaya çıkıyor\r\n this.sesObje.currentTime = 1e101;\r\n this.sesObje.addEventListener('timeupdate', () => {\r\n if (this.sesObje.duration !== Infinity && !isNaN(this.sesObje.duration)) {\r\n this.sarkiSure = this.sesObje.duration;\r\n this.sesObje.currentTime = 0;\r\n this.CD.detectChanges();\r\n }\r\n }, { once: true });\r\n } else {\r\n this.sarkiSure = this.sesObje.duration;\r\n this.CD.detectChanges();\r\n }\r\n }\r\n }\r\n this.sesObje.ontimeupdate = () => {\r\n if (!this.zamanKaydiriliyor) {\r\n this.aktifZaman = this?.sesObje?.currentTime;\r\n this.bufferGuncelle();\r\n this.altyaziGuncelle();\r\n this.CD.detectChanges();\r\n }\r\n }\r\n this.sesObje.onended = () => {\r\n if (!this.zamanKaydiriliyor) {\r\n this.aktifZaman = 0;\r\n this.duraklatildi = true;\r\n this.duraklatildiChange.emit(true);\r\n this.CD.detectChanges();\r\n }\r\n }\r\n this.sesObje.onprogress = () => {\r\n this.bufferGuncelle();\r\n this.CD.detectChanges();\r\n }\r\n\r\n this.spectrumBaslat();\r\n }\r\n\r\n if (this.sesObje.paused) {\r\n this.sesObje.play()\r\n this.duraklatildi = false;\r\n this.duraklatildiChange.emit(false);\r\n this.spectrumCiz();\r\n } else {\r\n this.sesObje.pause();\r\n this.duraklatildi = true;\r\n this.duraklatildiChange.emit(true);\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n // 10sn geri sar\r\n geriSar() {\r\n if (!this.sesObje) return;\r\n this.sesObje.currentTime = Math.max(0, this.sesObje.currentTime - 10);\r\n this.aktifZaman = this.sesObje.currentTime;\r\n this.CD.detectChanges();\r\n }\r\n\r\n // 10sn ileri sar\r\n ileriSar() {\r\n if (!this.sesObje) return;\r\n this.sesObje.currentTime = Math.min(this.sesObje.duration, this.sesObje.currentTime + 10);\r\n this.aktifZaman = this.sesObje.currentTime;\r\n this.CD.detectChanges();\r\n }\r\n\r\n // Oynatma hızını değiştir (tıklayınca sıradaki hıza geç)\r\n hizDegistir() {\r\n this.aktifHizIndex = (this.aktifHizIndex + 1) % this.hizSecenekleri.length;\r\n if (this.sesObje) {\r\n this.sesObje.playbackRate = this.aktifHiz;\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n private bufferGuncelle() {\r\n if (!this.sesObje || !this.sesObje.buffered.length || !this.sesObje.duration) return;\r\n const son = this.sesObje.buffered.end(this.sesObje.buffered.length - 1);\r\n this.bufferYuzdesi = (son / this.sesObje.duration) * 100;\r\n }\r\n\r\n private spectrumBaslat() {\r\n try {\r\n this.audioContext = new AudioContext();\r\n this.analyser = this.audioContext.createAnalyser();\r\n this.analyser.fftSize = 128;\r\n this.analyser.smoothingTimeConstant = 0.8;\r\n this.sourceNode = this.audioContext.createMediaElementSource(this.sesObje);\r\n this.sourceNode.connect(this.analyser);\r\n this.analyser.connect(this.audioContext.destination);\r\n this.spectrumVerisi = new Uint8Array(this.analyser.frequencyBinCount);\r\n } catch (e) {\r\n // CORS veya AudioContext hatası - sessizce atla\r\n }\r\n }\r\n\r\n spectrumModDegistir() {\r\n this.aktifSpectrumMod = (this.aktifSpectrumMod + 1) % this.spectrumModlari.length;\r\n this.CD.detectChanges();\r\n }\r\n\r\n private spectrumCiz() {\r\n if (!this.analyser || !this.spectrumCanvasRef) return;\r\n\r\n const canvas = this.spectrumCanvasRef.nativeElement;\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx) return;\r\n\r\n const ciz = () => {\r\n if (this.sesObje?.paused) return;\r\n this.animFrameId = requestAnimationFrame(ciz);\r\n\r\n this.analyser.getByteFrequencyData(this.spectrumVerisi);\r\n\r\n const w = canvas.width;\r\n const h = canvas.height;\r\n ctx.clearRect(0, 0, w, h);\r\n\r\n switch (this.spectrumModlari[this.aktifSpectrumMod]) {\r\n case 'barlar': this.cizBarlar(ctx, w, h); break;\r\n case 'cizgi': this.cizCizgi(ctx, w, h); break;\r\n case 'dairesel': this.cizDairesel(ctx, w, h); break;\r\n case 'ayna': this.cizAyna(ctx, w, h); break;\r\n case 'parcacik': this.cizParcacik(ctx, w, h); break;\r\n case 'osiloskop': this.cizOsiloskop(ctx, w, h); break;\r\n }\r\n };\r\n ciz();\r\n }\r\n\r\n // Mod 1: Klasik barlar\r\n private cizBarlar(ctx: CanvasRenderingContext2D, w: number, h: number) {\r\n const sayisi = this.spectrumVerisi.length;\r\n const genislik = w / sayisi;\r\n for (let i = 0; i < sayisi; i++) {\r\n const d = this.spectrumVerisi[i] / 255;\r\n const yukseklik = d * h * 0.9;\r\n const x = i * genislik;\r\n const y = (h - yukseklik) / 2;\r\n ctx.fillStyle = `rgba(${75 + (i / sayisi) * 40}, ${200 + d * 55}, ${116 + (i / sayisi) * 100}, ${0.4 + d * 0.6})`;\r\n ctx.fillRect(x + 0.5, y, genislik - 1, yukseklik);\r\n }\r\n }\r\n\r\n // Mod 2: Yumuşak çizgi dalga\r\n private cizCizgi(ctx: CanvasRenderingContext2D, w: number, h: number) {\r\n const sayisi = this.spectrumVerisi.length;\r\n const adim = w / (sayisi - 1);\r\n\r\n // Dolgu gradyanı\r\n const grad = ctx.createLinearGradient(0, 0, w, 0);\r\n grad.addColorStop(0, 'rgba(75, 249, 116, 0.3)');\r\n grad.addColorStop(0.5, 'rgba(0, 200, 255, 0.3)');\r\n grad.addColorStop(1, 'rgba(180, 100, 255, 0.3)');\r\n\r\n // Dolgu alanı\r\n ctx.beginPath();\r\n ctx.moveTo(0, h);\r\n for (let i = 0; i < sayisi; i++) {\r\n const d = this.spectrumVerisi[i] / 255;\r\n const y = h - d * h * 0.85;\r\n if (i === 0) {\r\n ctx.lineTo(0, y);\r\n } else {\r\n const oncekiX = (i - 1) * adim;\r\n const oncekiD = this.spectrumVerisi[i - 1] / 255;\r\n const oncekiY = h - oncekiD * h * 0.85;\r\n const cpx = (oncekiX + i * adim) / 2;\r\n ctx.bezierCurveTo(cpx, oncekiY, cpx, y, i * adim, y);\r\n }\r\n }\r\n ctx.lineTo(w, h);\r\n ctx.closePath();\r\n ctx.fillStyle = grad;\r\n ctx.fill();\r\n\r\n // Üst çizgi (parlak)\r\n const cizgiGrad = ctx.createLinearGradient(0, 0, w, 0);\r\n cizgiGrad.addColorStop(0, '#4bf974');\r\n cizgiGrad.addColorStop(0.5, '#00c8ff');\r\n cizgiGrad.addColorStop(1, '#b464ff');\r\n\r\n ctx.beginPath();\r\n for (let i = 0; i < sayisi; i++) {\r\n const d = this.spectrumVerisi[i] / 255;\r\n const y = h - d * h * 0.85;\r\n if (i === 0) {\r\n ctx.moveTo(0, y);\r\n } else {\r\n const oncekiX = (i - 1) * adim;\r\n const oncekiD = this.spectrumVerisi[i - 1] / 255;\r\n const oncekiY = h - oncekiD * h * 0.85;\r\n const cpx = (oncekiX + i * adim) / 2;\r\n ctx.bezierCurveTo(cpx, oncekiY, cpx, y, i * adim, y);\r\n }\r\n }\r\n ctx.strokeStyle = cizgiGrad;\r\n ctx.lineWidth = 2;\r\n ctx.shadowColor = '#4bf974';\r\n ctx.shadowBlur = 6;\r\n ctx.stroke();\r\n ctx.shadowBlur = 0;\r\n }\r\n\r\n // Mod 3: Dairesel spectrum\r\n private cizDairesel(ctx: CanvasRenderingContext2D, w: number, h: number) {\r\n const cx = w / 2;\r\n const cy = h / 2;\r\n const yaricap = Math.min(cx, cy) * 0.35;\r\n const sayisi = this.spectrumVerisi.length;\r\n\r\n for (let i = 0; i < sayisi; i++) {\r\n const d = this.spectrumVerisi[i] / 255;\r\n const aci = (i / sayisi) * Math.PI * 2 - Math.PI / 2;\r\n const icR = yaricap;\r\n const disR = yaricap + d * Math.min(cx, cy) * 0.55;\r\n\r\n const x1 = cx + Math.cos(aci) * icR;\r\n const y1 = cy + Math.sin(aci) * icR;\r\n const x2 = cx + Math.cos(aci) * disR;\r\n const y2 = cy + Math.sin(aci) * disR;\r\n\r\n const ton = (i / sayisi) * 120 + 100; // yeşil-mavi-mor\r\n ctx.beginPath();\r\n ctx.moveTo(x1, y1);\r\n ctx.lineTo(x2, y2);\r\n ctx.strokeStyle = `hsla(${ton}, 80%, 65%, ${0.4 + d * 0.6})`;\r\n ctx.lineWidth = Math.max(1, (Math.PI * 2 * yaricap) / sayisi - 0.5);\r\n ctx.lineCap = 'round';\r\n ctx.stroke();\r\n }\r\n\r\n // İç daire parıltısı\r\n const ortalama = this.spectrumVerisi.reduce((t, v) => t + v, 0) / sayisi / 255;\r\n const parlaklik = ctx.createRadialGradient(cx, cy, 0, cx, cy, yaricap);\r\n parlaklik.addColorStop(0, `rgba(75, 249, 116, ${ortalama * 0.4})`);\r\n parlaklik.addColorStop(1, 'rgba(75, 249, 116, 0)');\r\n ctx.fillStyle = parlaklik;\r\n ctx.beginPath();\r\n ctx.arc(cx, cy, yaricap, 0, Math.PI * 2);\r\n ctx.fill();\r\n }\r\n\r\n // Mod 4: Ayna (üst-alt simetrik dalga)\r\n private cizAyna(ctx: CanvasRenderingContext2D, w: number, h: number) {\r\n const sayisi = this.spectrumVerisi.length;\r\n const genislik = w / sayisi;\r\n const ortaY = h / 2;\r\n\r\n for (let i = 0; i < sayisi; i++) {\r\n const d = this.spectrumVerisi[i] / 255;\r\n const yukseklik = d * ortaY * 0.85;\r\n\r\n const ton = 140 + (i / sayisi) * 80;\r\n const alpha = 0.35 + d * 0.65;\r\n\r\n // Üst gradient\r\n const ustGrad = ctx.createLinearGradient(0, ortaY - yukseklik, 0, ortaY);\r\n ustGrad.addColorStop(0, `hsla(${ton}, 85%, 70%, ${alpha})`);\r\n ustGrad.addColorStop(1, `hsla(${ton}, 85%, 70%, ${alpha * 0.2})`);\r\n ctx.fillStyle = ustGrad;\r\n ctx.fillRect(i * genislik + 0.5, ortaY - yukseklik, genislik - 1, yukseklik);\r\n\r\n // Alt gradient (yansıma)\r\n const altGrad = ctx.createLinearGradient(0, ortaY, 0, ortaY + yukseklik);\r\n altGrad.addColorStop(0, `hsla(${ton}, 85%, 70%, ${alpha * 0.2})`);\r\n altGrad.addColorStop(1, `hsla(${ton}, 85%, 70%, ${alpha * 0.6})`);\r\n ctx.fillStyle = altGrad;\r\n ctx.fillRect(i * genislik + 0.5, ortaY, genislik - 1, yukseklik);\r\n }\r\n\r\n // Orta çizgi\r\n ctx.beginPath();\r\n ctx.moveTo(0, ortaY);\r\n ctx.lineTo(w, ortaY);\r\n ctx.strokeStyle = 'rgba(255, 255, 255, 0.08)';\r\n ctx.lineWidth = 1;\r\n ctx.stroke();\r\n }\r\n\r\n // Mod 5: Parçacık efekti\r\n private cizParcacik(ctx: CanvasRenderingContext2D, w: number, h: number) {\r\n const ortalama = this.spectrumVerisi.reduce((t, v) => t + v, 0) / this.spectrumVerisi.length / 255;\r\n const bass = this.spectrumVerisi.slice(0, 8).reduce((t, v) => t + v, 0) / 8 / 255;\r\n\r\n // Yeni parçacık üret (ses yoğunluğuna göre)\r\n const yeniAdet = Math.floor(ortalama * 6);\r\n for (let j = 0; j < yeniAdet; j++) {\r\n this.parcaciklar.push({\r\n x: w / 2,\r\n y: h / 2,\r\n hiz: 0.5 + bass * 3 + Math.random() * 2,\r\n boyut: 1 + Math.random() * 2.5,\r\n aci: Math.random() * Math.PI * 2,\r\n alpha: 0.6 + Math.random() * 0.4,\r\n });\r\n }\r\n\r\n // Limit\r\n if (this.parcaciklar.length > 200) {\r\n this.parcaciklar = this.parcaciklar.slice(-200);\r\n }\r\n\r\n // Guncelle ve ciz — splice yerine swap-and-pop ile O(1) silme\r\n let yazIdx = 0;\r\n for (let i = 0; i < this.parcaciklar.length; i++) {\r\n const p = this.parcaciklar[i];\r\n p.x += Math.cos(p.aci) * p.hiz;\r\n p.y += Math.sin(p.aci) * p.hiz;\r\n p.alpha -= 0.012;\r\n p.boyut *= 0.995;\r\n\r\n if (p.alpha <= 0 || p.x < -5 || p.x > w + 5 || p.y < -5 || p.y > h + 5) {\r\n continue; // olmus parcacigi atla\r\n }\r\n\r\n // Hayatta kalan parcacigi ciz\r\n const ton = 140 + (p.aci / (Math.PI * 2)) * 120;\r\n ctx.beginPath();\r\n ctx.arc(p.x, p.y, p.boyut, 0, Math.PI * 2);\r\n ctx.fillStyle = `hsla(${ton}, 80%, 65%, ${p.alpha})`;\r\n ctx.fill();\r\n\r\n // Hayatta kalanlari basa topla (in-place compaction)\r\n if (yazIdx !== i) this.parcaciklar[yazIdx] = p;\r\n yazIdx++;\r\n }\r\n this.parcaciklar.length = yazIdx; // olmus parcaciklari kes\r\n\r\n // Merkez parıltısı\r\n const parlaklik = ctx.createRadialGradient(w / 2, h / 2, 0, w / 2, h / 2, 15 + bass * 20);\r\n parlaklik.addColorStop(0, `rgba(75, 249, 116, ${bass * 0.5})`);\r\n parlaklik.addColorStop(1, 'rgba(75, 249, 116, 0)');\r\n ctx.fillStyle = parlaklik;\r\n ctx.beginPath();\r\n ctx.arc(w / 2, h / 2, 15 + bass * 20, 0, Math.PI * 2);\r\n ctx.fill();\r\n }\r\n\r\n // Mod 6: Osiloskop - soldan sağa gerçek dalga formu çizgisi\r\n private osiloskopVerisi: Uint8Array = null;\r\n private cizOsiloskop(ctx: CanvasRenderingContext2D, w: number, h: number) {\r\n // Time domain verisi (dalga formu)\r\n if (!this.osiloskopVerisi) {\r\n this.osiloskopVerisi = new Uint8Array(this.analyser.frequencyBinCount);\r\n }\r\n this.analyser.getByteTimeDomainData(this.osiloskopVerisi);\r\n\r\n const sayisi = this.osiloskopVerisi.length;\r\n const adim = w / sayisi;\r\n const ortaY = h / 2;\r\n\r\n // Arka plan grid çizgileri\r\n ctx.strokeStyle = 'rgba(75, 249, 116, 0.06)';\r\n ctx.lineWidth = 0.5;\r\n for (let gy = 0; gy < 5; gy++) {\r\n const yy = (gy / 4) * h;\r\n ctx.beginPath();\r\n ctx.moveTo(0, yy);\r\n ctx.lineTo(w, yy);\r\n ctx.stroke();\r\n }\r\n for (let gx = 0; gx < 9; gx++) {\r\n const xx = (gx / 8) * w;\r\n ctx.beginPath();\r\n ctx.moveTo(xx, 0);\r\n ctx.lineTo(xx, h);\r\n ctx.stroke();\r\n }\r\n\r\n // Orta referans çizgisi\r\n ctx.beginPath();\r\n ctx.moveTo(0, ortaY);\r\n ctx.lineTo(w, ortaY);\r\n ctx.strokeStyle = 'rgba(75, 249, 116, 0.12)';\r\n ctx.lineWidth = 0.5;\r\n ctx.stroke();\r\n\r\n // Parlak glow çizgi (altta)\r\n ctx.beginPath();\r\n for (let i = 0; i < sayisi; i++) {\r\n const d = this.osiloskopVerisi[i] / 128.0; // 128 = sessiz orta\r\n const y = (d * ortaY);\r\n if (i === 0) {\r\n ctx.moveTo(0, y);\r\n } else {\r\n ctx.lineTo(i * adim, y);\r\n }\r\n }\r\n ctx.strokeStyle = 'rgba(75, 249, 116, 0.15)';\r\n ctx.lineWidth = 6;\r\n ctx.stroke();\r\n\r\n // Ana çizgi\r\n ctx.beginPath();\r\n for (let i = 0; i < sayisi; i++) {\r\n const d = this.osiloskopVerisi[i] / 128.0;\r\n const y = (d * ortaY);\r\n if (i === 0) {\r\n ctx.moveTo(0, y);\r\n } else {\r\n ctx.lineTo(i * adim, y);\r\n }\r\n }\r\n const grad = ctx.createLinearGradient(0, 0, w, 0);\r\n grad.addColorStop(0, '#4bf974');\r\n grad.addColorStop(0.5, '#00e5ff');\r\n grad.addColorStop(1, '#4bf974');\r\n ctx.strokeStyle = grad;\r\n ctx.lineWidth = 1.5;\r\n ctx.shadowColor = '#4bf974';\r\n ctx.shadowBlur = 8;\r\n ctx.stroke();\r\n ctx.shadowBlur = 0;\r\n }\r\n\r\n // Sesi yazıya çevir (Whisper STT) - verbose_json ile altyazı segmentleri alır\r\n async yaziyCevir(panelGoster: boolean = true) {\r\n if (this.transkriptYukleniyor || !this.url) return;\r\n\r\n this.transkriptYukleniyor = true;\r\n this.transkriptMetni = '';\r\n if (panelGoster) this.transkriptGoster = true;\r\n this.altyaziSegmentleri = [];\r\n this.aktifAltyazi = '';\r\n this.CD.detectChanges();\r\n\r\n try {\r\n // Ses dosyasını fetch ile indir\r\n const response = await fetch(this.url);\r\n const blob = await response.blob();\r\n\r\n // FormData oluştur\r\n const formData = new FormData();\r\n formData.append('file', blob, 'audio.wav');\r\n formData.append('language', 'tr'); // Türkçe varsayılan\r\n\r\n // Backend'e gönder (FikoYTCtx uyumlu: {durum, sonuc} formatında döner)\r\n const baseUrl = this.sunucuUrl || `https://${window.location.hostname}:9000`;\r\n const sonuc = await fetch(`${baseUrl}/fapiv1/whisper/transkript`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n\r\n if (!sonuc.ok) {\r\n const hata = await sonuc.json().catch(() => ({}));\r\n this.transkriptMetni = `Hata: ${hata?.durum?.mesaj || hata?.hata || sonuc.statusText}`;\r\n } else {\r\n const cevap = await sonuc.json();\r\n // FikoYTCtx formatı: { durum: {...}, sonuc: { text, segments, ... } }\r\n const veri = cevap.sonuc || cevap;\r\n\r\n if (veri?.segments && veri.segments.length > 0) {\r\n // verbose_json: segment'leri altyazı olarak kaydet\r\n this.altyaziSegmentleri = veri.segments.map((s: any) => ({\r\n start: s.start,\r\n end: s.end,\r\n text: (s.text || '').trim()\r\n }));\r\n this.transkriptMetni = veri.text || this.altyaziSegmentleri.map(s => s.text).join(' ');\r\n this.altyaziAktif = true;\r\n } else {\r\n this.transkriptMetni = veri?.text || 'Metin bulunamadı';\r\n }\r\n this.transkriptHazir.emit({ metin: this.transkriptMetni, segmentler: this.altyaziSegmentleri });\r\n }\r\n } catch (e) {\r\n this.transkriptMetni = `Bağlantı hatası: ${e.message}`;\r\n }\r\n\r\n this.transkriptYukleniyor = false;\r\n this.CD.detectChanges();\r\n }\r\n\r\n // Altyazı toggle (açık/kapalı)\r\n altyaziToggle() {\r\n if (this.altyaziSegmentleri.length === 0 && !this.transkriptMetni) {\r\n // MongoDB'den mevcut transkript VE segmentler varsa Whisper'a gitme\r\n if (this.mevcutTranskript && this.mevcutSegmentler?.length > 0) {\r\n this.transkriptMetni = this.mevcutTranskript;\r\n this.altyaziSegmentleri = this.mevcutSegmentler;\r\n this.altyaziAktif = true;\r\n this.CD.detectChanges();\r\n return;\r\n }\r\n // Segmentler yoksa (eski kayıt veya hiç yapılmamış) tekrar Whisper'a gönder\r\n this.yaziyCevir(false);\r\n return;\r\n }\r\n this.altyaziAktif = !this.altyaziAktif;\r\n if (!this.altyaziAktif) {\r\n this.aktifAltyazi = '';\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n // ontimeupdate'de çağrılır - aktif zamana göre altyazıyı günceller\r\n private altyaziGuncelle() {\r\n if (!this.altyaziAktif || this.altyaziSegmentleri.length === 0) return;\r\n\r\n const t = this.aktifZaman;\r\n const segment = this.altyaziSegmentleri.find(s => t >= s.start && t <= s.end);\r\n const yeniMetin = segment ? segment.text : '';\r\n\r\n if (yeniMetin !== this.aktifAltyazi) {\r\n this.aktifAltyazi = yeniMetin;\r\n }\r\n }\r\n\r\n transkriptKapat() {\r\n this.transkriptGoster = false;\r\n this.CD.detectChanges();\r\n }\r\n\r\n zamanKaydirildi($event: any) {\r\n if (this.sesObje) {\r\n this.sesObje.currentTime = $event.target.value;\r\n this.zamanKaydiriliyor = false;\r\n }\r\n }\r\n\r\n sessizTiklandi() {\r\n this.sessiz = !this.sessiz;\r\n if (this.sesObje) {\r\n this.sesObje.volume = this.sessiz ? 0 : this.sesSeviyesi;\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n sesSeviyesiDegisti($event: any) {\r\n this.sesSeviyesi = parseFloat($event.target.value);\r\n this.sessiz = this.sesSeviyesi === 0;\r\n if (this.sesObje) {\r\n this.sesObje.volume = this.sesSeviyesi;\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.animFrameId) {\r\n cancelAnimationFrame(this.animFrameId);\r\n this.animFrameId = null;\r\n }\r\n // AudioContext kaynaklarini serbest birak\r\n if (this.sourceNode) {\r\n try { this.sourceNode.disconnect(); } catch (_) {}\r\n this.sourceNode = null;\r\n }\r\n if (this.analyser) {\r\n try { this.analyser.disconnect(); } catch (_) {}\r\n this.analyser = null;\r\n }\r\n if (this.audioContext) {\r\n this.audioContext.close().catch(() => {});\r\n this.audioContext = null;\r\n }\r\n // Ses objesini temizle\r\n if (this.sesObje) {\r\n this.sesObje.pause();\r\n this.sesObje.removeAttribute('src');\r\n this.sesObje.load(); // buffer'lari serbest birakir\r\n this.sesObje = null;\r\n }\r\n // Spectrum verilerini temizle\r\n this.spectrumVerisi = null;\r\n this.osiloskopVerisi = null;\r\n this.parcaciklar = [];\r\n }\r\n}\r\n","/**\r\n * FikoScreenshot - 3D Viewport Screenshot & Video Export Servisi\r\n * PNG/JPEG formatında yüksek çözünürlüklü render export\r\n * WebM formatında video kayıt\r\n *\r\n * @author FikoYT\r\n * @version 1.1.0\r\n */\r\n\r\nimport * as THREE from 'three';\r\n\r\n// ========== VIDEO RECORDING ==========\r\n\r\nexport interface VideoOptions {\r\n /** Video formatı */\r\n format: 'webm' | 'mp4';\r\n /** FPS (kare/saniye) */\r\n fps: 30 | 60;\r\n /** Video kalitesi (bitrate Mbps) */\r\n quality: 'low' | 'medium' | 'high';\r\n /** Maksimum süre (saniye, 0 = sınırsız) */\r\n maxDuration: number;\r\n /**\r\n * Kaynak tipi:\r\n * - canvas: Sadece 3D WebGL canvas\r\n * - viewport: 3D + HTML dialoglar (composite)\r\n * - screen: Tüm ekran (getDisplayMedia ile)\r\n */\r\n source?: 'canvas' | 'viewport' | 'screen';\r\n /** Özel imleç göster (viewport modunda) */\r\n showCursor?: boolean;\r\n}\r\n\r\nexport interface VideoResult {\r\n blob: Blob;\r\n url: string;\r\n duration: number;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport interface ScreenshotOptions {\r\n /** Export formatı */\r\n format: 'png' | 'jpeg';\r\n /** Çözünürlük çarpanı (1x, 2x, 4x) */\r\n scale: 1 | 2 | 4;\r\n /** Transparan arka plan (sadece PNG için) */\r\n transparent: boolean;\r\n /** Annotation'ları dahil et */\r\n includeAnnotations: boolean;\r\n /** JPEG kalitesi (0-1) */\r\n quality: number;\r\n /** Arkaplan rengi (hex) */\r\n backgroundColor?: string;\r\n /** Dosya adı (opsiyonel) */\r\n filename?: string;\r\n}\r\n\r\nexport interface ScreenshotResult {\r\n blob: Blob;\r\n dataUrl: string;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport class FikoScreenshot {\r\n private renderer: THREE.WebGLRenderer;\r\n private scene: THREE.Scene;\r\n private camera: THREE.Camera;\r\n\r\n constructor(\r\n renderer: THREE.WebGLRenderer,\r\n scene: THREE.Scene,\r\n camera: THREE.Camera\r\n ) {\r\n this.renderer = renderer;\r\n this.scene = scene;\r\n this.camera = camera;\r\n }\r\n\r\n /**\r\n * Renderer, scene ve camera'yı güncelle\r\n */\r\n guncelle(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera): void {\r\n this.renderer = renderer;\r\n this.scene = scene;\r\n this.camera = camera;\r\n }\r\n\r\n /**\r\n * Screenshot al ve Blob olarak döndür\r\n */\r\n async capture(options: Partial = {}): Promise {\r\n const opts: ScreenshotOptions = {\r\n format: options.format ?? 'png',\r\n scale: options.scale ?? 1,\r\n transparent: options.transparent ?? false,\r\n includeAnnotations: options.includeAnnotations ?? true,\r\n quality: options.quality ?? 0.92,\r\n backgroundColor: options.backgroundColor ?? '#1a1a2e',\r\n filename: options.filename,\r\n };\r\n\r\n // Mevcut renderer boyutunu al\r\n const currentSize = new THREE.Vector2();\r\n this.renderer.getSize(currentSize);\r\n\r\n // Hedef boyut\r\n const targetWidth = Math.floor(currentSize.x * opts.scale);\r\n const targetHeight = Math.floor(currentSize.y * opts.scale);\r\n\r\n // Geçici canvas oluştur (yüksek çözünürlük için)\r\n const tempCanvas = document.createElement('canvas');\r\n tempCanvas.width = targetWidth;\r\n tempCanvas.height = targetHeight;\r\n\r\n // Mevcut renderer ayarlarını sakla\r\n const originalPixelRatio = this.renderer.getPixelRatio();\r\n const originalClearColor = this.renderer.getClearColor(new THREE.Color());\r\n const originalClearAlpha = this.renderer.getClearAlpha();\r\n const originalSceneBackground = this.scene.background;\r\n\r\n // Arka plan ayarı\r\n if (opts.transparent && opts.format === 'png') {\r\n // Transparan için hem renderer hem scene arka planını kaldır\r\n this.renderer.setClearColor(0x000000, 0);\r\n this.scene.background = null;\r\n } else if (opts.backgroundColor) {\r\n this.renderer.setClearColor(new THREE.Color(opts.backgroundColor), 1);\r\n }\r\n\r\n // Yüksek çözünürlük için renderer'ı ayarla\r\n this.renderer.setPixelRatio(opts.scale);\r\n this.renderer.setSize(targetWidth / opts.scale, targetHeight / opts.scale);\r\n\r\n // Kamerayı güncelle\r\n if (this.camera instanceof THREE.PerspectiveCamera) {\r\n this.camera.aspect = targetWidth / targetHeight;\r\n this.camera.updateProjectionMatrix();\r\n } else if (this.camera instanceof THREE.OrthographicCamera) {\r\n // Ortho kamera için aspect güncelle\r\n const aspect = targetWidth / targetHeight;\r\n const frustumHeight = this.camera.top - this.camera.bottom;\r\n this.camera.left = -frustumHeight * aspect / 2;\r\n this.camera.right = frustumHeight * aspect / 2;\r\n this.camera.updateProjectionMatrix();\r\n }\r\n\r\n // Sahneyi render et\r\n this.renderer.render(this.scene, this.camera);\r\n\r\n // Canvas'tan image data al\r\n const gl = this.renderer.getContext();\r\n const pixels = new Uint8Array(targetWidth * targetHeight * 4);\r\n gl.readPixels(0, 0, targetWidth, targetHeight, gl.RGBA, gl.UNSIGNED_BYTE, pixels);\r\n\r\n // Geçici canvas'a çiz (WebGL y-flip düzeltmesi)\r\n const ctx = tempCanvas.getContext('2d')!;\r\n const imageData = ctx.createImageData(targetWidth, targetHeight);\r\n\r\n // Y eksenini çevir (WebGL koordinat sistemi farklı)\r\n for (let y = 0; y < targetHeight; y++) {\r\n for (let x = 0; x < targetWidth; x++) {\r\n const srcIdx = ((targetHeight - y - 1) * targetWidth + x) * 4;\r\n const dstIdx = (y * targetWidth + x) * 4;\r\n imageData.data[dstIdx] = pixels[srcIdx];\r\n imageData.data[dstIdx + 1] = pixels[srcIdx + 1];\r\n imageData.data[dstIdx + 2] = pixels[srcIdx + 2];\r\n imageData.data[dstIdx + 3] = pixels[srcIdx + 3];\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0);\r\n\r\n // Orijinal ayarları geri yükle\r\n this.renderer.setPixelRatio(originalPixelRatio);\r\n this.renderer.setSize(currentSize.x, currentSize.y);\r\n this.renderer.setClearColor(originalClearColor, originalClearAlpha);\r\n this.scene.background = originalSceneBackground;\r\n\r\n // Kamerayı orijinal aspect'e döndür\r\n if (this.camera instanceof THREE.PerspectiveCamera) {\r\n this.camera.aspect = currentSize.x / currentSize.y;\r\n this.camera.updateProjectionMatrix();\r\n }\r\n\r\n // Blob oluştur\r\n const mimeType = opts.format === 'png' ? 'image/png' : 'image/jpeg';\r\n const dataUrl = tempCanvas.toDataURL(mimeType, opts.quality);\r\n\r\n const blob = await new Promise((resolve) => {\r\n tempCanvas.toBlob((b) => resolve(b!), mimeType, opts.quality);\r\n });\r\n\r\n return {\r\n blob,\r\n dataUrl,\r\n width: targetWidth,\r\n height: targetHeight,\r\n };\r\n }\r\n\r\n /**\r\n * Hızlı screenshot - mevcut viewport'u direkt export et\r\n */\r\n async captureQuick(): Promise {\r\n // preserveDrawingBuffer kontrolü\r\n const domElement = this.renderer.domElement;\r\n const dataUrl = domElement.toDataURL('image/png');\r\n\r\n const blob = await fetch(dataUrl).then(r => r.blob());\r\n\r\n return {\r\n blob,\r\n dataUrl,\r\n width: domElement.width,\r\n height: domElement.height,\r\n };\r\n }\r\n\r\n /**\r\n * Screenshot'ı indir\r\n */\r\n async download(options: Partial = {}): Promise {\r\n const result = await this.capture(options);\r\n\r\n const filename = options.filename ?? this.generateFilename(options.format ?? 'png');\r\n\r\n // Download link oluştur\r\n const link = document.createElement('a');\r\n link.href = result.dataUrl;\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n /**\r\n * Screenshot'ı clipboard'a kopyala\r\n */\r\n async copyToClipboard(options: Partial = {}): Promise {\r\n try {\r\n const result = await this.capture({ ...options, format: 'png' });\r\n\r\n await navigator.clipboard.write([\r\n new ClipboardItem({\r\n 'image/png': result.blob\r\n })\r\n ]);\r\n\r\n return true;\r\n } catch (error) {\r\n console.error('Clipboard kopyalama hatası:', error);\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Dosya adı oluştur\r\n */\r\n private generateFilename(format: 'png' | 'jpeg' | 'webm'): string {\r\n const now = new Date();\r\n const timestamp = now.toISOString().replace(/[:.]/g, '-').slice(0, 19);\r\n const ext = format === 'jpeg' ? 'jpg' : format;\r\n return `FikoYT-3D-${timestamp}.${ext}`;\r\n }\r\n\r\n // ========== VIDEO RECORDING ==========\r\n\r\n private mediaRecorder: MediaRecorder | null = null;\r\n private recordedChunks: Blob[] = [];\r\n private recordingStartTime: number = 0;\r\n private isRecording: boolean = false;\r\n private maxDurationTimeout: number | null = null;\r\n private screenStream: MediaStream | null = null;\r\n\r\n // Viewport (composite) kayıt için\r\n private compositeCanvas: HTMLCanvasElement | null = null;\r\n private compositeCtx: CanvasRenderingContext2D | null = null;\r\n private viewportAnimationId: number | null = null;\r\n private viewportContainer: HTMLElement | null = null;\r\n private viewportShowCursor: boolean = false;\r\n private lastMouseX: number = 0;\r\n private lastMouseY: number = 0;\r\n private mouseMoveHandler: ((e: MouseEvent) => void) | null = null;\r\n\r\n /**\r\n * Video kaydını başlat (Canvas modu - senkron)\r\n */\r\n startRecording(options: Partial = {}): boolean {\r\n if (this.isRecording) {\r\n console.warn('Kayıt zaten devam ediyor');\r\n return false;\r\n }\r\n\r\n const opts: VideoOptions = {\r\n format: options.format ?? 'webm',\r\n fps: options.fps ?? 30,\r\n quality: options.quality ?? 'medium',\r\n maxDuration: options.maxDuration ?? 0,\r\n source: options.source ?? 'canvas',\r\n showCursor: options.showCursor ?? false,\r\n };\r\n\r\n // Ekran modu için async metod kullan\r\n if (opts.source === 'screen') {\r\n console.warn('Ekran modu için startScreenRecording() kullanın');\r\n return false;\r\n }\r\n\r\n // Bitrate hesapla\r\n const bitrateMap = { low: 2500000, medium: 5000000, high: 10000000 };\r\n const bitrate = bitrateMap[opts.quality];\r\n\r\n // Canvas stream al\r\n const canvas = this.renderer.domElement;\r\n const stream = canvas.captureStream(opts.fps);\r\n\r\n return this.initRecorder(stream, bitrate, opts.maxDuration);\r\n }\r\n\r\n /**\r\n * Ekran kaydını başlat (imleç + dialoglar dahil)\r\n * @returns Promise - Başarılı mı\r\n */\r\n async startScreenRecording(options: Partial = {}): Promise {\r\n if (this.isRecording) {\r\n console.warn('Kayıt zaten devam ediyor');\r\n return false;\r\n }\r\n\r\n const opts: VideoOptions = {\r\n format: options.format ?? 'webm',\r\n fps: options.fps ?? 30,\r\n quality: options.quality ?? 'medium',\r\n maxDuration: options.maxDuration ?? 0,\r\n source: 'screen',\r\n showCursor: true,\r\n };\r\n\r\n // Bitrate hesapla\r\n const bitrateMap = { low: 2500000, medium: 5000000, high: 10000000 };\r\n const bitrate = bitrateMap[opts.quality];\r\n\r\n try {\r\n // Ekran yakalama izni iste\r\n // cursor seçeneği DisplayMediaStreamOptions'da var ama TypeScript tip tanımlarında eksik\r\n this.screenStream = await navigator.mediaDevices.getDisplayMedia({\r\n video: {\r\n frameRate: opts.fps,\r\n } as MediaTrackConstraints,\r\n audio: false,\r\n } as DisplayMediaStreamOptions);\r\n\r\n // Kullanıcı paylaşımı durdurursa\r\n this.screenStream.getVideoTracks()[0].onended = () => {\r\n if (this.isRecording) {\r\n this.stopRecording();\r\n }\r\n };\r\n\r\n return this.initRecorder(this.screenStream, bitrate, opts.maxDuration);\r\n } catch (e) {\r\n console.error('Ekran yakalama hatası:', e);\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Viewport kaydını başlat (3D + HTML dialoglar composite)\r\n * Canvas üzerine HTML overlay'ları da çizer\r\n * @returns boolean - Başarılı mı\r\n */\r\n startViewportRecording(options: Partial = {}): boolean {\r\n if (this.isRecording) {\r\n console.warn('Kayıt zaten devam ediyor');\r\n return false;\r\n }\r\n\r\n const opts: VideoOptions = {\r\n format: options.format ?? 'webm',\r\n fps: options.fps ?? 30,\r\n quality: options.quality ?? 'medium',\r\n maxDuration: options.maxDuration ?? 0,\r\n source: 'viewport',\r\n showCursor: options.showCursor ?? true,\r\n };\r\n\r\n // Bitrate hesapla\r\n const bitrateMap = { low: 2500000, medium: 5000000, high: 10000000 };\r\n const bitrate = bitrateMap[opts.quality];\r\n\r\n // 3D canvas'ın parent container'ını bul\r\n const canvas3D = this.renderer.domElement;\r\n this.viewportContainer = canvas3D.parentElement;\r\n\r\n if (!this.viewportContainer) {\r\n console.error('Viewport container bulunamadı');\r\n return false;\r\n }\r\n\r\n // Composite canvas oluştur\r\n const containerRect = this.viewportContainer.getBoundingClientRect();\r\n this.compositeCanvas = document.createElement('canvas');\r\n this.compositeCanvas.width = containerRect.width * window.devicePixelRatio;\r\n this.compositeCanvas.height = containerRect.height * window.devicePixelRatio;\r\n this.compositeCtx = this.compositeCanvas.getContext('2d')!;\r\n\r\n // İmleç takibi (document seviyesinde)\r\n this.viewportShowCursor = opts.showCursor ?? true;\r\n this.lastMouseX = -100; // Başlangıçta görünmez\r\n this.lastMouseY = -100;\r\n\r\n // Mouse pozisyonunu sürekli takip et\r\n this.mouseMoveHandler = (e: MouseEvent) => {\r\n if (!this.viewportContainer) return;\r\n const rect = this.viewportContainer.getBoundingClientRect();\r\n const dpr = window.devicePixelRatio || 1;\r\n // Viewport-relative koordinatlar\r\n this.lastMouseX = (e.clientX - rect.left) * dpr;\r\n this.lastMouseY = (e.clientY - rect.top) * dpr;\r\n };\r\n document.addEventListener('mousemove', this.mouseMoveHandler, { passive: true });\r\n\r\n // Composite canvas'tan stream al\r\n const stream = this.compositeCanvas.captureStream(opts.fps);\r\n\r\n // Frame render döngüsü başlat\r\n const frameInterval = 1000 / opts.fps;\r\n let lastFrameTime = 0;\r\n\r\n const renderFrame = (timestamp: number) => {\r\n if (!this.isRecording) return;\r\n\r\n if (timestamp - lastFrameTime >= frameInterval) {\r\n this.renderViewportFrame();\r\n lastFrameTime = timestamp;\r\n }\r\n\r\n this.viewportAnimationId = requestAnimationFrame(renderFrame);\r\n };\r\n\r\n // Recorder başlat\r\n const success = this.initRecorder(stream, bitrate, opts.maxDuration);\r\n\r\n if (success) {\r\n this.viewportAnimationId = requestAnimationFrame(renderFrame);\r\n }\r\n\r\n return success;\r\n }\r\n\r\n /**\r\n * Viewport frame'ini composite canvas'a render et\r\n */\r\n private renderViewportFrame(): void {\r\n if (!this.compositeCanvas || !this.compositeCtx || !this.viewportContainer) return;\r\n\r\n const ctx = this.compositeCtx;\r\n const canvas3D = this.renderer.domElement;\r\n const containerRect = this.viewportContainer.getBoundingClientRect();\r\n const dpr = window.devicePixelRatio;\r\n\r\n // Canvas'ı temizle\r\n ctx.clearRect(0, 0, this.compositeCanvas.width, this.compositeCanvas.height);\r\n\r\n // 1. 3D Canvas'ı çiz - Önce sahneyi tekrar renderla\r\n this.renderer.render(this.scene, this.camera);\r\n\r\n // WebGL'den pixel oku ve çiz (preserveDrawingBuffer olmadan da çalışır)\r\n const gl = this.renderer.getContext();\r\n const w = canvas3D.width;\r\n const h = canvas3D.height;\r\n\r\n // Pixel verisi oku\r\n const pixels = new Uint8Array(w * h * 4);\r\n gl.readPixels(0, 0, w, h, gl.RGBA, gl.UNSIGNED_BYTE, pixels);\r\n\r\n // Geçici canvas'a çevir (Y-flip düzeltmesi)\r\n const tempCanvas = document.createElement('canvas');\r\n tempCanvas.width = w;\r\n tempCanvas.height = h;\r\n const tempCtx = tempCanvas.getContext('2d')!;\r\n const imageData = tempCtx.createImageData(w, h);\r\n\r\n // Y eksenini çevir (WebGL koordinat sistemi farklı)\r\n for (let y = 0; y < h; y++) {\r\n for (let x = 0; x < w; x++) {\r\n const srcIdx = ((h - y - 1) * w + x) * 4;\r\n const dstIdx = (y * w + x) * 4;\r\n imageData.data[dstIdx] = pixels[srcIdx];\r\n imageData.data[dstIdx + 1] = pixels[srcIdx + 1];\r\n imageData.data[dstIdx + 2] = pixels[srcIdx + 2];\r\n imageData.data[dstIdx + 3] = pixels[srcIdx + 3];\r\n }\r\n }\r\n tempCtx.putImageData(imageData, 0, 0);\r\n\r\n // Composite canvas'a çiz\r\n ctx.drawImage(tempCanvas, 0, 0, w, h, 0, 0, this.compositeCanvas.width, this.compositeCanvas.height);\r\n\r\n // 2. Semantic UI Modal Dialog'ları çiz (.ui.modal.visible veya .ui.modal.active)\r\n const modals = document.querySelectorAll('.ui.modal.visible, .ui.modal.active, .ui.modal:not(.hidden)');\r\n modals.forEach((modal) => {\r\n const el = modal as HTMLElement;\r\n // Görünür mü kontrol et\r\n const style = window.getComputedStyle(el);\r\n if (style.display !== 'none' && style.visibility !== 'hidden' && parseFloat(style.opacity) > 0) {\r\n this.drawSemanticModalToCanvas(el, containerRect, dpr);\r\n }\r\n });\r\n\r\n // 3. Toolbar'ları çiz (solAracCubugu, altAracCubugu)\r\n const toolbars = document.querySelectorAll('.solAracCubugu, .altAracCubugu');\r\n toolbars.forEach((toolbar) => {\r\n this.drawElementToCanvas(toolbar as HTMLElement, containerRect, dpr);\r\n });\r\n\r\n // 4. İmleç çiz (viewport içindeyse)\r\n if (this.viewportShowCursor) {\r\n const cw = this.compositeCanvas.width;\r\n const ch = this.compositeCanvas.height;\r\n // Viewport içinde mi kontrol et\r\n if (this.lastMouseX >= 0 && this.lastMouseX <= cw &&\r\n this.lastMouseY >= 0 && this.lastMouseY <= ch) {\r\n this.drawCursor(ctx, this.lastMouseX, this.lastMouseY);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Semantic UI Modal'ı canvas'a çiz (saydamlık destekli)\r\n */\r\n private drawSemanticModalToCanvas(modal: HTMLElement, containerRect: DOMRect, dpr: number): void {\r\n if (!this.compositeCtx) return;\r\n\r\n const ctx = this.compositeCtx;\r\n const modalRect = modal.getBoundingClientRect();\r\n\r\n // Modal ekranda görünür mü?\r\n if (modalRect.width === 0 || modalRect.height === 0) return;\r\n\r\n // Viewport'a göre pozisyon hesapla\r\n const x = (modalRect.left - containerRect.left) * dpr;\r\n const y = (modalRect.top - containerRect.top) * dpr;\r\n const w = modalRect.width * dpr;\r\n const h = modalRect.height * dpr;\r\n\r\n // Ekran dışındaysa çizme\r\n if (x + w < 0 || x > this.compositeCanvas!.width ||\r\n y + h < 0 || y > this.compositeCanvas!.height) return;\r\n\r\n ctx.save();\r\n\r\n // CSS opacity değerini al ve uygula\r\n const computedStyle = window.getComputedStyle(modal);\r\n const cssOpacity = parseFloat(computedStyle.opacity) || 1;\r\n ctx.globalAlpha = cssOpacity;\r\n\r\n // Gölge\r\n ctx.shadowColor = 'rgba(0, 0, 0, 0.6)';\r\n ctx.shadowBlur = 20 * dpr;\r\n ctx.shadowOffsetX = 0;\r\n ctx.shadowOffsetY = 5 * dpr;\r\n\r\n // Modal arka planı - saydamlık ile\r\n let bgColor = computedStyle.backgroundColor;\r\n if (!bgColor || bgColor === 'rgba(0, 0, 0, 0)' || bgColor === 'transparent') {\r\n bgColor = 'rgba(0, 40, 60, 0.85)'; // Varsayılan yarı saydam\r\n }\r\n // Eğer solid renk ise yarı saydam yap\r\n if (bgColor.startsWith('rgb(')) {\r\n bgColor = bgColor.replace('rgb(', 'rgba(').replace(')', ', 0.9)');\r\n }\r\n\r\n ctx.fillStyle = bgColor;\r\n ctx.beginPath();\r\n ctx.roundRect(x, y, w, h, 8 * dpr);\r\n ctx.fill();\r\n\r\n // Gölgeyi kapat\r\n ctx.shadowColor = 'transparent';\r\n\r\n // Cam efekti için üst katman (hafif gradient)\r\n const gradient = ctx.createLinearGradient(x, y, x, y + h);\r\n gradient.addColorStop(0, 'rgba(255, 255, 255, 0.08)');\r\n gradient.addColorStop(0.5, 'rgba(255, 255, 255, 0.02)');\r\n gradient.addColorStop(1, 'rgba(0, 0, 0, 0.1)');\r\n ctx.fillStyle = gradient;\r\n ctx.fill();\r\n\r\n // Kenarlık (parlak)\r\n ctx.strokeStyle = 'rgba(0, 200, 220, 0.6)';\r\n ctx.lineWidth = 1.5 * dpr;\r\n ctx.stroke();\r\n\r\n // Başlık çubuğu (.baslikMove veya .header)\r\n const header = modal.querySelector('.baslikMove, .header, [class*=\"baslik\"]') as HTMLElement;\r\n if (header) {\r\n const headerRect = header.getBoundingClientRect();\r\n const hx = (headerRect.left - containerRect.left) * dpr;\r\n const hy = (headerRect.top - containerRect.top) * dpr;\r\n const hw = headerRect.width * dpr;\r\n const hh = headerRect.height * dpr;\r\n\r\n // Başlık arka planı (biraz daha koyu)\r\n ctx.fillStyle = 'rgba(0, 50, 70, 0.95)';\r\n ctx.beginPath();\r\n ctx.roundRect(hx, hy, hw, hh, [8 * dpr, 8 * dpr, 0, 0]);\r\n ctx.fill();\r\n\r\n // Alt kenarlık\r\n ctx.strokeStyle = 'rgba(0, 180, 200, 0.4)';\r\n ctx.lineWidth = 1 * dpr;\r\n ctx.beginPath();\r\n ctx.moveTo(hx, hy + hh);\r\n ctx.lineTo(hx + hw, hy + hh);\r\n ctx.stroke();\r\n\r\n // Başlık metni\r\n const titleText = header.textContent?.trim() || '';\r\n if (titleText) {\r\n ctx.fillStyle = 'rgba(0, 230, 255, 1)';\r\n ctx.font = `bold ${13 * dpr}px Arial, sans-serif`;\r\n ctx.textBaseline = 'middle';\r\n ctx.fillText(titleText.substring(0, 30), hx + 12 * dpr, hy + hh / 2);\r\n }\r\n }\r\n\r\n // İçerik alanı - child elementleri recursive çiz\r\n this.drawModalContent(modal, containerRect, dpr);\r\n\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * Modal içeriğini çiz (input, button, label vb.)\r\n */\r\n private drawModalContent(modal: HTMLElement, containerRect: DOMRect, dpr: number): void {\r\n if (!this.compositeCtx) return;\r\n const ctx = this.compositeCtx;\r\n\r\n // Butonları çiz\r\n const buttons = modal.querySelectorAll('button, .button, .ui.button');\r\n buttons.forEach((btn) => {\r\n const el = btn as HTMLElement;\r\n const rect = el.getBoundingClientRect();\r\n if (rect.width === 0 || rect.height === 0) return;\r\n\r\n const bx = (rect.left - containerRect.left) * dpr;\r\n const by = (rect.top - containerRect.top) * dpr;\r\n const bw = rect.width * dpr;\r\n const bh = rect.height * dpr;\r\n\r\n const style = window.getComputedStyle(el);\r\n ctx.fillStyle = style.backgroundColor || '#2185d0';\r\n ctx.beginPath();\r\n ctx.roundRect(bx, by, bw, bh, 4 * dpr);\r\n ctx.fill();\r\n\r\n // Buton metni\r\n const text = el.textContent?.trim() || '';\r\n if (text && text.length < 20) {\r\n ctx.fillStyle = style.color || '#fff';\r\n ctx.font = `${11 * dpr}px Arial`;\r\n ctx.textBaseline = 'middle';\r\n ctx.textAlign = 'center';\r\n ctx.fillText(text, bx + bw / 2, by + bh / 2);\r\n ctx.textAlign = 'left';\r\n }\r\n });\r\n\r\n // Input/Select alanları\r\n const inputs = modal.querySelectorAll('input, select, textarea');\r\n inputs.forEach((inp) => {\r\n const el = inp as HTMLElement;\r\n const rect = el.getBoundingClientRect();\r\n if (rect.width === 0 || rect.height === 0) return;\r\n\r\n const ix = (rect.left - containerRect.left) * dpr;\r\n const iy = (rect.top - containerRect.top) * dpr;\r\n const iw = rect.width * dpr;\r\n const ih = rect.height * dpr;\r\n\r\n const style = window.getComputedStyle(el);\r\n ctx.fillStyle = style.backgroundColor || 'rgba(0,60,80,0.8)';\r\n ctx.strokeStyle = style.borderColor || 'rgba(0,200,220,0.4)';\r\n ctx.lineWidth = 1 * dpr;\r\n\r\n ctx.beginPath();\r\n ctx.roundRect(ix, iy, iw, ih, 3 * dpr);\r\n ctx.fill();\r\n ctx.stroke();\r\n\r\n // Input değeri veya placeholder\r\n const value = (el as HTMLInputElement).value || (el as HTMLInputElement).placeholder || '';\r\n if (value) {\r\n ctx.fillStyle = style.color || '#fff';\r\n ctx.font = `${10 * dpr}px Arial`;\r\n ctx.textBaseline = 'middle';\r\n ctx.fillText(value.substring(0, 25), ix + 6 * dpr, iy + ih / 2);\r\n }\r\n });\r\n\r\n // Label'lar\r\n const labels = modal.querySelectorAll('label, .label');\r\n labels.forEach((lbl) => {\r\n const el = lbl as HTMLElement;\r\n const rect = el.getBoundingClientRect();\r\n if (rect.width === 0 || rect.height === 0) return;\r\n\r\n const lx = (rect.left - containerRect.left) * dpr;\r\n const ly = (rect.top - containerRect.top) * dpr;\r\n\r\n const style = window.getComputedStyle(el);\r\n const text = el.textContent?.trim() || '';\r\n if (text) {\r\n ctx.fillStyle = style.color || 'rgba(0,220,240,0.9)';\r\n ctx.font = `${10 * dpr}px Arial`;\r\n ctx.textBaseline = 'top';\r\n ctx.fillText(text.substring(0, 30), lx, ly);\r\n }\r\n });\r\n\r\n // Progress bar / slider\r\n const sliders = modal.querySelectorAll('input[type=\"range\"], .progress, .slider');\r\n sliders.forEach((slider) => {\r\n const el = slider as HTMLElement;\r\n const rect = el.getBoundingClientRect();\r\n if (rect.width === 0 || rect.height === 0) return;\r\n\r\n const sx = (rect.left - containerRect.left) * dpr;\r\n const sy = (rect.top - containerRect.top) * dpr;\r\n const sw = rect.width * dpr;\r\n const sh = rect.height * dpr;\r\n\r\n // Track\r\n ctx.fillStyle = 'rgba(0,60,80,0.6)';\r\n ctx.beginPath();\r\n ctx.roundRect(sx, sy + sh / 2 - 2 * dpr, sw, 4 * dpr, 2 * dpr);\r\n ctx.fill();\r\n\r\n // Value\r\n const value = parseFloat((el as HTMLInputElement).value) || 50;\r\n const max = parseFloat((el as HTMLInputElement).max) || 100;\r\n const fillWidth = (value / max) * sw;\r\n ctx.fillStyle = 'rgba(0,200,220,0.8)';\r\n ctx.beginPath();\r\n ctx.roundRect(sx, sy + sh / 2 - 2 * dpr, fillWidth, 4 * dpr, 2 * dpr);\r\n ctx.fill();\r\n });\r\n\r\n // Checkbox\r\n const checkboxes = modal.querySelectorAll('input[type=\"checkbox\"]');\r\n checkboxes.forEach((cb) => {\r\n const el = cb as HTMLInputElement;\r\n const rect = el.getBoundingClientRect();\r\n if (rect.width === 0 || rect.height === 0) return;\r\n\r\n const cx = (rect.left - containerRect.left) * dpr;\r\n const cy = (rect.top - containerRect.top) * dpr;\r\n const size = 14 * dpr;\r\n\r\n ctx.strokeStyle = 'rgba(0,200,220,0.6)';\r\n ctx.lineWidth = 1 * dpr;\r\n ctx.strokeRect(cx, cy, size, size);\r\n\r\n if (el.checked) {\r\n ctx.fillStyle = 'rgba(0,200,220,0.8)';\r\n ctx.fillRect(cx + 2 * dpr, cy + 2 * dpr, size - 4 * dpr, size - 4 * dpr);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Dialog'u canvas'a çiz\r\n */\r\n private drawDialogToCanvas(dialog: HTMLElement, containerRect: DOMRect, dpr: number): void {\r\n if (!this.compositeCtx || !dialog) return;\r\n\r\n const ctx = this.compositeCtx;\r\n const dialogRect = dialog.getBoundingClientRect();\r\n\r\n // Dialog viewport içinde mi kontrol et\r\n const isInsideViewport =\r\n dialogRect.right > containerRect.left &&\r\n dialogRect.left < containerRect.right &&\r\n dialogRect.bottom > containerRect.top &&\r\n dialogRect.top < containerRect.bottom;\r\n\r\n if (!isInsideViewport) return;\r\n\r\n // Viewport'a göre pozisyon hesapla\r\n const x = (dialogRect.left - containerRect.left) * dpr;\r\n const y = (dialogRect.top - containerRect.top) * dpr;\r\n const w = dialogRect.width * dpr;\r\n const h = dialogRect.height * dpr;\r\n\r\n // Dialog arka planı\r\n const computedStyle = window.getComputedStyle(dialog);\r\n const bgColor = computedStyle.backgroundColor || 'rgba(0, 40, 60, 0.95)';\r\n\r\n ctx.save();\r\n\r\n // Gölge\r\n ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';\r\n ctx.shadowBlur = 10 * dpr;\r\n ctx.shadowOffsetX = 2 * dpr;\r\n ctx.shadowOffsetY = 2 * dpr;\r\n\r\n // Arka plan\r\n ctx.fillStyle = bgColor;\r\n ctx.beginPath();\r\n ctx.roundRect(x, y, w, h, 6 * dpr);\r\n ctx.fill();\r\n\r\n // Kenarlık\r\n ctx.shadowColor = 'transparent';\r\n ctx.strokeStyle = 'rgba(0, 200, 220, 0.4)';\r\n ctx.lineWidth = 1 * dpr;\r\n ctx.stroke();\r\n\r\n // Başlık çubuğu\r\n const headerEl = dialog.querySelector('.dialog-header, .fiko-dialog-header, [class*=\"header\"]');\r\n if (headerEl) {\r\n const headerRect = headerEl.getBoundingClientRect();\r\n const headerH = headerRect.height * dpr;\r\n\r\n ctx.fillStyle = 'rgba(0, 60, 80, 0.8)';\r\n ctx.beginPath();\r\n ctx.roundRect(x, y, w, headerH, [6 * dpr, 6 * dpr, 0, 0]);\r\n ctx.fill();\r\n\r\n // Başlık metni\r\n const titleEl = headerEl.querySelector('.dialog-title, .fiko-dialog-title, span, div');\r\n if (titleEl) {\r\n ctx.fillStyle = 'rgba(0, 220, 240, 0.9)';\r\n ctx.font = `bold ${12 * dpr}px Arial`;\r\n ctx.textBaseline = 'middle';\r\n ctx.fillText(titleEl.textContent || 'Dialog', x + 10 * dpr, y + headerH / 2);\r\n }\r\n }\r\n\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * Genel HTML element'i canvas'a çiz (toolbar vb.)\r\n */\r\n private drawElementToCanvas(element: HTMLElement, containerRect: DOMRect, dpr: number): void {\r\n if (!this.compositeCtx || !element) return;\r\n\r\n const ctx = this.compositeCtx;\r\n const rect = element.getBoundingClientRect();\r\n\r\n // Viewport'a göre pozisyon\r\n const x = (rect.left - containerRect.left) * dpr;\r\n const y = (rect.top - containerRect.top) * dpr;\r\n const w = rect.width * dpr;\r\n const h = rect.height * dpr;\r\n\r\n // Arka plan\r\n const computedStyle = window.getComputedStyle(element);\r\n const bgColor = computedStyle.backgroundColor || 'rgba(0, 0, 0, 0.7)';\r\n\r\n ctx.save();\r\n ctx.fillStyle = bgColor;\r\n ctx.beginPath();\r\n ctx.roundRect(x, y, w, h, 4 * dpr);\r\n ctx.fill();\r\n\r\n // Butonları çiz\r\n const buttons = element.querySelectorAll('button');\r\n buttons.forEach((btn) => {\r\n const btnRect = btn.getBoundingClientRect();\r\n const bx = (btnRect.left - containerRect.left) * dpr;\r\n const by = (btnRect.top - containerRect.top) * dpr;\r\n const bw = btnRect.width * dpr;\r\n const bh = btnRect.height * dpr;\r\n\r\n const btnStyle = window.getComputedStyle(btn);\r\n ctx.fillStyle = btnStyle.backgroundColor || '#2185d0';\r\n ctx.beginPath();\r\n ctx.arc(bx + bw / 2, by + bh / 2, Math.min(bw, bh) / 2, 0, Math.PI * 2);\r\n ctx.fill();\r\n });\r\n\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * İmleç çiz (DPR ölçekli, daha görünür)\r\n */\r\n private drawCursor(ctx: CanvasRenderingContext2D, x: number, y: number): void {\r\n const dpr = window.devicePixelRatio || 1;\r\n const scale = dpr * 1.2; // Biraz daha büyük\r\n\r\n ctx.save();\r\n\r\n // Gölge efekti\r\n ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';\r\n ctx.shadowBlur = 4 * scale;\r\n ctx.shadowOffsetX = 2 * scale;\r\n ctx.shadowOffsetY = 2 * scale;\r\n\r\n // İmleç ok şekli (Windows tarzı)\r\n ctx.fillStyle = 'white';\r\n ctx.strokeStyle = 'black';\r\n ctx.lineWidth = 1.5 * scale;\r\n\r\n ctx.beginPath();\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x, y + 22 * scale);\r\n ctx.lineTo(x + 6 * scale, y + 17 * scale);\r\n ctx.lineTo(x + 10 * scale, y + 26 * scale);\r\n ctx.lineTo(x + 14 * scale, y + 24 * scale);\r\n ctx.lineTo(x + 10 * scale, y + 16 * scale);\r\n ctx.lineTo(x + 16 * scale, y + 16 * scale);\r\n ctx.closePath();\r\n\r\n ctx.fill();\r\n ctx.stroke();\r\n\r\n ctx.restore();\r\n }\r\n\r\n /**\r\n * MediaRecorder'ı başlat (ortak metod)\r\n */\r\n private initRecorder(stream: MediaStream, bitrate: number, maxDuration: number): boolean {\r\n // MediaRecorder oluştur\r\n const mimeType = 'video/webm;codecs=vp9';\r\n\r\n if (!MediaRecorder.isTypeSupported(mimeType)) {\r\n console.error('Bu format desteklenmiyor:', mimeType);\r\n return false;\r\n }\r\n\r\n try {\r\n this.mediaRecorder = new MediaRecorder(stream, {\r\n mimeType,\r\n videoBitsPerSecond: bitrate,\r\n });\r\n } catch (e) {\r\n console.error('MediaRecorder oluşturulamadı:', e);\r\n return false;\r\n }\r\n\r\n this.recordedChunks = [];\r\n this.recordingStartTime = Date.now();\r\n this.isRecording = true;\r\n\r\n this.mediaRecorder.ondataavailable = (e) => {\r\n if (e.data.size > 0) {\r\n this.recordedChunks.push(e.data);\r\n }\r\n };\r\n\r\n this.mediaRecorder.start(100); // Her 100ms'de veri al\r\n\r\n // Maksimum süre kontrolü\r\n if (maxDuration > 0) {\r\n this.maxDurationTimeout = window.setTimeout(() => {\r\n this.stopRecording();\r\n }, maxDuration * 1000);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Video kaydını durdur ve sonucu döndür\r\n */\r\n async stopRecording(): Promise {\r\n if (!this.isRecording || !this.mediaRecorder) {\r\n return null;\r\n }\r\n\r\n // Timeout temizle\r\n if (this.maxDurationTimeout) {\r\n clearTimeout(this.maxDurationTimeout);\r\n this.maxDurationTimeout = null;\r\n }\r\n\r\n return new Promise((resolve) => {\r\n this.mediaRecorder!.onstop = () => {\r\n const blob = new Blob(this.recordedChunks, { type: 'video/webm' });\r\n const url = URL.createObjectURL(blob);\r\n const duration = (Date.now() - this.recordingStartTime) / 1000;\r\n\r\n const canvas = this.renderer.domElement;\r\n\r\n // Ekran stream'i temizle\r\n if (this.screenStream) {\r\n this.screenStream.getTracks().forEach(track => track.stop());\r\n this.screenStream = null;\r\n }\r\n\r\n // Viewport kayıt temizliği\r\n if (this.viewportAnimationId) {\r\n cancelAnimationFrame(this.viewportAnimationId);\r\n this.viewportAnimationId = null;\r\n }\r\n if (this.mouseMoveHandler) {\r\n document.removeEventListener('mousemove', this.mouseMoveHandler);\r\n this.mouseMoveHandler = null;\r\n }\r\n this.compositeCanvas = null;\r\n this.compositeCtx = null;\r\n this.viewportContainer = null;\r\n this.lastMouseX = 0;\r\n this.lastMouseY = 0;\r\n\r\n this.isRecording = false;\r\n this.mediaRecorder = null;\r\n this.recordedChunks = [];\r\n\r\n resolve({\r\n blob,\r\n url,\r\n duration,\r\n width: canvas.width,\r\n height: canvas.height,\r\n });\r\n };\r\n\r\n this.mediaRecorder!.stop();\r\n });\r\n }\r\n\r\n /**\r\n * Kayıt durumu\r\n */\r\n dispose(): void {\r\n if (this.isRecording) {\r\n this.stopRecording();\r\n }\r\n if (this.mouseMoveHandler) {\r\n document.removeEventListener('mousemove', this.mouseMoveHandler);\r\n this.mouseMoveHandler = null;\r\n }\r\n if (this.viewportAnimationId) {\r\n cancelAnimationFrame(this.viewportAnimationId);\r\n this.viewportAnimationId = null;\r\n }\r\n if (this.screenStream) {\r\n this.screenStream.getTracks().forEach(track => track.stop());\r\n this.screenStream = null;\r\n }\r\n if (this.maxDurationTimeout) {\r\n clearTimeout(this.maxDurationTimeout);\r\n this.maxDurationTimeout = null;\r\n }\r\n this.compositeCanvas = null;\r\n this.compositeCtx = null;\r\n this.viewportContainer = null;\r\n this.recordedChunks = [];\r\n this.mediaRecorder = null;\r\n }\r\n\r\n getRecordingStatus(): { isRecording: boolean; duration: number } {\r\n return {\r\n isRecording: this.isRecording,\r\n duration: this.isRecording ? (Date.now() - this.recordingStartTime) / 1000 : 0,\r\n };\r\n }\r\n\r\n /**\r\n * Video indir\r\n */\r\n async downloadVideo(result: VideoResult, filename?: string): Promise {\r\n const name = filename ?? this.generateFilename('webm');\r\n const link = document.createElement('a');\r\n link.href = result.url;\r\n link.download = name;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ViewContainerRef,\r\n ComponentRef,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnDestroy,\r\n} from '@angular/core';\r\n\r\nimport { FikoScreenshot } from '../IFikoThreeJS/fiko-screenshot/FikoScreenshot';\r\n/**\r\n * 💪 STP/WRL Önizleme Kartı — kart listelerinde (icerikler vb.) STEP/WRL dosyaları için\r\n * hafif, lazy-instantiate 3D önizleme. Kullanıcı \"3D Önizle\" butonuna basana kadar\r\n * ne OCCT-WASM parse'ı ne de WebGL context açılmaz — bir listede çok sayıda 3D dosyalı\r\n * kart olsa bile tarayıcının WebGL context limitine (~8-16) takılmayız.\r\n *\r\n * Kapat butonuna basıldığında (ya da bileşen yok edildiğinde) alttaki gerçek\r\n * instance'ı destroy edilir → context serbest kalır.\r\n */\r\n@Component({\r\n selector: 'fikoyt-stp-onizleme-karti',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `\r\n
\r\n \r\n\r\n @if (!acik) {\r\n @if (fotografUrl) {\r\n \"Çekilen\r\n } @else if (resimUrl) {\r\n \"STP\r\n }\r\n \r\n } @else {\r\n \r\n\r\n @if (fotoCekebilir) {\r\n \r\n }\r\n\r\n @if (dosyaIndiriliyor) {\r\n
\r\n
\r\n
\r\n
\r\n {{ indirmeProgressMesaj }}\r\n
\r\n }\r\n }\r\n
\r\n `,\r\n styles: [`\r\n .stp-onizleme-kutu {\r\n position: absolute;\r\n width: 100%;\r\n background: #11161d;\r\n border-radius: 8px;\r\n overflow: hidden;\r\n top:0px;\r\n height:100%;\r\n }\r\n /* 3D açıkken parent yüksekliğini doldur */\r\n .stp-onizleme-kutu.acik {\r\n height: 100%;\r\n min-height: 180px;\r\n }\r\n /* Sunucudan gelen kalıcı görüntü — kapalı kartın zemini */\r\n .stp-sunucu-resmi {\r\n position: absolute;\r\n inset: 0;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: contain;\r\n background: #0d1217;\r\n z-index: 0;\r\n }\r\n .stp-onizle-buton {\r\n position: absolute;\r\n justify-content: center;\r\n gap: 6px;\r\n background: rgba(10, 132, 192, 0.08);\r\n border: 1px dashed rgba(10, 132, 192, 0.4);\r\n color: #0a84c0;\r\n cursor: pointer;\r\n font: 600 12px system-ui;\r\n z-index: 1;\r\n right: 0;\r\n bottom: 0;\r\n }\r\n .stp-onizle-buton:hover { background: rgba(10, 132, 192, 0.16); }\r\n .stp-onizle-buton.yukleniyor { cursor: wait; color: #7db0ff; }\r\n .stp-onizle-ikon { width: 22px; height: 22px; object-fit: contain; }\r\n .stp-kapat-buton {\r\n position: absolute;\r\n top: 6px;\r\n right: 6px;\r\n z-index: 5;\r\n width: 24px;\r\n height: 24px;\r\n border-radius: 50%;\r\n border: none;\r\n background: rgba(0, 0, 0, 0.55);\r\n color: #fff;\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n .stp-kapat-buton:hover { background: rgba(0, 0, 0, 0.8); }\r\n .stp-foto-cek-buton {\r\n position: absolute;\r\n bottom: 8px;\r\n right: 8px;\r\n z-index: 6;\r\n width: 34px;\r\n height: 34px;\r\n border-radius: 50%;\r\n border: none;\r\n background: rgba(0, 0, 0, 0.55);\r\n color: #fff;\r\n cursor: pointer;\r\n display: flex; align-items: center; justify-content: center;\r\n font-size: 16px;\r\n }\r\n .stp-foto-cek-buton:hover { background: rgba(0, 0, 0, 0.8); }\r\n .stp-foto-cek-buton.yukleniyor { cursor: wait; opacity: 0.7; }\r\n .stp-foto-kapak {\r\n position: absolute;\r\n bottom: 8px; left: 8px;\r\n z-index: 2;\r\n display: flex; align-items: center; gap: 6px;\r\n background: rgba(0, 0, 0, 0.6);\r\n border-radius: 6px;\r\n padding: 4px 8px;\r\n cursor: pointer; max-width: 60%;\r\n }\r\n .stp-foto-kapak:hover { background: rgba(0, 0, 0, 0.85); }\r\n .stp-foto-kapak img { width: 42px; height: 30px; object-fit: contain; border-radius: 4px; background: #000; }\r\n .stp-foto-kapak-bilgi { color: #e8e8e8; font: 500 11px system-ui; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\r\n\r\n /* Progress bar — STP yükleme durumu */\r\n .stp-progress-kutu {\r\n position: absolute;\r\n bottom: 12px;\r\n left: 12px;\r\n right: 12px;\r\n z-index: 10;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n }\r\n .stp-progress-bar {\r\n width: 100%;\r\n height: 6px;\r\n background: rgba(255, 255, 255, 0.1);\r\n border-radius: 3px;\r\n overflow: hidden;\r\n }\r\n .stp-progress-fill {\r\n height: 100%;\r\n background: linear-gradient(90deg, #0a84c0, #00d4ff);\r\n border-radius: 3px;\r\n transition: width 0.3s ease;\r\n }\r\n .stp-progress-mesaj {\r\n color: #a0c4d8;\r\n font: 500 11px system-ui;\r\n text-shadow: 0 1px 2px rgba(0,0,0,0.5);\r\n }\r\n `],\r\n})\r\nexport class FikoStpOnizlemeKartiComponent implements OnDestroy {\r\n /** Önizlenecek STEP/WRL dosyasının backend dosya id'si */\r\n @Input() dosyaId: string;\r\n /** Henüz sunucuya yüklenmemiş yerel dosya (paylaş kutusu, upload öncesi). Varsa dosyaId yerine\r\n * bu kullanılır — sunucudan indirme yapılmadan doğrudan tarayıcıdaki File 3D'ye yüklenir. */\r\n @Input() localDosya: File | null = null;\r\n /** Kalıcı çekilmiş görüntünün sunucu URL'i (varsa kapalı kartın zemininde gösterilir) */\r\n @Input() resimUrl: string | null = null;\r\n /** Fotoğraf çekme yalnızca kart sahibi veya süper yöneticide (buton + yükleme kapakçığı) */\r\n @Input() fotoCekebilir = false;\r\n /** Kapalıyken önizleme butonunun yüksekliği (px); açıkken parent'ı %100 doldurur */\r\n @Input() yukseklik: number = 220;\r\n /** Önizleme açıldı/kapandı — kart, çevresindeki diğer öğeleri gizleyip alanı 3D'ye bırakmak için dinleyebilir */\r\n @Output() acikDegisti = new EventEmitter();\r\n\r\n /** static:true — @if bloğunun dışında, her zaman DOM'da → ViewChild race condition yok */\r\n @ViewChild('konteynir', { read: ViewContainerRef, static: true }) konteynir: ViewContainerRef;\r\n\r\n acik = false;\r\n yukleniyor = false;\r\n private viewerRef: ComponentRef | null = null;\r\n\r\n /** Son çekilen fotoğrafın önizleme URL'i (varsa kapalıyken gösterilir, buton her zaman durur) */\r\n fotografUrl: string | null = null;\r\n /** Fotoğraf çekilirken kilit */\r\n fotoCekiliyor = false;\r\n /** Görsel sunucuya yüklenirken kilit */\r\n yukleniyorFoto = false;\r\n private fotografBlob: Blob | null = null;\r\n /** Çekilen görüntü blob'unu üst kata iletir; üst katman guncelleme isteğiyle multipart yükleyip ek.resimid yazar */\r\n @Output() fotografYuklendi = new EventEmitter();\r\n\r\n /** Dosya indirme ilerlemesi (0-100) */\r\n indirmeProgress = 0;\r\n /** Dosya indirme mesajı */\r\n indirmeProgressMesaj = '';\r\n /** Dosya indirme durumu */\r\n dosyaIndiriliyor = false;\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n async onizlemeAc(): Promise {\r\n if (this.acik || this.yukleniyor || (!this.dosyaId && !this.localDosya)) return;\r\n this.yukleniyor = true;\r\n this.cd.markForCheck();\r\n try {\r\n // Ağır bileşen (OCCT-WASM + fikoyt-3d motoru) yalnızca tıklandığında indirilir\r\n const { FikoYT3DComponent } = await import('../Fiko3DComponent/.component');\r\n this.viewerRef = this.konteynir.createComponent(FikoYT3DComponent);\r\n this.viewerRef.instance.gomulu = true;\r\n // localDosya varsa (henüz upload edilmemiş) öncelikli — sunucudan indirme atlanır\r\n this.viewerRef.instance.localDosya = this.localDosya;\r\n this.viewerRef.instance.dosyaId = this.dosyaId;\r\n\r\n // Dosya indirme progress event'ini dinle\r\n this.viewerRef.instance.dosyaIndirmeProgress.subscribe((event: { mesaj: string; progress: number }) => {\r\n this.indirmeProgress = event.progress;\r\n this.indirmeProgressMesaj = event.mesaj;\r\n this.dosyaIndiriliyor = event.progress < 100 && !event.mesaj.startsWith('Hata');\r\n this.cd.markForCheck();\r\n });\r\n\r\n this.acik = true;\r\n this.acikDegisti.emit(true);\r\n // 💪 FIX: Canvas DOM'a eklendikten sonra layout henüz hesaplanmamış olabilir.\r\n // Bir frame bekleyip resize tetikleyerek renderer'ın doğru boyutu okumasını sağla.\r\n requestAnimationFrame(() => {\r\n window.dispatchEvent(new Event('resize'));\r\n });\r\n } finally {\r\n this.yukleniyor = false;\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n onizlemeKapat(): void {\r\n this.viewerRef?.destroy();\r\n this.viewerRef = null;\r\n this.acik = false;\r\n this.acikDegisti.emit(false);\r\n // Progress durumunu sıfırla\r\n this.indirmeProgress = 0;\r\n this.indirmeProgressMesaj = '';\r\n this.dosyaIndiriliyor = false;\r\n this.cd.markForCheck();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.viewerRef?.destroy();\r\n this.viewerRef = null;\r\n }\r\n/** 3D viewport'tan screenshot alır, önizleme gösterir ve sunucuya kalıcı yükler */\r\n async fotoCek(): Promise {\r\n if (this.fotoCekiliyor || !this.fotoCekebilir) return;\r\n const viewer = this.viewerRef?.instance as any;\r\n const motor = viewer?.fikoThreejs;\r\n const renderer = motor?.sunucu;\r\n const sahne = motor?.sahneler?.[0];\r\n const kamera = motor?.aktifKamera;\r\n if (!renderer || !sahne || !kamera) {\r\n console.warn('[STP] 3D motor hazır değil');\r\n return;\r\n }\r\n this.fotoCekiliyor = true;\r\n this.cd.markForCheck();\r\n try {\r\n const ss = new FikoScreenshot(renderer, sahne, kamera);\r\n const sonuc = await ss.capture({ format: 'png', scale: 2, transparent: false });\r\n this.fotografBlob = sonuc.blob;\r\n this.fotografUrl = sonuc.dataUrl;\r\n // Yükleme üst katmanda yapılır: guncelleme isteği + multipart (ek.resimid deseni)\r\n this.fotografYuklendi.emit(sonuc.blob);\r\n } catch (e) {\r\n console.error('[STP] Fotoğraf çekme hatası:', e);\r\n } finally {\r\n this.fotoCekiliyor = false;\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n /** Çekilen görseli PNG olarak indirir */\r\n fotografKaydet(): void {\r\n if (!this.fotografUrl) return;\r\n const a = document.createElement('a');\r\n a.href = this.fotografUrl;\r\n a.download = 'stp-goruntu.png';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n\r\n /** Çekilen görseli panoya kopyalar */\r\n async fotografKopyala(): Promise {\r\n if (!this.fotografBlob) return;\r\n try {\r\n await navigator.clipboard.write([new ClipboardItem({ 'image/png': this.fotografBlob })]);\r\n } catch (e) {\r\n console.warn('[STP] Panoya kopyalanamadı:', e);\r\n }\r\n }\r\n}\r\n\r\n","@if((!aktifIcerik?.sifre!=null) && ( girilenSifre == aktifIcerik?.sifre)){\r\n\r\n\r\n\r\n\r\n\r\n\r\n@if (editMode && miSahip && !aktifIcerik?.ek) {\r\n\r\n
\r\n \r\n Resim, video veya dosya ekleyin\r\n
\r\n}\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Kart İçeriği İşleniyor
\r\n
\r\n
\r\n
İçerik %{{ aktifIcerik?.ek?.isleniyor?.yuzde }} İşlendi
\r\n \r\n \r\n
\r\n\r\n @if (aktifIcerik?.ek?.bilesen) {\r\n \r\n } @else {\r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ etiket.kisiIsmi }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ yuz.enYakinEslesme.ad?.charAt(0) || '?' }}\r\n {{ yuz.enYakinEslesme.ad }}\r\n {{ (1 - yuz.enYakinEslesme.mesafe) * 100 | number:'1.0-0' }}%\r\n \r\n \r\n ? Bilinmeyen\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{ yuz.enYakinEslesme.ad }}\r\n Bilinmeyen Kisi\r\n {{ yuz.eslesmeler.length }} olasi eslesme\r\n Eslesme bulunamadi\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{ eslesme.ad?.charAt(0) || '?' }}\r\n {{ eslesme.ad }}\r\n {{ (1 - eslesme.mesafe) * 100 | number:'1.0-0' }}%\r\n
\r\n
\r\n \r\n \r\n \r\n {{ sonuc.ismi }}\r\n Aile\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n @if (aktifIcerik?.ek?.orijinalBoyut) {\r\n {{okunabilirBoyut(aktifIcerik?.ek?.orijinalBoyut)}} → {{okunabilirBoyut(aktifIcerik?.ek?.boyut)}}\r\n } @else {\r\n {{okunabilirBoyut(aktifIcerik?.ek?.boyut)}}\r\n }\r\n \r\n\r\n \r\n Resim\r\n \r\n\r\n \r\n {{ aktifIcerik.ek.konum.yerIsmi }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \"İçerik\r\n\r\n \r\n\r\n\r\n \r\n\r\n {{okunabilirBoyut(aktifIcerik?.ek?.boyut)}}\r\n\r\n \r\n Video\r\n \r\n\r\n \r\n {{ aktifIcerik.ek.konum.yerIsmi }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n\r\n {{okunabilirBoyut(aktifIcerik?.ek?.boyut)}}\r\n\r\n \r\n Ses\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n @if (!stp3dAktif) {\r\n \r\n {{ aktifIcerik.ek.konum.yerIsmi }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n {{ aktifIcerik?.ek?.ismi }}\r\n
\r\n
\r\n {{okunabilirBoyut(aktifIcerik?.ek?.boyut)}}\r\n
\r\n \r\n
\r\n
\r\n }\r\n @if (aktifIcerik?.ek?.ismi.endsWith('.FikoWrl') ||\r\n aktifIcerik?.ek?.ismi.endsWith('.wrl') ||\r\n aktifIcerik?.ek?.ismi.endsWith('.stp')||\r\n aktifIcerik?.ek?.ismi.endsWith('.step') ){\r\n @if (!stp3dAktif) {\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n \r\n }\r\n\r\n @if (!stp3dAktif) {\r\n {{okunabilirBoyut(aktifIcerik?.ek?.boyut)}}\r\n\r\n \r\n Dosya\r\n \r\n\r\n @if (stpGoruntuUrl) {\r\n
\r\n \"3D\r\n
\r\n }\r\n }\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n\r\n \"İçerik\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n @let parametreler = parametreProxy(aktifIcerik.ek.parametreler ?? []);\r\n \r\n\r\n \r\n \r\n\r\n\r\n
\r\n\r\n \r\n
\r\n @if (aktifIcerik?.ek?.sablonOverride || aktifIcerik?.ek?.sablon) {\r\n \r\n \r\n @if (aktifIcerik?.ek?.parametreler?.length > 0) {\r\n
\r\n \r\n
\r\n @if (aktifIcerik._parametrelerGorunur) {\r\n \r\n \r\n }\r\n }\r\n } @else if (aktifIcerik?.ek?.parametreler?.length > 0) {\r\n
\r\n @for (prm of aktifIcerik.ek.parametreler; track prm.ismi) {\r\n @if (prm.turu !== 'Grup' && prm.turu !== 'Simgeli Başlık' && prm.turu !== '2liSatır' && prm.turu !== '3lüSatır') {\r\n
\r\n {{ prm.baslik || prm.ismi }}\r\n \r\n @switch (prm.turu) {\r\n @case ('Onay') {\r\n \r\n {{ prm.degeri ? 'Evet' : 'Hayır' }}\r\n }\r\n @case ('Anahtar') {\r\n \r\n {{ prm.degeri ? 'Açık' : 'Kapalı' }}\r\n }\r\n @case ('Tarih') {\r\n {{ prm.degeri ? (prm.degeri | date:'dd MMM yyyy') : '—' }}\r\n }\r\n @case ('Tarih Saat') {\r\n {{ prm.degeri ? (prm.degeri | date:'dd MMM HH:mm') : '—' }}\r\n }\r\n @case ('Para') {\r\n {{ prm.degeri != null ? (prm.degeri | number:'1.2-2') : '—' }}{{ prm.ayarlar?.paraBirimi || ' ₺' }}\r\n }\r\n @case ('İlerleme Çubuğu') {\r\n %{{ prm.degeri ?? 0 }}\r\n }\r\n @default {\r\n {{ prm.degeri ?? '—' }}\r\n }\r\n }\r\n \r\n
\r\n }\r\n }\r\n
\r\n @if (duzenleyebilirMi()) {\r\n
\r\n \r\n \r\n
\r\n }\r\n } @else {\r\n
\r\n Parametre bilgisi yok\r\n
\r\n }\r\n
\r\n\r\n \r\n \r\n \r\n @if (_sablonDuzenleParametre) {\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ etiket.kisiIsmi }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ yuz.enYakinEslesme.ad?.charAt(0) || '?' }}\r\n {{ yuz.enYakinEslesme.ad }}\r\n {{ (1 - yuz.enYakinEslesme.mesafe) * 100 | number:'1.0-0' }}%\r\n \r\n \r\n ? Bilinmeyen\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{ yuz.enYakinEslesme.ad }}\r\n Bilinmeyen Kisi\r\n {{ yuz.eslesmeler.length }} olasi eslesme\r\n Eslesme bulunamadi\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{ eslesme.ad?.charAt(0) || '?' }}\r\n {{ eslesme.ad }}\r\n {{ (1 - eslesme.mesafe) * 100 | number:'1.0-0' }}%\r\n
\r\n
\r\n \r\n \r\n \r\n {{ sonuc.ismi }}\r\n Aile\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \"Video\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {{okunabilirBoyut(aktifIcerik?.ek?.boyut)}}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Referans\r\n {{ {RESIM:'Resim',VIDEO:'Video',SES:'Ses',DOSYA:'Dosya'}[aktifIcerik?.ek?.bilgiler?.orijinalTuru] || aktifIcerik?.ek?.bilgiler?.orijinalTuru }}\r\n 1\"\r\n class=\"referans-sayac\">{{ aktifIcerik.ek.bilgiler.referansSayisi }}\r\n \r\n\r\n \r\n
\r\n \r\n {{ aktifIcerik.ek.bilgiler.sahipIsim }}\r\n {{ aktifIcerik.ek.bilgiler.orijinalTarih | date:'dd MMM yyyy HH:mm' }}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ aktifIcerik?.ek?.bilgiler?.yerIsmi || aktifIcerik?.ek?.ismi }}\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n {{okunabilirBoyut(aktifIcerik?.ek?.boyut)}}\r\n\r\n \r\n 3D\r\n \r\n\r\n
\r\n\r\n }\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n {{ yuzEtiketModuAktif ? 'Etiketleniyor' : 'Etiketle' }}\r\n \r\n \r\n \r\n \r\n \r\n {{ etiket.kisiIsmi?.charAt(0) || '?' }}\r\n \r\n \r\n \r\n \r\n {{ etiket.kisiIsmi }}\r\n \r\n \r\n \r\n \r\n {{ $any(this).constructor.GOSTERIM_MOD_ETIKETLERI[yuzGosterimModu] || yuzGosterimModu }}\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n@if(aktifIcerik?.html=='' && !aktifIcerik?.ek){\r\n
\r\n \r\n
\r\n
\r\n İçerik Hatalı\r\n
\r\n

Bu İçeriğe Ulaşılamıyor

\r\n
\r\n
\r\n}\r\n\r\n\r\n\r\n\r\n\r\n} @else {\r\n
\r\n \r\n
\r\n
\r\n İçerik Şifreli\r\n
\r\n

\r\n \r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n}\r\n\r\n
\r\n\r\n @if (editMode && miSahip) {\r\n
\r\n \r\n
\r\n }\r\n\r\n
3 ? 'visible':'hidden'\"\r\n [class.disabled]=\"aktifIcerikNo < 1\"\r\n (click)=\"aktifIcerikNo=0;\"\r\n style=\"margin-right: auto;\">\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n {{ (aktifIcerikNo+1)+' / '+ icerikler.length}}\r\n \r\n\r\n
icerikler.length-1\"\r\n (click)=\"aktifIcerikNo=aktifIcerikNo+1;\">\r\n \r\n
\r\n\r\n
3 ? 'visible':'hidden'\"\r\n style=\"margin-left: auto;\"\r\n [class.disabled]=\"aktifIcerikNo + 1 > icerikler.length-1\"\r\n (click)=\"aktifIcerikNo=icerikler.length-1;\">\r\n \r\n
\r\n\r\n @if (editMode && miSahip) {\r\n
\r\n \r\n
\r\n }\r\n\r\n
\r\n\r\n\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n Medya Türü\r\n {{ referansDrawerVeri.orijinalTuru }}\r\n
\r\n\r\n \r\n
\r\n Referans Sayısı\r\n \r\n 🔗 {{ referansDrawerVeri.referansSayisi }} kez referans alınmış\r\n \r\n
\r\n\r\n \r\n
\r\n Orijinal Paylaşan\r\n
\r\n \r\n {{ referansDrawerVeri.sahipIsim }}\r\n
\r\n
\r\n\r\n \r\n
\r\n Paylaşım Tarihi\r\n {{ referansDrawerVeri.orijinalTarih | date:'dd MMM yyyy HH:mm' }}\r\n
\r\n\r\n \r\n \r\n Orijinal Kartı Görüntüle\r\n \r\n\r\n \r\n
0 || zincirYukleniyor\" class=\"referans-zincir-bolum\">\r\n
\r\n Referans Zinciri\r\n
\r\n\r\n
\r\n Zincir yükleniyor...\r\n
\r\n\r\n 0\">\r\n \r\n
\r\n
\r\n \r\n {{ adim.sahipIsim }}\r\n
\r\n {{ adim.tarih | date:'dd MMM yyyy HH:mm' }}\r\n
\r\n \r\n Kartı Aç\r\n \r\n {{ adim.icerikSayisi }} icerik\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ kisi.ismi }}\r\n Aile\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ kisi.ismi }}\r\n Aile\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n @if (icerikler.length > 1) {\r\n {{ (aktifIcerikNo + 1) + ' / ' + icerikler.length }}\r\n }\r\n {{ lightboxZoom * 100 | number:'1.0-0' }}%\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n @if (miSahip) {\r\n \r\n }\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n @if (icerikler.length > 1) {\r\n @if (aktifIcerikNo > 0) {\r\n \r\n }\r\n @if (aktifIcerikNo < icerikler.length - 1) {\r\n \r\n }\r\n }\r\n\r\n \r\n
1 ? 'grab' : 'default')\"\r\n (mousedown)=\"lightboxPanBasla($event)\"\r\n (dblclick)=\"lightboxCiftTiklandi($event)\">\r\n\r\n \r\n\r\n \r\n @if (lightboxResimAlani && (yuzGosterimModu !== 'kapali' || yuzEtiketModuAktif) && (benzersizYuzEtiketleri.length || bekleyenEtiket || yuzEtiketModuAktif)) {\r\n
\r\n\r\n \r\n @if (benzersizYuzEtiketleri.length && yuzGosterimModu !== 'temiz') {\r\n
\r\n
\r\n
\r\n {{ etiket.kisiIsmi }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n\r\n \r\n @if (bekleyenEtiket && lightboxAcik) {\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n }\r\n\r\n \r\n @if (lightboxResimAlani && otomatikYuzler?.length) {\r\n
\r\n
\r\n \r\n \r\n {{ yuz.enYakinEslesme.ad?.charAt(0) || '?' }}\r\n {{ yuz.enYakinEslesme.ad }}\r\n {{ (1 - yuz.enYakinEslesme.mesafe) * 100 | number:'1.0-0' }}%\r\n \r\n \r\n ? Bilinmeyen\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n {{ eslesme.ad?.charAt(0) || '?' }}\r\n {{ eslesme.ad }}\r\n {{ (1 - eslesme.mesafe) * 100 | number:'1.0-0' }}%\r\n
\r\n
\r\n {{ sonuc.ismi }}\r\n Aile\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n\r\n \r\n
\r\n \r\n @if (benzersizYuzEtiketleri.length) {\r\n
\r\n @for (etiket of benzersizYuzEtiketleri; track etiket.id + '-' + $index) {\r\n \r\n \r\n {{ etiket.kisiIsmi?.charAt(0) || '?' }}\r\n \r\n \r\n \r\n \r\n {{ etiket.kisiIsmi }}\r\n \r\n }\r\n
\r\n }\r\n @if (aktifIcerik?.ek?.boyut) {\r\n {{ okunabilirBoyut(aktifIcerik?.ek?.orijinalBoyut || aktifIcerik?.ek?.boyut) }}\r\n }\r\n
\r\n\r\n
\r\n","import { FikoYTEnvIstemci } from '@/src/service/Environment/environment';\r\nimport { CommonModule, DOCUMENT, NgOptimizedImage } from '@angular/common';\r\nimport { AfterViewChecked, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentRef, ElementRef, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { Router, RouterModule } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { IKart, IIcerik, IEkTuru, IYuzEtiketi } from '@/src/service/fikoyt-ui/interfaces/IKart.interface';\r\n\r\nimport { FikoSesOynaticiComponent } from '../../../fiko-ses-oynatici/fiko-ses-oynatici.component';\r\nimport { PaylasTextEditorComponent } from '../../paylas-kutusu/IKart/paylas-text-editor/paylas-text-editor.component';\r\nimport { IKartComponent } from '../../paylas-kutusu/IKart/ikart-kutusu.component';\r\nimport { FikoYTService } from '@/src/service/fikoyt.service';\r\nimport { SoyAgaciService } from '@/src/app/uygulamalar/soyagaci/services/soy-agaci.service';\r\n\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { NzMessageService } from 'ng-zorro-antd/message';\r\nimport { NzTooltipModule } from 'ng-zorro-antd/tooltip';\r\nimport { NzModalService, NzModalModule } from 'ng-zorro-antd/modal';\r\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\r\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\r\nimport { NzTimelineModule } from 'ng-zorro-antd/timeline';\r\nimport { FikoYTIstekKok } from '@/src/service/modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service';\r\nimport { escapeRegex } from '@/src/app/shared/utils/regex.utils';\r\nimport { IUyarKartComponent } from '../../paylas-kutusu/IKart/paylas-icerik-editor/IUyarDokum/uyar-kutusu.component';\r\nimport { YuzCropComponent } from '@/src/app/shared/components/yuz-crop/yuz-crop.component';\r\nimport { KisiBalonV2Component } from '@/src/app/shared/components/kisi-balon/kisi-balon.component';\r\nimport { ParametrelerComponent } from '../../../parametreler/parametreler.component';\r\nimport { SablonRendererComponent } from '../../sablon-renderer/sablon-renderer.component';\r\nimport { DinamikBilesenRendererComponent } from '../../../dinamik-bilesen/dinamik-bilesen-renderer.component';\r\nimport { FikoStpOnizlemeKartiComponent } from '../../../fiko-three-js/fiko-stp-onizleme-karti/fiko-stp-onizleme-karti.component';\r\n\r\n// Yüz tanıma etiket çözümleme (lazy — modül olmayabilir)\r\n// NOT: Race condition riski var ama yuzEtiketleriCozumle() satır 385'te\r\n// `if (!_etiketleriCozumle) return;` guard'ı ile korunuyor, dolayısıyla güvenli.\r\nlet _etiketleriCozumle: any = null;\r\ntry {\r\n import('@/src/app/uygulamalar/yuz-tanima/utils/etiket-cozumle').then(m => _etiketleriCozumle = m.etiketleriCozumle).catch(() => {});\r\n} catch {}\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'fikoyt-icerikler',\r\n templateUrl: './icerikler.component.html',\r\n styleUrls: ['./icerikler.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n NgOptimizedImage,\r\n RouterModule,\r\n FormsModule,\r\n FikoSesOynaticiComponent,\r\n PaylasTextEditorComponent,\r\n IUyarKartComponent,\r\n NzButtonModule,\r\n NzInputModule,\r\n NzTooltipModule,\r\n NzTimelineModule,\r\n NzPopconfirmModule,\r\n KisiBalonV2Component,\r\n YuzCropComponent,\r\n NzPopoverModule,\r\n ParametrelerComponent,\r\n SablonRendererComponent,\r\n NzModalModule,\r\n DinamikBilesenRendererComponent,\r\n FikoStpOnizlemeKartiComponent,\r\n ],\r\n standalone: true,\r\n})\r\nexport class IceriklerComponent implements OnInit, OnDestroy, AfterViewChecked, AfterViewInit {\r\n @ViewChild('referansKonteynir', { read: ViewContainerRef, static: true }) referansKonteynir: ViewContainerRef;\r\n @ViewChild('konumHaritaDiv') konumHaritaDiv: ElementRef;\r\n @ViewChild('lightboxOverlay') lightboxOverlay: ElementRef;\r\n\r\n private konumLeafletMap: any = null;\r\n private konumHaritaAktifId: string = null;\r\n\r\n // Socket.IO isleniyor subscription'i — duplicate subscription onleme\r\n private _isleniyorSub: Subscription | null = null;\r\n\r\n /** */\r\n @Input() kart: IKart;\r\n\r\n public get aktifMedya(): string {\r\n //@ts-ignore\r\n return this.FikoYT.aktifMedyaid;\r\n }\r\n @Input() public set aktifMedya(v: string) {\r\n //@ts-ignore\r\n this.FikoYT.aktifMedyaid = v;\r\n // this.CD.detectChanges();\r\n // this.aktifMedyaChange.emit(v);\r\n }\r\n /** */\r\n subsList: Subscription[] = [];\r\n /** */\r\n\r\n /** */\r\n medyaAktif: boolean;\r\n /** 🪶 Gömülü STEP/WRL 3D önizlemesi açıkken diğer kart öğelerini gizleyip alanı ona bırakmak için */\r\n stp3dAktif: boolean = false;\r\n /** */\r\n get aktifIcerik() {\r\n // console.log(this.icerikler[this.aktifIcerikNo])\r\n return this.icerikler[this.aktifIcerikNo];\r\n }\r\n /** */\r\n private _icerikler: IIcerik[];\r\n public get icerikler(): IIcerik[] {\r\n return this._icerikler;\r\n }\r\n @Input() public set icerikler(v: IIcerik[]) {\r\n this._icerikler = v || [{ html: '' }];\r\n // this.CD.detectChanges();\r\n\r\n if (this.referansKonteynir) {\r\n\r\n if (this._icerikler?.length > 0) {\r\n\r\n if (this._icerikler[this.aktifIcerikNo]?.ek?.rid != null) {\r\n if (!(this.referansKonteynir.length > 0)) {\r\n // this.referansKonteynir.clear()\r\n let referansBilesen: ComponentRef = this.referansKonteynir.createComponent(IKartComponent, { index: 0 });\r\n //@ts-ignore\r\n referansBilesen.instance.kart = this._icerikler[this.aktifIcerikNo].ek.rid;\r\n // referansBilesen.instance.bilesenRefeans = referansBilesen;\r\n // referansBilesen.instance.miReferans = true;\r\n } else {\r\n //@ts-ignore\r\n this.referansKonteynir.get(0)._view[this.referansKonteynir.get(0)._view.length - 1].kart = this._icerikler[this.aktifIcerikNo].ek.rid\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (this.icerikler?.length > 0) {\r\n if (this._icerikler[this.aktifIcerikNo]?.ek?.isleniyor?.evet) {\r\n // Onceki isleniyor subscription'ini temizle (duplicate onleme)\r\n this._isleniyorSub?.unsubscribe();\r\n this._isleniyorSub = this.FikoYT.io.fromEvent(`FikoYT.sistem.hareketler.${this._icerikler[this.aktifIcerikNo]?.ek?._id}.isleniyor`).subscribe((k: any) => {\r\n k.yuzde = Number((k.yuzde).toFixed(3))\r\n this._icerikler[this.aktifIcerikNo].ek.isleniyor = k;\r\n this.CD.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n this.CD.detectChanges();\r\n }\r\n\r\n @Output() iceriklerChange: EventEmitter = new EventEmitter();\r\n\r\n @Input() duzenlemeModunda: boolean = false;\r\n @Output() duzenlemeBaslatildi: EventEmitter = new EventEmitter();\r\n\r\n /** Kullanıcı rolleri (parametre düzenleme yetkisi için) */\r\n get kullaniciRolleri(): string[] {\r\n return this.FikoYT?.kimlik?.aktifKullaniciJson()?._uyeYetkiler ?? [];\r\n }\r\n\r\n duzenleyebilirMi(): boolean {\r\n const kullaniciId = this.FikoYT?.kimlik?.aktifKullaniciJson()?._id;\r\n if (!kullaniciId) return false;\r\n return this.kart?.sahip === kullaniciId || this.kullaniciRolleri.includes('Süper Yönetici');\r\n }\r\n\r\n sablonParametreDuzenle(olay: { parametreAnahtari: string; mevcutDeger: any }, icerik: any) {\r\n const parametre = (icerik?.ek?.parametreler ?? []).find((p: any) => p.ismi === olay.parametreAnahtari);\r\n if (!parametre) return;\r\n\r\n this._sablonDuzenleParametre = JSON.parse(JSON.stringify(icerik?.ek?.parametreler ?? []));\r\n this._sablonDuzenleIcerik = icerik;\r\n this.CD.detectChanges();\r\n }\r\n\r\n _sablonDuzenleParametre: any[] | null = null;\r\n _sablonDuzenleIcerik: any = null;\r\n\r\n sablonDuzenleKaydet() {\r\n if (!this._sablonDuzenleParametre?.length || !this._sablonDuzenleIcerik) return;\r\n // Tüm parametrelerin değerlerini orijinallere aktar\r\n for (const duzenlemis of this._sablonDuzenleParametre) {\r\n const hedef = (this._sablonDuzenleIcerik?.ek?.parametreler ?? []).find((p: any) => p.ismi === duzenlemis.ismi);\r\n if (hedef) hedef.degeri = duzenlemis.degeri;\r\n }\r\n this.onUygulamaParametreDegisti();\r\n this._sablonDuzenleParametre = null;\r\n this._sablonDuzenleIcerik = null;\r\n this.CD.detectChanges();\r\n }\r\n\r\n sablonDuzenleIptal() {\r\n this._sablonDuzenleParametre = null;\r\n this._sablonDuzenleIcerik = null;\r\n this.CD.detectChanges();\r\n }\r\n\r\n sablonResimDegisti(olay: { parametreAnahtari: string; dosya: File; objectUrl: string }, icerik: any) {\r\n const parametre = (icerik?.ek?.parametreler ?? []).find((p: any) => p.ismi === olay.parametreAnahtari);\r\n if (!parametre) return;\r\n parametre.degeri = olay.objectUrl;\r\n this.onUygulamaParametreDegisti();\r\n this.CD.detectChanges();\r\n }\r\n\r\n parametreDegerleriHesapla(icerik: any): { [key: string]: any } {\r\n const sonuc: any = {};\r\n for (const p of (icerik?.ek?.parametreler ?? [])) {\r\n if (p.ismi) sonuc[p.ismi] = p.degeri;\r\n }\r\n return sonuc;\r\n }\r\n\r\n /** UYGULAMAICERIK parametresi değiştiğinde DB'ye kaydet */\r\n onUygulamaParametreDegisti() {\r\n const icerik = this.aktifIcerik;\r\n if (!icerik?._id || !icerik?.ek?.parametreler) return;\r\n\r\n // Debounce ile kaydet\r\n clearTimeout(this._uygulamaParamKaydetTimer);\r\n this._uygulamaParamKaydetTimer = setTimeout(async () => {\r\n const istek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.guncelle',\r\n });\r\n istek.parametreler = {\r\n filter: { _id: icerik._id },\r\n set: { 'ek.parametreler': icerik.ek.parametreler }\r\n };\r\n await istek.isteSync();\r\n this.CD.detectChanges();\r\n }, 800);\r\n }\r\n private _uygulamaParamKaydetTimer: any;\r\n\r\n private _aktifIcerikNo: number = 0;\r\n public get aktifIcerikNo(): number {\r\n return this._aktifIcerikNo;\r\n }\r\n @Input() public set aktifIcerikNo(v: number) {\r\n this._aktifIcerikNo = v;\r\n this.girilenSifre = null;\r\n this.sifreKutusuGoster = false;\r\n this.stp3dAktif = false; // 🪶 içerik değişince gömülü 3D önizleme durumu sıfırlanır\r\n // this.CD.detectChanges();\r\n if (this.referansKonteynir) {\r\n\r\n if (this.icerikler?.length > 0) {\r\n\r\n if (this.icerikler[v]?.ek?.rid != null) {\r\n if (!(this.referansKonteynir.length > 0)) {\r\n // this.referansKonteynir.clear()\r\n let referansBilesen: ComponentRef = this.referansKonteynir.createComponent(IKartComponent, { index: 0 });\r\n //@ts-ignore\r\n referansBilesen.instance.kart = this.icerikler[v].ek.rid;\r\n // referansBilesen.instance.bilesenRefeans = referansBilesen;\r\n // referansBilesen.instance.miReferans = true;\r\n } else {\r\n //@ts-ignore\r\n this.referansKonteynir.get(0)._view[this.referansKonteynir.get(0)._view.length - 1].kart = this._icerikler[v].ek.rid\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n if (this._icerikler?.length > 0) {\r\n if (this._icerikler[this.aktifIcerikNo]?.ek?.isleniyor?.evet) {\r\n // Onceki isleniyor subscription'ini temizle (duplicate onleme)\r\n this._isleniyorSub?.unsubscribe();\r\n this._isleniyorSub = this.FikoYT.io.fromEvent(`FikoYT.sistem.hareketler.${this._icerikler[this.aktifIcerikNo]?.ek?._id}.isleniyor`).subscribe((k: any) => {\r\n k.yuzde = Number((k.yuzde).toFixed(3))\r\n this._icerikler[this.aktifIcerikNo].ek.isleniyor = k;\r\n this.CD.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n this.CD.detectChanges();\r\n }\r\n //\r\n girilenSifre = null;\r\n sifreKutusuGoster = false;\r\n whisperYukleniyor = false;\r\n\r\n // Yüz etiketleme (merkezi — tüm kartlar aynı modu paylaşır)\r\n static _yuzEtiketModuAktif = false;\r\n get yuzEtiketModuAktif() { return IceriklerComponent._yuzEtiketModuAktif; }\r\n set yuzEtiketModuAktif(v: boolean) { IceriklerComponent._yuzEtiketModuAktif = v; }\r\n\r\n /** Deduplicate edilmiş yüz etiketleri — aynı kişi birden fazla gösterilmez.\r\n * Oncellenmis (memoized): ayni kaynak dizi referansi ve uzunlugu ise tekrar hesaplanmaz. */\r\n private _benzersizYuzEtiketleriCache: IYuzEtiketi[] = [];\r\n private _benzersizYuzEtiketleriKaynak: any = null;\r\n private _benzersizYuzEtiketleriUzunluk: number = -1;\r\n get benzersizYuzEtiketleri(): IYuzEtiketi[] {\r\n const etiketler = this.aktifIcerik?.ek?.yuzEtiketleri;\r\n if (!etiketler?.length) return [];\r\n // Kaynak referansi veya uzunlugu degismediyse cache'den don\r\n if (etiketler === this._benzersizYuzEtiketleriKaynak && etiketler.length === this._benzersizYuzEtiketleriUzunluk) {\r\n return this._benzersizYuzEtiketleriCache;\r\n }\r\n const gorulenKisi = new Set();\r\n const gorulenId = new Set();\r\n this._benzersizYuzEtiketleriCache = etiketler.filter((e: IYuzEtiketi) => {\r\n if (gorulenId.has(e.id)) return false;\r\n gorulenId.add(e.id);\r\n const anahtar = e.soyagaciKisiId || e.kisiId || e.kisiIsmi || e.id;\r\n if (gorulenKisi.has(anahtar)) return false;\r\n gorulenKisi.add(anahtar);\r\n return true;\r\n });\r\n this._benzersizYuzEtiketleriKaynak = etiketler;\r\n this._benzersizYuzEtiketleriUzunluk = etiketler.length;\r\n return this._benzersizYuzEtiketleriCache;\r\n }\r\n\r\n // Merkezi gösterim modu — tüm kartlarda aynı (Google/Apple/Facebook/Kapalı)\r\n static readonly GOSTERIM_MODLARI: Array<'liste' | 'temiz' | 'etiket' | 'kapali'> = ['liste', 'temiz', 'etiket', 'kapali'];\r\n static readonly GOSTERIM_MOD_ETIKETLERI: Record = {\r\n 'liste': 'Google',\r\n 'temiz': 'Apple',\r\n 'etiket': 'Facebook',\r\n 'kapali': 'Kapalı',\r\n };\r\n static _yuzGosterimModu: 'liste' | 'temiz' | 'etiket' | 'kapali' = (() => {\r\n try { return (localStorage.getItem('fikoyt_yuz_gosterim_modu') as any) || 'liste'; } catch { return 'liste'; }\r\n })();\r\n get yuzGosterimModu() { return IceriklerComponent._yuzGosterimModu; }\r\n set yuzGosterimModu(v: 'liste' | 'temiz' | 'etiket' | 'kapali') {\r\n IceriklerComponent._yuzGosterimModu = v;\r\n try { localStorage.setItem('fikoyt_yuz_gosterim_modu', v); } catch {}\r\n }\r\n\r\n // Facebook (etiket) modu: tap toggle durumu\r\n yuzEtiketlerGorunur = false;\r\n private tapPeekTimer: any = null;\r\n\r\n bekleyenEtiket: { x: number; y: number; w: number; h: number } | null = null;\r\n yuzEtiketAramaMetni = '';\r\n yuzEtiketAramaSonuclari: any[] = [];\r\n private yuzEtiketAramaTimer: any = null;\r\n suruklenenEtiketId: string | null = null;\r\n private suruklemeBilgi: { yon: string; baslangicX: number; baslangicY: number; baslangicRect: { x: number; y: number; w: number; h: number } } | null = null;\r\n\r\n // ─── Otomatik Yüz Tanıma (Google Photos / Facebook tarzı) ───\r\n otomatikYuzler: any[] = []; // Tespit edilen ama henüz onaylanmamış yüzler\r\n otomatikYuzAktifIdx: number | null = null; // Öneri popup'ı açık olan yüz\r\n otomatikYuzAramaMetni = '';\r\n otomatikYuzAramaSonuclari: any[] = [];\r\n private otomatikYuzAramaTimer: any = null;\r\n private otomatikYuzSorgulandiIds = new Set(); // Tekrar sorgulamayı önle\r\n\r\n // object-fit:contain fix — gerçek resim alanı\r\n resimAlani: { left: number; top: number; width: number; height: number } | null = null;\r\n private resimAlaniObserver: ResizeObserver | null = null;\r\n private sonResimEl: HTMLImageElement | null = null;\r\n\r\n resimYuklendi($event: Event) {\r\n const img = $event.target as HTMLImageElement;\r\n this.sonResimEl = img;\r\n this.resimAlaniHesapla(img);\r\n if (!this.resimAlaniObserver) {\r\n this.resimAlaniObserver = new ResizeObserver(() => {\r\n if (this.sonResimEl) this.resimAlaniHesapla(this.sonResimEl);\r\n });\r\n }\r\n const container = img.closest('.icerik-resim') || img.parentElement;\r\n if (container) {\r\n this.resimAlaniObserver.disconnect();\r\n this.resimAlaniObserver.observe(container);\r\n }\r\n // Otomatik yüz tanıma sonuçlarını çek\r\n this.otomatikYuzTespitSorgula();\r\n // Yeni yüz tanıma sisteminden etiketleri çözümle\r\n const resimIdCozumle = this.aktifIcerik?.ek?._id || this.aktifIcerik?.ek?.resimid;\r\n if (resimIdCozumle) this.yuzEtiketleriCozumle(resimIdCozumle);\r\n // Soyağacı kişilerinin resimlerini zenginleştir\r\n this.yuzEtiketResimlerZenginlestir();\r\n }\r\n\r\n // ─── Otomatik Yüz Tanıma Sistemi ─────────────────────────────\r\n\r\n /** yuz_tespit koleksiyonundan bu resmin sonuçlarını çeker */\r\n private async otomatikYuzTespitSorgula() {\r\n const icerik = this.aktifIcerik;\r\n const resimId = icerik?.ek?._id || icerik?.ek?.resimid;\r\n const icerikId = icerik?._id;\r\n\r\n // En az biri mevcut olmalı\r\n if (!icerikId && !resimId) return;\r\n\r\n // Dedup için önce resimId, yoksa icerikId kullan\r\n const dedupKey = resimId || icerikId;\r\n if (this.otomatikYuzSorgulandiIds.has(dedupKey)) return;\r\n this.otomatikYuzSorgulandiIds.add(dedupKey);\r\n\r\n try {\r\n const istek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.yuz_tespit.aggregate',\r\n });\r\n\r\n // $or ile hem icerik_id hem resim_id üzerinden sorgula\r\n const matchKosullari: any[] = [];\r\n if (icerikId) matchKosullari.push({ icerik_id: icerikId });\r\n if (resimId) matchKosullari.push({ resim_id: resimId });\r\n\r\n istek.parametreler = {\r\n aggregate: [\r\n { $match: matchKosullari.length > 1 ? { $or: matchKosullari } : matchKosullari[0] },\r\n { $limit: 1 },\r\n ],\r\n };\r\n await istek.isteSync();\r\n\r\n const sonuclar = istek.cevap?.sonuc;\r\n if (!sonuclar?.length) {\r\n // Henüz işlenmemiş - 5 saniye sonra tekrar dene\r\n this.otomatikYuzSorgulandiIds.delete(dedupKey);\r\n setTimeout(() => this.otomatikYuzTespitSorgula(), 5000);\r\n return;\r\n }\r\n\r\n const tespit = sonuclar[0];\r\n if (!tespit?.yuzler?.length) return;\r\n\r\n // Mevcut onaylanmış etiketlerin hem ID hem kişi kimlik bilgilerini al\r\n const mevcutEtiketIdler = new Set(\r\n (icerik.ek?.yuzEtiketleri || []).map((e: IYuzEtiketi) => e.id)\r\n );\r\n const mevcutKisiKimlikleri = new Set(\r\n (icerik.ek?.yuzEtiketleri || [])\r\n .map((e: IYuzEtiketi) => e.soyagaciKisiId || e.kisiId || e.kisiIsmi)\r\n .filter(Boolean)\r\n );\r\n\r\n // Mevcut etiketlerin pozisyon+boyut bilgilerini al (%15 mesafe kontrolü için)\r\n const mevcutKutular = (icerik.ek?.yuzEtiketleri || []).map((e: IYuzEtiketi) => ({\r\n x: e.x, y: e.y, w: e.w, h: e.h\r\n }));\r\n\r\n // Onaylanmamış yüzleri göster (zaten etiketlenmemiş olanlar — çok katmanlı filtre)\r\n this.otomatikYuzler = tespit.yuzler\r\n .filter((y: any) => {\r\n if (y.onaylandi || mevcutEtiketIdler.has(y.id)) return false;\r\n // Pozisyon bazlı overlap kontrolü: AI yüzünün (x,y,w,h) mevcut elle etiketlenmiş\r\n // bir yüzün (x,y,w,h) ile %15 mesafe içindeyse tamamen atla\r\n for (const mk of mevcutKutular) {\r\n const dx = Math.abs(y.x - mk.x);\r\n const dy = Math.abs(y.y - mk.y);\r\n const dw = Math.abs(y.w - mk.w);\r\n const dh = Math.abs(y.h - mk.h);\r\n if (dx < 15 && dy < 15 && dw < 15 && dh < 15) return false;\r\n }\r\n return true;\r\n })\r\n .map((y: any) => {\r\n // Eşleşmeler içinden zaten etiketlenmiş kişileri filtrele\r\n const filtrelenmisEslesmeler = (y.eslesmeler || []).filter((e: any) =>\r\n !mevcutKisiKimlikleri.has(e.kisi_id) && !mevcutKisiKimlikleri.has(e.ad)\r\n );\r\n return {\r\n ...y,\r\n eslesmeler: filtrelenmisEslesmeler,\r\n enYakinEslesme: filtrelenmisEslesmeler.length > 0 ? filtrelenmisEslesmeler[0] : null,\r\n };\r\n });\r\n\r\n this.yuzEtiketResimlerZenginlestir();\r\n this.CD.detectChanges();\r\n } catch (e) {\r\n // Sessizce geç - servis henüz hazır olmayabilir\r\n }\r\n }\r\n\r\n // ─── Yüz Etiket Çözümleme (yuz_embeddingler + kullanıcı etiketleri) ────\r\n private _yuzCozumlemeYapildi = new Set();\r\n\r\n /**\r\n * Yeni yüz tanıma sisteminden etiketleri çözümler.\r\n * yuz_embeddingler koleksiyonundan resim yüzlerini çeker,\r\n * görenin ve paylaşanın etiketlerini birleştirip IYuzEtiketi formatına dönüştürür.\r\n */\r\n private async yuzEtiketleriCozumle(resimId: string) {\r\n if (!resimId || this._yuzCozumlemeYapildi.has(resimId)) return;\r\n if (!_etiketleriCozumle) return;\r\n this._yuzCozumlemeYapildi.add(resimId);\r\n\r\n try {\r\n // 1. Bu resmin embedding kayıtlarını çek\r\n const embedIstek = new FikoYTIstekKok({ metod: 'POST', komut: 'FikoYT.sistem.DB.yuz_embeddingler.aggregate' });\r\n embedIstek.parametreler = { aggregate: [{ $match: { resimId, durum: 'tamamlandi' } }, { $limit: 1 }] };\r\n await embedIstek.isteSync();\r\n const embedSonuc = embedIstek.cevap?.sonuc;\r\n if (!embedSonuc?.length || !embedSonuc[0]?.yuzler?.length) return;\r\n const yuzler = embedSonuc[0].yuzler;\r\n const kaynakSahibiId = embedSonuc[0].kaynakSahibiId;\r\n\r\n // 2. Görüntüleyen kullanıcının etiketlerini çek\r\n const goruntuleyenId = this.FikoYT.kimlik.aktifKullaniciJson()?._id;\r\n if (!goruntuleyenId) return;\r\n const grupIdler = yuzler.map((y: any) => y.kisiGrupId).filter(Boolean);\r\n if (!grupIdler.length) return;\r\n\r\n const etiketSorgula = async (kullaniciId: string) => {\r\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: 'FikoYT.sistem.DB.yuz_kullanici_etiketleri.aggregate' });\r\n istek.parametreler = { aggregate: [{ $match: { kullaniciId, kisiGrupId: { $in: grupIdler } } }] };\r\n await istek.isteSync();\r\n return istek.cevap?.sonuc || [];\r\n };\r\n\r\n const [gorenEtiketler, paylasanEtiketler] = await Promise.all([\r\n etiketSorgula(goruntuleyenId),\r\n kaynakSahibiId && kaynakSahibiId !== goruntuleyenId\r\n ? etiketSorgula(kaynakSahibiId)\r\n : Promise.resolve([]),\r\n ]);\r\n\r\n // 3. Map'lere dönüştür\r\n const gorenMap = new Map();\r\n for (const e of (gorenEtiketler || [])) gorenMap.set(e.kisiGrupId, e);\r\n const paylasanMap = new Map();\r\n for (const e of (paylasanEtiketler || [])) paylasanMap.set(e.kisiGrupId, e);\r\n\r\n // 4. Çözümle\r\n const cozumlenmis = _etiketleriCozumle(yuzler, gorenMap, paylasanMap);\r\n if (!cozumlenmis?.length) return;\r\n\r\n // 5. IYuzEtiketi formatına dönüştür\r\n const mevcutEtiketler = this.aktifIcerik?.ek?.yuzEtiketleri || [];\r\n const mevcutGrupIdler = new Set(mevcutEtiketler.map((e: IYuzEtiketi) => e.kisiId).filter(Boolean));\r\n\r\n const yeniEtiketler: IYuzEtiketi[] = cozumlenmis\r\n .filter((c: any) => !c.kisiGrupId || !mevcutGrupIdler.has(c.kisiGrupId))\r\n .map((c: any, idx: number) => ({\r\n id: 'yt_' + (c.kisiGrupId || ('bilinmeyen_' + Date.now().toString(36) + '_' + idx)),\r\n x: c.bbox?.x ?? 0,\r\n y: c.bbox?.y ?? 0,\r\n w: c.bbox?.w ?? 10,\r\n h: c.bbox?.h ?? 12,\r\n kisiId: c.kisiGrupId || undefined,\r\n kisiIsmi: c.isim || 'Bilinmeyen',\r\n soyagaciKisiId: c.soyagaciKisiId || undefined,\r\n resimUrl: c.resimUrl || undefined,\r\n }));\r\n\r\n if (!yeniEtiketler.length) return;\r\n\r\n // 6. Mevcut etiketlere ekle\r\n if (!this.aktifIcerik?.ek) return;\r\n if (!this.aktifIcerik.ek.yuzEtiketleri) this.aktifIcerik.ek.yuzEtiketleri = [];\r\n this.aktifIcerik.ek.yuzEtiketleri.push(...yeniEtiketler);\r\n this.CD.detectChanges();\r\n } catch {\r\n // Sessizce devam — yüz tanıma servisi hazır olmayabilir\r\n }\r\n }\r\n\r\n /** Otomatik tespit edilen yüzü onayla (önerilen kişi ile veya yeni isimle) */\r\n otomatikYuzOnayla(yuzIdx: number, kisi?: { _id?: string; ismi: string; kaynak?: string; soyagaciKisiId?: string; resimUrl?: string }) {\r\n const yuz = this.otomatikYuzler[yuzIdx];\r\n if (!yuz || !this.aktifIcerik?.ek) return;\r\n if (!this.aktifIcerik.ek.yuzEtiketleri) this.aktifIcerik.ek.yuzEtiketleri = [];\r\n\r\n // IYuzEtiketi formatında ekle\r\n const etiket: IYuzEtiketi = {\r\n id: yuz.id || Date.now().toString(36) + Math.random().toString(36).slice(2, 6),\r\n x: yuz.x,\r\n y: yuz.y,\r\n w: yuz.w,\r\n h: yuz.h,\r\n kisiIsmi: kisi?.ismi || yuz.enYakinEslesme?.ad || this.otomatikYuzAramaMetni || 'Bilinmeyen',\r\n kisiId: kisi?.kaynak === 'platform' ? kisi._id : (yuz.enYakinEslesme?.kisi_id || undefined),\r\n soyagaciKisiId: kisi?.soyagaciKisiId || undefined,\r\n resimUrl: kisi?.resimUrl || yuz.enYakinEslesme?.resim_url || undefined,\r\n };\r\n\r\n this.aktifIcerik.ek.yuzEtiketleri.push(etiket);\r\n this.otomatikYuzler.splice(yuzIdx, 1);\r\n\r\n // Onaylanan kişiyi kalan otomatikYuzler'deki eşleşmelerden çıkar\r\n const onaylananKisiIdler = new Set(\r\n [etiket.kisiId, etiket.soyagaciKisiId, etiket.kisiIsmi].filter(Boolean)\r\n );\r\n for (const kalanYuz of this.otomatikYuzler) {\r\n if (kalanYuz.eslesmeler?.length) {\r\n kalanYuz.eslesmeler = kalanYuz.eslesmeler.filter(\r\n (e: any) => !onaylananKisiIdler.has(e.kisi_id) && !onaylananKisiIdler.has(e.ad)\r\n );\r\n // enYakinEslesme güncelle: filtrelenmiş listeden ilk eleman veya null\r\n if (kalanYuz.enYakinEslesme &&\r\n (onaylananKisiIdler.has(kalanYuz.enYakinEslesme.kisi_id) ||\r\n onaylananKisiIdler.has(kalanYuz.enYakinEslesme.ad))) {\r\n kalanYuz.enYakinEslesme = kalanYuz.eslesmeler.length > 0 ? kalanYuz.eslesmeler[0] : null;\r\n }\r\n }\r\n }\r\n\r\n this.otomatikYuzAktifIdx = null;\r\n this.otomatikYuzAramaMetni = '';\r\n this.otomatikYuzAramaSonuclari = [];\r\n\r\n // Tanınan kişi descriptor'ını kaydet (gelecek tanımalar için)\r\n if (yuz.descriptor?.length && etiket.kisiIsmi) {\r\n this.otomatikYuzTaninanKaydet(etiket, yuz.descriptor);\r\n }\r\n\r\n this.yuzEtiketleriKaydet();\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** Otomatik tespit edilen yüzü reddet (gösterme) */\r\n otomatikYuzReddet(yuzIdx: number) {\r\n this.otomatikYuzler.splice(yuzIdx, 1);\r\n this.otomatikYuzAktifIdx = null;\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** En yakın eşleşmeyi hızlı onayla (tek tıkla) */\r\n otomatikYuzHizliOnayla(yuzIdx: number) {\r\n const yuz = this.otomatikYuzler[yuzIdx];\r\n if (!yuz?.enYakinEslesme) return;\r\n this.otomatikYuzOnayla(yuzIdx, {\r\n ismi: yuz.enYakinEslesme.ad,\r\n _id: yuz.enYakinEslesme.kisi_id,\r\n resimUrl: yuz.enYakinEslesme.resim_url,\r\n });\r\n }\r\n\r\n /** Otomatik yüz için kişi arama */\r\n otomatikYuzAra(metin: string) {\r\n this.otomatikYuzAramaMetni = metin;\r\n if (this.otomatikYuzAramaTimer) clearTimeout(this.otomatikYuzAramaTimer);\r\n if (!metin || metin.length < 2) {\r\n this.otomatikYuzAramaSonuclari = [];\r\n this.CD.detectChanges();\r\n return;\r\n }\r\n // Mevcut arama fonksiyonunu kullan\r\n this.otomatikYuzAramaTimer = setTimeout(() => {\r\n this.yuzEtiketAra(metin);\r\n // Sonuçları otomatik yüz aramasına kopyala\r\n setTimeout(() => {\r\n this.otomatikYuzAramaSonuclari = [...this.yuzEtiketAramaSonuclari];\r\n this.CD.detectChanges();\r\n }, 400);\r\n }, 300);\r\n }\r\n\r\n /** Onaylanan yüzün descriptor'ını yuz_taninan'a kaydet */\r\n private async otomatikYuzTaninanKaydet(etiket: IYuzEtiketi, descriptor: number[]) {\r\n try {\r\n const baseUrl = FikoYTEnvIstemci.adres.sunucuUrl;\r\n const kisiId = etiket.kisiId || etiket.soyagaciKisiId || etiket.id;\r\n\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify({\r\n kisi_id: kisiId,\r\n kullanici_id: this.kart?.sahip,\r\n ad: etiket.kisiIsmi,\r\n ortalama_descriptor: descriptor,\r\n foto_sayisi: 1,\r\n tarih: new Date(),\r\n }));\r\n await fetch(`${baseUrl}/fapiv1/fikoyt.com.FikoYT.sistem.DB.yuz_taninan.ekle`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n\r\n // Yeni kişi kaydedildikten sonra tüm eski tespitleri tekrar eşleştir\r\n fetch(`${baseUrl}/api/yuz-tanima/yeniden-eslesme`, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ kullanici_id: this.kart?.sahip }),\r\n }).then(() => {\r\n // Sunucu eşleştirmeyi bitirdikten sonra cache'i temizle ve tekrar sorgula\r\n setTimeout(() => {\r\n this.otomatikYuzSorgulandiIds.clear();\r\n this.otomatikYuzTespitSorgula();\r\n }, 1500);\r\n }).catch(() => {});\r\n } catch (e) {\r\n console.warn('Tanınan kişi kayıt hatası:', e);\r\n }\r\n }\r\n\r\n private resimAlaniHesapla(img: HTMLImageElement) {\r\n const container = img.closest('.icerik-resim') || img.parentElement;\r\n if (!container) return;\r\n const cRect = container.getBoundingClientRect();\r\n const bounds = this.resimGercekBounds(img, cRect);\r\n this.resimAlani = {\r\n left: ((bounds.left - cRect.left) / cRect.width) * 100,\r\n top: ((bounds.top - cRect.top) / cRect.height) * 100,\r\n width: (bounds.width / cRect.width) * 100,\r\n height: (bounds.height / cRect.height) * 100,\r\n };\r\n this.CD.detectChanges();\r\n }\r\n\r\n private resimGercekBounds(img: HTMLImageElement, cRect: DOMRect) {\r\n const natW = img.naturalWidth || 1;\r\n const natH = img.naturalHeight || 1;\r\n const fit = getComputedStyle(img).objectFit || 'contain';\r\n let scale: number;\r\n if (fit === 'cover') {\r\n scale = Math.max(cRect.width / natW, cRect.height / natH);\r\n } else {\r\n // contain, scale-down, vb.\r\n scale = Math.min(cRect.width / natW, cRect.height / natH);\r\n }\r\n const rW = natW * scale;\r\n const rH = natH * scale;\r\n return {\r\n left: cRect.left + (cRect.width - rW) / 2,\r\n top: cRect.top + (cRect.height - rH) / 2,\r\n width: rW,\r\n height: rH,\r\n };\r\n }\r\n\r\n /** Touch veya Mouse event'ten clientX/clientY çıkarır */\r\n private dokunmaKoordinat(e: MouseEvent | TouchEvent): { clientX: number; clientY: number } | null {\r\n if ('touches' in e) {\r\n const t = e.touches[0] || e.changedTouches[0];\r\n return t ? { clientX: t.clientX, clientY: t.clientY } : null;\r\n }\r\n return { clientX: e.clientX, clientY: e.clientY };\r\n }\r\n\r\n private katmanBoyutAl($event: MouseEvent | TouchEvent): { width: number; height: number; left: number; top: number } | null {\r\n const target = ('touches' in $event ? $event.target : $event.target) as HTMLElement;\r\n const katman = target?.closest('.yuz-etiket-katman');\r\n if (katman) {\r\n const r = katman.getBoundingClientRect();\r\n return { width: r.width, height: r.height, left: r.left, top: r.top };\r\n }\r\n const container = target?.closest('.icerik-resim') || target?.closest('.icerik-ekreferans');\r\n if (container) return container.getBoundingClientRect();\r\n return null;\r\n }\r\n\r\n tiklandiResimEtiketle($event: MouseEvent) {\r\n if (!this.yuzEtiketModuAktif || !this.miSahip) return;\r\n const bounds = this.katmanBoyutAl($event);\r\n if (!bounds) return;\r\n const xPct = (($event.clientX - bounds.left) / bounds.width) * 100;\r\n const yPct = (($event.clientY - bounds.top) / bounds.height) * 100;\r\n const w = 12, h = 15;\r\n this.bekleyenEtiket = {\r\n x: Math.max(0, Math.min(100 - w, xPct - w / 2)),\r\n y: Math.max(0, Math.min(100 - h, yPct - h / 2)),\r\n w, h,\r\n };\r\n this.yuzEtiketAramaMetni = '';\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.CD.detectChanges();\r\n }\r\n\r\n yuzEtiketAra(metin: string) {\r\n this.yuzEtiketAramaMetni = metin;\r\n if (this.yuzEtiketAramaTimer) clearTimeout(this.yuzEtiketAramaTimer);\r\n if (!metin || metin.length < 2) {\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.CD.detectChanges();\r\n return;\r\n }\r\n this.yuzEtiketAramaTimer = setTimeout(async () => {\r\n try {\r\n // 1) Platform kullanıcıları ara\r\n const istek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.goUyeler.aggregate',\r\n });\r\n istek.parametreler = {\r\n aggregate: [\r\n { $match: { 'veri.pilesmi': { $regex: escapeRegex(metin), $options: 'i' } } },\r\n { $limit: 8 },\r\n { $project: { _id: 1, 'veri.pilesmi': 1 } }\r\n ]\r\n };\r\n await istek.isteSync();\r\n const platformSonuc = (istek.cevap?.sonuc || []).map((k: any) => ({\r\n _id: k._id,\r\n ismi: k.veri?.pilesmi || k._id,\r\n kaynak: 'platform',\r\n }));\r\n\r\n // 2) Soyağacı kişilerini ara\r\n let soyagaciSonuc: any[] = [];\r\n try {\r\n const soyIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n });\r\n soyIstek.parametreler = {\r\n aggregate: [\r\n { $match: {\r\n vt: 'FikoYT.sistem.soyAgaciKisiler',\r\n silindi: { $ne: true },\r\n $or: [\r\n { 'veri.isim': { $regex: escapeRegex(metin), $options: 'i' } },\r\n { 'veri.soyIsim': { $regex: escapeRegex(metin), $options: 'i' } },\r\n ]\r\n }},\r\n { $limit: 8 },\r\n { $project: { _id: 1, 'veri.isim': 1, 'veri.soyIsim': 1, 'veri.resimUrl': 1 } }\r\n ]\r\n };\r\n await soyIstek.isteSync();\r\n soyagaciSonuc = (soyIstek.cevap?.sonuc || []).map((k: any) => ({\r\n _id: 'soyagaci:' + k._id,\r\n soyagaciKisiId: k._id,\r\n ismi: ((k.veri?.isim || '') + ' ' + (k.veri?.soyIsim || '')).trim(),\r\n resimUrl: k.veri?.resimUrl,\r\n kaynak: 'soyagaci',\r\n }));\r\n } catch (e) {}\r\n\r\n this.yuzEtiketAramaSonuclari = [...soyagaciSonuc, ...platformSonuc];\r\n } catch (e) {\r\n this.yuzEtiketAramaSonuclari = [];\r\n }\r\n this.CD.detectChanges();\r\n }, 300);\r\n }\r\n\r\n bekleyenEtiketIptal() {\r\n this.bekleyenEtiket = null;\r\n this.yuzEtiketAramaMetni = '';\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.CD.detectChanges();\r\n }\r\n\r\n yuzEtiketEkle(kisi?: { _id?: string; ismi: string; kaynak?: string; soyagaciKisiId?: string; resimUrl?: string }) {\r\n if (!this.bekleyenEtiket || !this.aktifIcerik?.ek) return;\r\n if (!this.aktifIcerik.ek.yuzEtiketleri) this.aktifIcerik.ek.yuzEtiketleri = [];\r\n const etiket: IYuzEtiketi = {\r\n id: Date.now().toString(36) + Math.random().toString(36).slice(2, 6),\r\n x: this.bekleyenEtiket.x,\r\n y: this.bekleyenEtiket.y,\r\n w: this.bekleyenEtiket.w,\r\n h: this.bekleyenEtiket.h,\r\n kisiIsmi: kisi?.ismi || this.yuzEtiketAramaMetni,\r\n kisiId: kisi?.kaynak === 'platform' ? kisi._id : (kisi?._id && !kisi?.soyagaciKisiId ? kisi._id : undefined),\r\n soyagaciKisiId: kisi?.soyagaciKisiId || undefined,\r\n resimUrl: kisi?.resimUrl || undefined,\r\n };\r\n this.aktifIcerik.ek.yuzEtiketleri.push(etiket);\r\n this.bekleyenEtiket = null;\r\n this.yuzEtiketAramaMetni = '';\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.yuzEtiketleriKaydet();\r\n this.CD.detectChanges();\r\n }\r\n\r\n yuzEtiketSil(id: string) {\r\n if (!this.aktifIcerik?.ek?.yuzEtiketleri) return;\r\n this.aktifIcerik.ek.yuzEtiketleri = this.aktifIcerik.ek.yuzEtiketleri.filter((e: IYuzEtiketi) => e.id !== id);\r\n this.yuzEtiketleriKaydet();\r\n this.CD.detectChanges();\r\n }\r\n\r\n private _resimZenginlestirmeYapildi = new Set();\r\n\r\n /** Etiketlerdeki kişilerin resimUrl'ini soyağacından toplu çekip yaz */\r\n private async yuzEtiketResimlerZenginlestir() {\r\n const etiketler = this.aktifIcerik?.ek?.yuzEtiketleri as IYuzEtiketi[];\r\n if (!etiketler?.length) return;\r\n\r\n // resimUrl eksik olan etiketlerin tüm ID'lerini topla (soyagaciKisiId VEYA kisiId)\r\n const araIdler: string[] = [];\r\n const etiketIdMap = new Map(); // id -> etiketler\r\n for (const e of etiketler) {\r\n if (e.resimUrl) continue;\r\n const id = e.soyagaciKisiId || e.kisiId;\r\n if (!id || this._resimZenginlestirmeYapildi.has(id)) continue;\r\n araIdler.push(id);\r\n this._resimZenginlestirmeYapildi.add(id);\r\n if (!etiketIdMap.has(id)) etiketIdMap.set(id, []);\r\n etiketIdMap.get(id)!.push(e);\r\n }\r\n if (!araIdler.length) return;\r\n\r\n try {\r\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: 'FikoYT.sistem.DB.hareketler.aggregate' });\r\n istek.parametreler = {\r\n aggregate: [\r\n { $match: {\r\n vt: 'FikoYT.sistem.soyAgaciKisiler',\r\n silindi: { $ne: true },\r\n $or: [\r\n { _id: { $in: araIdler } },\r\n { 'veri.platformKullaniciId': { $in: araIdler } },\r\n ]\r\n } },\r\n { $project: { 'veri.resimUrl': 1, 'veri.platformKullaniciId': 1 } }\r\n ]\r\n };\r\n await istek.isteSync();\r\n const sonuclar = istek.cevap?.sonuc || [];\r\n\r\n let degisti = false;\r\n for (const s of sonuclar) {\r\n if (!s.veri?.resimUrl) continue;\r\n // _id ile eşleşen etiketler\r\n const byId = etiketIdMap.get(s._id);\r\n if (byId) for (const e of byId) { e.resimUrl = s.veri.resimUrl; degisti = true; }\r\n // platformKullaniciId ile eşleşen etiketler\r\n if (s.veri.platformKullaniciId) {\r\n const byPlatform = etiketIdMap.get(s.veri.platformKullaniciId);\r\n if (byPlatform) for (const e of byPlatform) { e.resimUrl = s.veri.resimUrl; degisti = true; }\r\n }\r\n }\r\n if (degisti) this.CD.detectChanges();\r\n } catch {}\r\n }\r\n\r\n duzenlenenEtiketId: string | null = null;\r\n duzenlenenEtiketIsmi = '';\r\n acikBalonEtiketId: string | null = null;\r\n\r\n // KisiBalonV2 callback'leri — kişi detay ve navigasyon\r\n balonKisiDetayCekFn = (kisiId: string) => this.soyAgaci.kisiDetayVeIliskilerCek(kisiId);\r\n\r\n balonKisiyeGitFn = (kisiId: string, tip: 'soyagaci' | 'profil' | 'agac') => {\r\n if (tip === 'soyagaci') this.router.navigate(['/\\u{1F9E9}/\\u{1F333}/kisi', kisiId]);\r\n else if (tip === 'agac') this.router.navigate(['/\\u{1F9E9}/\\u{1F333}'], { queryParams: { odakla: kisiId } });\r\n };\r\n\r\n get acikBalonEtiket(): IYuzEtiketi | null {\r\n if (!this.acikBalonEtiketId) return null;\r\n return this.aktifIcerik?.ek?.yuzEtiketleri?.find((e: IYuzEtiketi) => e.id === this.acikBalonEtiketId) || null;\r\n }\r\n\r\n popoverGorunurlukDegisti(gorunur: boolean, etiket: IYuzEtiketi) {\r\n if (gorunur) {\r\n this.acikBalonEtiketId = etiket.id;\r\n if (this.miSahip && this.yuzEtiketModuAktif) {\r\n this.duzenlenenEtiketId = etiket.id;\r\n this.duzenlenenEtiketIsmi = etiket.kisiIsmi;\r\n this.yuzEtiketAramaMetni = etiket.kisiIsmi;\r\n this.yuzEtiketAramaSonuclari = [];\r\n }\r\n } else {\r\n this.acikBalonEtiketId = null;\r\n this.duzenlenenEtiketId = null;\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** Aktif içeriğin yüz crop resim URL'i (yuz-crop bileşeni için) */\r\n get yuzKirpResimUrl(): string {\r\n const ek = this.aktifIcerik?.ek;\r\n if (!ek?._id) return '';\r\n const resimTuru = ek.turu === 'RESIM' || (ek.turu === 'EKREFERANS' && ek.bilgiler?.orijinalTuru === 'RESIM');\r\n const icerikId = resimTuru ? ek._id : ek.resimid;\r\n if (!icerikId) return '';\r\n return resimTuru\r\n ? `${this.FikoYT.fapiUrl}/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.${icerikId}.resim?boyut=480x?`\r\n : `${this.FikoYT.fapiUrl}/fikoyt.com.FikoYT.sistem.aktifKullanici.hareketler.${icerikId}.dosyaResim?boyut=480x?`;\r\n }\r\n\r\n etiketTiklandi(etiket: IYuzEtiketi) {\r\n if (this.miSahip && this.yuzEtiketModuAktif) {\r\n // Etiketleme modunda: düzenleme arama kutusunu aç\r\n this.duzenlenenEtiketId = etiket.id;\r\n this.duzenlenenEtiketIsmi = etiket.kisiIsmi;\r\n this.yuzEtiketAramaMetni = etiket.kisiIsmi;\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.acikBalonEtiketId = etiket.id;\r\n } else {\r\n // Normal mod: kişi kartı toggle\r\n this.acikBalonEtiketId = this.acikBalonEtiketId === etiket.id ? null : etiket.id;\r\n this.duzenlenenEtiketId = null;\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** kisi-balon-v2 düzenleme kaydet/başlat callback */\r\n balonDuzenleKaydet(sonuc: any) {\r\n if (sonuc?._duzenlemeBaslat) {\r\n // İşlemler sekmesinden \"Düzenle\" tıklandı\r\n this.duzenlenenEtiketId = this.acikBalonEtiketId;\r\n this.CD.detectChanges();\r\n return;\r\n }\r\n // Kaydet\r\n this.yuzEtiketDuzenleKaydet(sonuc);\r\n }\r\n\r\n /** Yüz etiketine tıklanınca kişi sayfasına git (liste modu ve doğrudan navigasyon) */\r\n yuzEtiketKisiSayfasinaGit(etiket: IYuzEtiketi) {\r\n const hedefId = etiket.soyagaciKisiId || etiket.kisiId;\r\n if (!hedefId) return;\r\n // soyagaciKisiId varsa veya kisiId ObjectId (24 hex) ise soyagaci kisi sayfasi\r\n if (etiket.soyagaciKisiId || /^[a-f0-9]{24}$/i.test(hedefId)) {\r\n this.router.navigate(['/🧩/🌳/kisi', hedefId]);\r\n } else {\r\n this.router.navigate(['/🧩/🕸', hedefId]);\r\n }\r\n }\r\n\r\n yuzEtiketDuzenleBasla(etiket: IYuzEtiketi) {\r\n this.duzenlenenEtiketId = etiket.id;\r\n this.duzenlenenEtiketIsmi = etiket.kisiIsmi;\r\n this.yuzEtiketAramaMetni = etiket.kisiIsmi;\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.CD.detectChanges();\r\n }\r\n\r\n yuzEtiketDuzenleKaydet(kisi?: { _id?: string; ismi: string; kaynak?: string; soyagaciKisiId?: string; resimUrl?: string }) {\r\n if (!this.duzenlenenEtiketId) return;\r\n const etiket = this.aktifIcerik?.ek?.yuzEtiketleri?.find((e: IYuzEtiketi) => e.id === this.duzenlenenEtiketId);\r\n if (!etiket) return;\r\n etiket.kisiIsmi = kisi?.ismi || this.duzenlenenEtiketIsmi;\r\n etiket.kisiId = kisi?.kaynak === 'platform' ? kisi._id : (kisi?._id && !kisi?.soyagaciKisiId ? kisi._id : etiket.kisiId);\r\n etiket.soyagaciKisiId = kisi?.soyagaciKisiId || etiket.soyagaciKisiId;\r\n if (kisi?.resimUrl) etiket.resimUrl = kisi.resimUrl;\r\n this.duzenlenenEtiketId = null;\r\n this.duzenlenenEtiketIsmi = '';\r\n this.acikBalonEtiketId = null;\r\n this.yuzEtiketAramaMetni = '';\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.yuzEtiketleriKaydet();\r\n this.CD.detectChanges();\r\n }\r\n\r\n yuzEtiketDuzenleIptal() {\r\n this.duzenlenenEtiketId = null;\r\n this.duzenlenenEtiketIsmi = '';\r\n this.acikBalonEtiketId = null;\r\n this.yuzEtiketAramaMetni = '';\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** Düzenlenen etiketin % pozisyonu (popup konumlandırma için) */\r\n get duzenlenenEtiketPozisyon(): { x: number; y: number } | null {\r\n if (!this.duzenlenenEtiketId) return null;\r\n const etiket = this.aktifIcerik?.ek?.yuzEtiketleri?.find((e: IYuzEtiketi) => e.id === this.duzenlenenEtiketId);\r\n if (!etiket) return null;\r\n return { x: etiket.x + etiket.w / 2, y: etiket.y + etiket.h };\r\n }\r\n\r\n katmanTiklandi($event: MouseEvent) {\r\n if (!this.yuzEtiketModuAktif || !this.miSahip) return;\r\n if (this.bekleyenEtiket) return;\r\n $event.stopPropagation();\r\n const rect = ($event.currentTarget as HTMLElement).getBoundingClientRect();\r\n const xPct = (($event.clientX - rect.left) / rect.width) * 100;\r\n const yPct = (($event.clientY - rect.top) / rect.height) * 100;\r\n const w = 12, h = 15;\r\n this.bekleyenEtiket = {\r\n x: Math.max(0, Math.min(100 - w, xPct - w / 2)),\r\n y: Math.max(0, Math.min(100 - h, yPct - h / 2)),\r\n w, h,\r\n };\r\n this.yuzEtiketAramaMetni = '';\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.CD.detectChanges();\r\n }\r\n\r\n yuzEtiketGosterimDegistir() {\r\n const modlar = IceriklerComponent.GOSTERIM_MODLARI;\r\n const idx = modlar.indexOf(this.yuzGosterimModu);\r\n this.yuzGosterimModu = modlar[(idx + 1) % modlar.length];\r\n this.yuzEtiketlerGorunur = false;\r\n // Tüm kartları bilgilendir (merkezi mod değişti)\r\n this.FikoYT.degisti.emit();\r\n }\r\n\r\n /** Facebook modu: resme tap → etiketleri göster/gizle toggle */\r\n yuzEtiketTapToggle() {\r\n if (this.yuzGosterimModu !== 'etiket') return;\r\n this.yuzEtiketlerGorunur = !this.yuzEtiketlerGorunur;\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** Google modu: resme tap → 1.5sn çerçeve peek → otomatik gizle */\r\n yuzEtiketTapPeek() {\r\n if (this.yuzGosterimModu !== 'liste') return;\r\n if (this.tapPeekTimer) clearTimeout(this.tapPeekTimer);\r\n this.yuzEtiketlerGorunur = true;\r\n this.CD.detectChanges();\r\n this.tapPeekTimer = setTimeout(() => {\r\n this.yuzEtiketlerGorunur = false;\r\n this.CD.detectChanges();\r\n }, 1500);\r\n }\r\n\r\n /** Resme tıklama/dokunma — mod bazlı davranış */\r\n resimTapHandler($event: Event) {\r\n if (this.yuzEtiketModuAktif) return; // Düzenleme modundayken karışma\r\n if (this.yuzGosterimModu === 'etiket') {\r\n this.yuzEtiketTapToggle();\r\n } else if (this.yuzGosterimModu === 'liste') {\r\n this.yuzEtiketTapPeek();\r\n }\r\n }\r\n\r\n cerceveTasimaBasla($event: MouseEvent | TouchEvent, etiketId: string) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n const etiket = this.aktifIcerik?.ek?.yuzEtiketleri?.find((e: IYuzEtiketi) => e.id === etiketId);\r\n if (!etiket) return;\r\n const kor = this.dokunmaKoordinat($event);\r\n if (!kor) return;\r\n const startX = kor.clientX;\r\n const startY = kor.clientY;\r\n const baslangic = { x: etiket.x, y: etiket.y };\r\n const katmanBoyut = this.katmanBoyutAl($event);\r\n if (!katmanBoyut) return;\r\n const sabitW = katmanBoyut.width;\r\n const sabitH = katmanBoyut.height;\r\n const hareket = (e: MouseEvent | TouchEvent) => {\r\n const k = this.dokunmaKoordinat(e);\r\n if (!k) return;\r\n const dx = ((k.clientX - startX) / sabitW) * 100;\r\n const dy = ((k.clientY - startY) / sabitH) * 100;\r\n etiket.x = Math.max(0, Math.min(100 - etiket.w, baslangic.x + dx));\r\n etiket.y = Math.max(0, Math.min(100 - etiket.h, baslangic.y + dy));\r\n this.CD.detectChanges();\r\n };\r\n const birak = () => {\r\n document.removeEventListener('mousemove', hareket);\r\n document.removeEventListener('mouseup', birak);\r\n document.removeEventListener('touchmove', hareket);\r\n document.removeEventListener('touchend', birak);\r\n this.yuzEtiketleriKaydet();\r\n };\r\n document.addEventListener('mousemove', hareket);\r\n document.addEventListener('mouseup', birak);\r\n document.addEventListener('touchmove', hareket, { passive: false });\r\n document.addEventListener('touchend', birak);\r\n }\r\n\r\n cerceveBoyutlandirBasla($event: MouseEvent | TouchEvent, etiketId: string, yon: string) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n const etiket = this.aktifIcerik?.ek?.yuzEtiketleri?.find((e: IYuzEtiketi) => e.id === etiketId);\r\n if (!etiket) return;\r\n const kor = this.dokunmaKoordinat($event);\r\n if (!kor) return;\r\n this.suruklenenEtiketId = etiketId;\r\n this.suruklemeBilgi = {\r\n yon,\r\n baslangicX: kor.clientX,\r\n baslangicY: kor.clientY,\r\n baslangicRect: { x: etiket.x, y: etiket.y, w: etiket.w, h: etiket.h },\r\n };\r\n const katmanBoyut = this.katmanBoyutAl($event);\r\n if (!katmanBoyut) return;\r\n const sabitW = katmanBoyut.width;\r\n const sabitH = katmanBoyut.height;\r\n const hareket = (e: MouseEvent | TouchEvent) => {\r\n if (!this.suruklemeBilgi || !this.suruklenenEtiketId) return;\r\n const et = this.aktifIcerik?.ek?.yuzEtiketleri?.find((t: IYuzEtiketi) => t.id === this.suruklenenEtiketId);\r\n if (!et) return;\r\n const k = this.dokunmaKoordinat(e);\r\n if (!k) return;\r\n const dx = ((k.clientX - this.suruklemeBilgi.baslangicX) / sabitW) * 100;\r\n const dy = ((k.clientY - this.suruklemeBilgi.baslangicY) / sabitH) * 100;\r\n const b = this.suruklemeBilgi.baslangicRect;\r\n const y = this.suruklemeBilgi.yon;\r\n const min = 5;\r\n if (y.includes('e')) { et.w = Math.max(min, Math.min(100 - b.x, b.w + dx)); }\r\n if (y.includes('w')) { et.x = Math.min(b.x + b.w - min, b.x + dx); et.w = Math.max(min, b.w - dx); }\r\n if (y.includes('s')) { et.h = Math.max(min, Math.min(100 - b.y, b.h + dy)); }\r\n if (y.includes('n')) { et.y = Math.min(b.y + b.h - min, b.y + dy); et.h = Math.max(min, b.h - dy); }\r\n this.CD.detectChanges();\r\n };\r\n const birak = () => {\r\n document.removeEventListener('mousemove', hareket);\r\n document.removeEventListener('mouseup', birak);\r\n document.removeEventListener('touchmove', hareket);\r\n document.removeEventListener('touchend', birak);\r\n this.suruklenenEtiketId = null;\r\n this.suruklemeBilgi = null;\r\n this.yuzEtiketleriKaydet();\r\n };\r\n document.addEventListener('mousemove', hareket);\r\n document.addEventListener('mouseup', birak);\r\n document.addEventListener('touchmove', hareket, { passive: false });\r\n document.addEventListener('touchend', birak);\r\n }\r\n\r\n bekleyenCerceveTasimaBasla($event: MouseEvent | TouchEvent) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n if (!this.bekleyenEtiket) return;\r\n const kor = this.dokunmaKoordinat($event);\r\n if (!kor) return;\r\n const startX = kor.clientX;\r\n const startY = kor.clientY;\r\n const baslangic = { x: this.bekleyenEtiket.x, y: this.bekleyenEtiket.y };\r\n const katmanBoyut = this.katmanBoyutAl($event);\r\n if (!katmanBoyut) return;\r\n const sabitW = katmanBoyut.width;\r\n const sabitH = katmanBoyut.height;\r\n const hareket = (e: MouseEvent | TouchEvent) => {\r\n if (!this.bekleyenEtiket) return;\r\n const k = this.dokunmaKoordinat(e);\r\n if (!k) return;\r\n const dx = ((k.clientX - startX) / sabitW) * 100;\r\n const dy = ((k.clientY - startY) / sabitH) * 100;\r\n this.bekleyenEtiket.x = Math.max(0, Math.min(100 - this.bekleyenEtiket.w, baslangic.x + dx));\r\n this.bekleyenEtiket.y = Math.max(0, Math.min(100 - this.bekleyenEtiket.h, baslangic.y + dy));\r\n this.CD.detectChanges();\r\n };\r\n const birak = () => {\r\n document.removeEventListener('mousemove', hareket);\r\n document.removeEventListener('mouseup', birak);\r\n document.removeEventListener('touchmove', hareket);\r\n document.removeEventListener('touchend', birak);\r\n };\r\n document.addEventListener('mousemove', hareket);\r\n document.addEventListener('mouseup', birak);\r\n document.addEventListener('touchmove', hareket, { passive: false });\r\n document.addEventListener('touchend', birak);\r\n }\r\n\r\n bekleyenCerceveBoyutlandirBasla($event: MouseEvent | TouchEvent, yon: string) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n if (!this.bekleyenEtiket) return;\r\n const kor = this.dokunmaKoordinat($event);\r\n if (!kor) return;\r\n const baslangic = { ...this.bekleyenEtiket };\r\n const startX = kor.clientX;\r\n const startY = kor.clientY;\r\n const katmanBoyut = this.katmanBoyutAl($event);\r\n if (!katmanBoyut) return;\r\n const sabitW = katmanBoyut.width;\r\n const sabitH = katmanBoyut.height;\r\n const hareket = (e: MouseEvent | TouchEvent) => {\r\n if (!this.bekleyenEtiket) return;\r\n const k = this.dokunmaKoordinat(e);\r\n if (!k) return;\r\n const dx = ((k.clientX - startX) / sabitW) * 100;\r\n const dy = ((k.clientY - startY) / sabitH) * 100;\r\n const min = 5;\r\n if (yon.includes('e')) { this.bekleyenEtiket.w = Math.max(min, Math.min(100 - baslangic.x, baslangic.w + dx)); }\r\n if (yon.includes('w')) { this.bekleyenEtiket.x = Math.min(baslangic.x + baslangic.w - min, baslangic.x + dx); this.bekleyenEtiket.w = Math.max(min, baslangic.w - dx); }\r\n if (yon.includes('s')) { this.bekleyenEtiket.h = Math.max(min, Math.min(100 - baslangic.y, baslangic.h + dy)); }\r\n if (yon.includes('n')) { this.bekleyenEtiket.y = Math.min(baslangic.y + baslangic.h - min, baslangic.y + dy); this.bekleyenEtiket.h = Math.max(min, baslangic.h - dy); }\r\n this.CD.detectChanges();\r\n };\r\n const birak = () => {\r\n document.removeEventListener('mousemove', hareket);\r\n document.removeEventListener('mouseup', birak);\r\n document.removeEventListener('touchmove', hareket);\r\n document.removeEventListener('touchend', birak);\r\n };\r\n document.addEventListener('mousemove', hareket);\r\n document.addEventListener('mouseup', birak);\r\n document.addEventListener('touchmove', hareket, { passive: false });\r\n document.addEventListener('touchend', birak);\r\n }\r\n\r\n private async yuzEtiketleriKaydet() {\r\n const icerik = this.aktifIcerik;\r\n if (!icerik?._id) return;\r\n try {\r\n const guncelleme: any = {\r\n _id: icerik._id,\r\n 'ek.yuzEtiketleri': icerik.ek.yuzEtiketleri || [],\r\n 'ek.yuzEtiketGosterim': icerik.ek.yuzEtiketGosterim || 'hover',\r\n };\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify(guncelleme));\r\n const baseUrl = FikoYTEnvIstemci.adres.sunucuUrl;\r\n await fetch(`${baseUrl}/fapiv1/fikoyt.com.FikoYT.sistem.DB.hareketler.ekle`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n } catch (e) {\r\n console.warn('Yüz etiketleri kayıt hatası:', e);\r\n }\r\n }\r\n\r\n // TrackBy fonksiyonlari - ngFor performansi icin\r\n trackByEtiketId = (_: number, etiket: IYuzEtiketi) => etiket.id;\r\n trackByIndex = (i: number) => i;\r\n trackById = (_: number, item: any) => item._id || item.id;\r\n trackByKisiId = (_: number, item: any) => item.kisi_id || item._id || item.ismi;\r\n\r\n // Referans Drawer\r\n referansDrawerAcik = false;\r\n referansDrawerVeri: any = null;\r\n referansZinciri: any[] = [];\r\n zincirYukleniyor = false;\r\n\r\n async tiklandiReferansDetay(icerik: any) {\r\n const ek = icerik?.ek;\r\n if (!ek?.bilgiler) return;\r\n\r\n this.referansDrawerVeri = {\r\n orijinalTuru: ek.bilgiler.orijinalTuru,\r\n sahip: ek.bilgiler.sahip,\r\n sahipIsim: ek.bilgiler.sahipIsim,\r\n kartId: ek.bilgiler.kartId,\r\n orijinalTarih: ek.bilgiler.orijinalTarih,\r\n referansSayisi: ek.bilgilers?.referansSayisi || ek.bilgiler.referansSayisi || 1,\r\n ekId: ek._id,\r\n thumbnailUrl: this.FikoYT.fapiUrl + '/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.' + ek._id + '.resim?boyut=300x?&t=0',\r\n sahipResimUrl: this.FikoYT.fapiUrl + '/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.' + ek.bilgiler.sahip + '.resim?boyut=60x?&t=0',\r\n };\r\n this.referansZinciri = [];\r\n this.referansDrawerAcik = true;\r\n this.CD.detectChanges();\r\n\r\n // Referans zincirini yükle\r\n if (ek.bilgiler.kartId) {\r\n this.zincirYukleniyor = true;\r\n this.CD.detectChanges();\r\n await this.referansZinciriYukle(ek.bilgiler.kartId);\r\n this.zincirYukleniyor = false;\r\n this.CD.detectChanges();\r\n }\r\n }\r\n\r\n /** Referans zincirini geriye doğru takip et (max 5 adım) */\r\n private async referansZinciriYukle(kartId: string, derinlik = 0) {\r\n if (derinlik >= 5 || !kartId) return;\r\n\r\n try {\r\n const istek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n { $match: { _id: kartId } },\r\n {\r\n $lookup: {\r\n from: 'hareketler',\r\n localField: 'veri.icerikler',\r\n foreignField: '_id',\r\n as: 'veri.icerikler'\r\n }\r\n },\r\n { $limit: 1 },\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n const cevap: any = await istek.isteSync();\r\n const kart = cevap?.cevap?.sonuc?.[0];\r\n if (!kart) return;\r\n\r\n this.referansZinciri.push({\r\n kartId: kart._id,\r\n sahip: kart.sahip,\r\n tarih: kart.tarih,\r\n sahipIsim: kart.veri?.sahipIsim || 'Kullanıcı',\r\n sahipResimUrl: this.FikoYT.fapiUrl + '/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.' + kart.sahip + '.resim?boyut=60x?&t=0',\r\n icerikSayisi: kart.veri?.icerikler?.length || 0,\r\n });\r\n this.CD.detectChanges();\r\n\r\n // Eğer bu kartın da EKREFERANS içeriği varsa zinciri takip et\r\n const ekReferans = kart.veri?.icerikler?.find((i: any) => i?.ek?.turu === 'EKREFERANS');\r\n if (ekReferans?.ek?.bilgiler?.kartId) {\r\n await this.referansZinciriYukle(ekReferans.ek.bilgiler.kartId, derinlik + 1);\r\n }\r\n } catch (e) {\r\n console.warn('Referans zinciri yükleme hatası:', e);\r\n }\r\n }\r\n\r\n referansDrawerKapat() {\r\n this.referansDrawerAcik = false;\r\n this.referansZinciri = [];\r\n this.CD.detectChanges();\r\n }\r\n get miSahip() {\r\n return this.FikoYT.kimlik.aktifKullaniciJson()._id == this.kart?.sahip;\r\n }\r\n\r\n /** 3D fotoğraf çekme yetkisi: kart sahibi veya süper yönetici */\r\n get stpFotoCekebilirMi(): boolean {\r\n if (this.miSahip) return true;\r\n const yetkiler = this.FikoYT.kimlik?.aktifKullaniciJson?.()?.yetkiler || [];\r\n return Array.isArray(yetkiler) && yetkiler.some((x: string) => x === 'Süper Yönetici' || x === 'Super Yonetici');\r\n }\r\n\r\n /** EKREFERANS gerçek referans mı (başka birinin içeriği) yoksa kendi içeriğimiz mi? */\r\n get gercekReferansMi(): boolean {\r\n const ekSahip = this.aktifIcerik?.ek?.bilgiler?.sahip;\r\n return !!ekSahip && ekSahip !== this.kart?.sahip;\r\n }\r\n\r\n async ekKonumDuzenle() {\r\n if (!this.miSahip || !this.aktifIcerik?.ek) return;\r\n const { HaritaYerSeciciComponent } = await import('@/src/app/uygulamalar/soyagaci/harita-yer-secici/harita-yer-secici.component');\r\n const sub = this.nzModalServis.create({\r\n nzTitle: 'Ek Konumu Seç',\r\n nzContent: HaritaYerSeciciComponent,\r\n nzWidth: 520,\r\n nzFooter: null,\r\n nzData: {\r\n mevcutYer: this.aktifIcerik.ek.konum?.yerIsmi || '',\r\n mevcutKoordinat: this.aktifIcerik.ek.konum?.koordinat || null,\r\n },\r\n }).afterClose.subscribe((sonuc: any) => {\r\n if (sonuc?.yerIsmi) {\r\n if (!this.aktifIcerik.ek.konum) this.aktifIcerik.ek.konum = {};\r\n this.aktifIcerik.ek.konum.yerIsmi = sonuc.yerIsmi;\r\n this.aktifIcerik.ek.konum.koordinat = sonuc.koordinat;\r\n this.icerikGuncelle();\r\n this.CD.detectChanges();\r\n }\r\n sub.unsubscribe();\r\n });\r\n }\r\n\r\n async konumIcerikDuzenle() {\r\n if (!this.miSahip || !this.aktifIcerik?.ek) return;\r\n const { HaritaYerSeciciComponent } = await import('@/src/app/uygulamalar/soyagaci/harita-yer-secici/harita-yer-secici.component');\r\n const sub = this.nzModalServis.create({\r\n nzTitle: 'Konumu Değiştir',\r\n nzContent: HaritaYerSeciciComponent,\r\n nzWidth: 520,\r\n nzFooter: null,\r\n nzData: {\r\n mevcutYer: this.aktifIcerik.ek.bilgiler?.yerIsmi || this.aktifIcerik.ek.ismi || '',\r\n mevcutKoordinat: this.aktifIcerik.ek.bilgiler?.koordinat || null,\r\n },\r\n }).afterClose.subscribe((sonuc: any) => {\r\n if (sonuc?.yerIsmi) {\r\n this.aktifIcerik.ek.ismi = sonuc.yerIsmi;\r\n this.aktifIcerik.ek.bilgiler = { yerIsmi: sonuc.yerIsmi, koordinat: sonuc.koordinat };\r\n this.icerikGuncelle();\r\n if (this.konumLeafletMap) { this.konumLeafletMap.remove(); this.konumLeafletMap = null; }\r\n this.konumHaritaAktifId = null;\r\n this.CD.detectChanges();\r\n }\r\n sub.unsubscribe();\r\n });\r\n }\r\n\r\n async icerikGuncelle() {\r\n this.FikoYT.degisti.emit();\r\n\r\n const icerik = this.aktifIcerik;\r\n if (!icerik?._id) return;\r\n\r\n try {\r\n const guncelleme: any = {\r\n _id: icerik._id,\r\n 'ek.konum': icerik.ek?.konum ?? null,\r\n };\r\n // KONUM tipi ek ise bilgiler ve ismi de güncelle\r\n if (icerik.ek?.turu === 'KONUM') {\r\n guncelleme['ek.bilgiler'] = icerik.ek.bilgiler;\r\n guncelleme['ek.ismi'] = icerik.ek.ismi;\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify(guncelleme));\r\n\r\n const baseUrl = FikoYTEnvIstemci.adres.sunucuUrl;\r\n await fetch(`${baseUrl}/fapiv1/fikoyt.com.FikoYT.sistem.DB.hareketler.ekle`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n } catch (e) {\r\n console.error('İçerik konum güncellenemedi:', e);\r\n }\r\n }\r\n\r\n constructor(public readonly FikoYT: FikoYTService, public readonly CD: ChangeDetectorRef, @Inject(DOCUMENT) private readonly document: Document, public router: Router, private nzMessage: NzMessageService, private nzModalServis: NzModalService, private soyAgaci: SoyAgaciService) {\r\n // CD.detach();\r\n this.subsList.push(FikoYT.degisti.subscribe(() => {\r\n CD.detectChanges();\r\n $('.ui.embed').embed({\r\n brandedUI: true,\r\n });\r\n }))\r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n $('.ui.embed').embed({\r\n brandedUI: true\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Lightbox'ı body'e taşı (parent transform'lar position:fixed'ı bozuyor)\r\n if (this.lightboxOverlay?.nativeElement) {\r\n this.document.body.appendChild(this.lightboxOverlay.nativeElement);\r\n }\r\n // STP-3D tanı: sayfa yenilendikten sonra resimid'in hydrated veride gelip gelmediğini gösterir\r\n [1000, 3500].forEach(ms => setTimeout(() => {\r\n const ek = this.aktifIcerik?.ek;\r\n if (ek && (ek.ismi?.endsWith('.stp') || ek.ismi?.endsWith('.wrl') || ek.ismi?.endsWith('.FikoWrl'))) {\r\n console.log(`[STP-3D][${ms}ms] icerik._id=${this.aktifIcerik?._id} ek._id=${ek._id} ek.resimid=${ek.resimid ?? 'YOK'}`);\r\n }\r\n }, ms));\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n // 🚀 PERF: konumHaritaGuncelle async'tir; her CD'de çağrısı gereksiz bir\r\n // Promise/microtask üretiyordu. Sadece gerçekten bir konum içeriği\r\n // görünürken çağır (çoğu içerik KONUM değil). Idempotent guard hâlâ içeride.\r\n const ek = this.aktifIcerik?.ek;\r\n if (ek?.turu !== 'KONUM' || !ek?.bilgiler?.koordinat || !this.konumHaritaDiv?.nativeElement) return;\r\n this.konumHaritaGuncelle();\r\n }\r\n\r\n private async konumHaritaGuncelle() {\r\n const ek = this.aktifIcerik?.ek;\r\n if (ek?.turu !== 'KONUM' || !ek?.bilgiler?.koordinat || !this.konumHaritaDiv?.nativeElement) {\r\n return;\r\n }\r\n const ekId = ek._id || `${ek.bilgiler.koordinat.lat}_${ek.bilgiler.koordinat.lng}`;\r\n if (this.konumHaritaAktifId === ekId) return;\r\n this.konumHaritaAktifId = ekId;\r\n\r\n if (this.konumLeafletMap) {\r\n this.konumLeafletMap.remove();\r\n this.konumLeafletMap = null;\r\n }\r\n\r\n const L = await import('leaflet').then(m => (m as any).default ?? m);\r\n const lat = ek.bilgiler.koordinat.lat;\r\n const lng = ek.bilgiler.koordinat.lng;\r\n const map = L.map(this.konumHaritaDiv.nativeElement, { zoomControl: false, attributionControl: false }).setView([lat, lng], 13);\r\n L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);\r\n const pinIcon = L.divIcon({\r\n className: '',\r\n html: `\r\n \r\n \r\n \r\n \r\n `,\r\n iconSize: [32, 42],\r\n iconAnchor: [16, 42],\r\n });\r\n L.marker([lat, lng], { icon: pinIcon }).addTo(map);\r\n this.konumLeafletMap = map;\r\n setTimeout(() => map.invalidateSize(), 200);\r\n }\r\n\r\n tiklandiEkSil($event: any) {\r\n\r\n }\r\n\r\n tiklandiIcerikTamEkran(elem: any) {\r\n const ek = this.icerikler[this.aktifIcerikNo]?.ek;\r\n if (!ek) return;\r\n if (ek.turu == IEkTuru.RESIM) {\r\n this.lightboxAc();\r\n } else if (ek.turu == IEkTuru.FIKOGL) {\r\n window.open(this.FikoYT.fapiUrl + '/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.' + ek.resimid + '.dosyaResim', '_blank');\r\n }\r\n }\r\n\r\n // ─── Lightbox Sistemi ──────────────────────────────────────────\r\n lightboxAcik = false;\r\n lightboxZoom = 1;\r\n lightboxPanX = 0;\r\n lightboxPanY = 0;\r\n lightboxResimAlani: { left: number; top: number; width: number; height: number } | null = null;\r\n private _lbPanAktif = false;\r\n private _lbPanStartX = 0;\r\n private _lbPanStartY = 0;\r\n private _lbPanOffsetX = 0;\r\n private _lbPanOffsetY = 0;\r\n private _lbKeydownHandler: ((e: KeyboardEvent) => void) | null = null;\r\n\r\n lightboxAc() {\r\n this.lightboxAcik = true;\r\n this.lightboxZoom = 1;\r\n this.lightboxPanX = 0;\r\n this.lightboxPanY = 0;\r\n this.lightboxResimAlani = null;\r\n this.document.body.style.overflow = 'hidden';\r\n this.document.body.classList.add('fikoyt-lightbox-aktif');\r\n // Keyboard listener\r\n this._lbKeydownHandler = (e: KeyboardEvent) => this.lightboxKeydown(e);\r\n this.document.addEventListener('keydown', this._lbKeydownHandler);\r\n this.CD.detectChanges();\r\n // display:none→flex geçişinde resim zaten yüklüyse alan hesapla\r\n this._lightboxResimAlaniHesapla();\r\n }\r\n\r\n /** Lightbox resim alanını hesapla (double-RAF ile layout'un tamamlanmasını garantile) */\r\n private _lightboxResimAlaniHesapla() {\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => {\r\n const img = this.lightboxOverlay?.nativeElement?.querySelector('.lightbox-resim') as HTMLImageElement;\r\n if (img?.complete && img.naturalWidth > 0) {\r\n this.lightboxResimYuklendi({ target: img } as any);\r\n }\r\n });\r\n });\r\n }\r\n\r\n lightboxKapat() {\r\n this.lightboxAcik = false;\r\n this.document.body.style.overflow = '';\r\n this.document.body.classList.remove('fikoyt-lightbox-aktif');\r\n if (this._lbKeydownHandler) {\r\n this.document.removeEventListener('keydown', this._lbKeydownHandler);\r\n this._lbKeydownHandler = null;\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n lightboxKeydown(e: KeyboardEvent) {\r\n if (!this.lightboxAcik) return;\r\n switch (e.key) {\r\n case 'Escape': this.lightboxKapat(); break;\r\n case '+': case '=': this.lightboxZoomDegistir(0.25); break;\r\n case '-': this.lightboxZoomDegistir(-0.25); break;\r\n case '0': this.lightboxSifirla(); break;\r\n case 'ArrowLeft': if (this.aktifIcerikNo > 0) { this.aktifIcerikNo--; this.lightboxSifirla(); } break;\r\n case 'ArrowRight': if (this.aktifIcerikNo < this.icerikler.length - 1) { this.aktifIcerikNo++; this.lightboxSifirla(); } break;\r\n case 'f': case 'F': if (this.miSahip) { this.yuzEtiketModuAktif = !this.yuzEtiketModuAktif; this.bekleyenEtiket = null; this.CD.detectChanges(); } break;\r\n }\r\n }\r\n\r\n lightboxZoomDegistir(delta: number) {\r\n this.lightboxZoom = Math.max(0.25, Math.min(8, this.lightboxZoom + delta));\r\n if (Math.abs(this.lightboxZoom - 1) < 0.05) this.lightboxZoom = 1;\r\n this.CD.detectChanges();\r\n }\r\n\r\n lightboxSifirla() {\r\n this.lightboxZoom = 1;\r\n this.lightboxPanX = 0;\r\n this.lightboxPanY = 0;\r\n this.lightboxResimAlani = null;\r\n this.CD.detectChanges();\r\n this._lightboxResimAlaniHesapla();\r\n }\r\n\r\n lightboxWheel(e: WheelEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n const delta = e.deltaY < 0 ? 0.15 : -0.15;\r\n this.lightboxZoomDegistir(delta);\r\n }\r\n\r\n lightboxCiftTiklandi(e: MouseEvent) {\r\n e.stopPropagation();\r\n if (this.yuzEtiketModuAktif) return;\r\n if (this.lightboxZoom > 1) {\r\n this.lightboxSifirla();\r\n } else {\r\n this.lightboxZoom = 2.5;\r\n this.CD.detectChanges();\r\n }\r\n }\r\n\r\n lightboxPanBasla(e: MouseEvent) {\r\n if (this.lightboxZoom <= 1 || this.yuzEtiketModuAktif) return;\r\n e.preventDefault();\r\n this._lbPanAktif = true;\r\n this._lbPanStartX = e.clientX;\r\n this._lbPanStartY = e.clientY;\r\n this._lbPanOffsetX = this.lightboxPanX;\r\n this._lbPanOffsetY = this.lightboxPanY;\r\n const hareket = (ev: MouseEvent) => {\r\n if (!this._lbPanAktif) return;\r\n this.lightboxPanX = this._lbPanOffsetX + (ev.clientX - this._lbPanStartX) / this.lightboxZoom;\r\n this.lightboxPanY = this._lbPanOffsetY + (ev.clientY - this._lbPanStartY) / this.lightboxZoom;\r\n this.CD.detectChanges();\r\n };\r\n const birak = () => {\r\n this._lbPanAktif = false;\r\n this.document.removeEventListener('mousemove', hareket);\r\n this.document.removeEventListener('mouseup', birak);\r\n };\r\n this.document.addEventListener('mousemove', hareket);\r\n this.document.addEventListener('mouseup', birak);\r\n }\r\n\r\n lightboxResimYuklendi(e: Event) {\r\n const img = e.target as HTMLImageElement;\r\n const container = img.closest('.lightbox-resim-konteynir');\r\n if (!container) return;\r\n const cRect = container.getBoundingClientRect();\r\n // Lightbox'ta img zaten max-width/max-height + flexbox ile doğru konumda\r\n // resimGercekBounds yerine direkt img rect kullan (daha doğru)\r\n const imgRect = img.getBoundingClientRect();\r\n this.lightboxResimAlani = {\r\n left: ((imgRect.left - cRect.left) / cRect.width) * 100,\r\n top: ((imgRect.top - cRect.top) / cRect.height) * 100,\r\n width: (imgRect.width / cRect.width) * 100,\r\n height: (imgRect.height / cRect.height) * 100,\r\n };\r\n this.CD.detectChanges();\r\n }\r\n\r\n lightboxResimEtiketle(e: MouseEvent) {\r\n if (!this.yuzEtiketModuAktif || !this.miSahip || !this.lightboxResimAlani) return;\r\n const target = e.target as HTMLElement;\r\n const katman = target.closest('.lightbox-etiket-katman');\r\n if (!katman) return;\r\n const r = katman.getBoundingClientRect();\r\n const xPct = ((e.clientX - r.left) / r.width) * 100;\r\n const yPct = ((e.clientY - r.top) / r.height) * 100;\r\n const w = 10, h = 12;\r\n this.bekleyenEtiket = {\r\n x: Math.max(0, Math.min(100 - w, xPct - w / 2)),\r\n y: Math.max(0, Math.min(100 - h, yPct - h / 2)),\r\n w, h,\r\n };\r\n this.yuzEtiketAramaMetni = '';\r\n this.yuzEtiketAramaSonuclari = [];\r\n this.CD.detectChanges();\r\n }\r\n\r\n get lightboxResimUrl(): string {\r\n const ek = this.aktifIcerik?.ek;\r\n if (!ek?._id) return '';\r\n // 3D (STP/WRL) içerikte çekilen görüntü (resimid) varsa onu göster\r\n const stpMi = ek.ismi?.endsWith('.stp') || ek.ismi?.endsWith('.wrl') || ek.ismi?.endsWith('.FikoWrl');\r\n const id = stpMi && ek.resimid ? ek.resimid : ek._id;\r\n return this.FikoYT.fapiUrl + '/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.' + id + '.resim';\r\n }\r\n\r\n /** STP görüntü önizlemesine tıklanınca lightbox açar */\r\n tryLbAcStp() {\r\n if (this.stpGoruntuUrl) this.lightboxAc();\r\n }\r\n\r\n lightboxIndir() {\r\n const url = this.lightboxResimUrl;\r\n if (!url) return;\r\n window.open(url, '_blank');\r\n }\r\n\r\n /** Lightbox'ta sayfa navigasyonu: sonraki resim sayfasına git */\r\n lightboxSonrakiResim(yon: number) {\r\n const yeniNo = this.aktifIcerikNo + yon;\r\n if (yeniNo >= 0 && yeniNo < this.icerikler.length) {\r\n this.aktifIcerikNo = yeniNo;\r\n this.lightboxSifirla();\r\n }\r\n }\r\n\r\n tiklandiFikoGL(icerik: any) {\r\n const url = this.router.serializeUrl(\r\n this.router.createUrlTree(['🧩', '💎'])\r\n );\r\n\r\n const wnd = window.open(url, '_blank');\r\n //@ts-ignore\r\n wnd.dosyaTuru = icerik?.ek?.turu;\r\n //@ts-ignore\r\n wnd.dosya = this.FikoYT.fapiUrl + '/fikoyt.com.FikoYT.sistem.aktifKullanici.hareketler.' + icerik?.ek?.id + '.dosya';\r\n // //@ts-ignore\r\n // console.log(wnd.dosya, wnd.dosyaTuru)\r\n }\r\n\r\n /** Template'de her CD cycle'da cagrilir, basit cache ile gereksiz hesaplamayi onler */\r\n private _okunabilirBoyutCache = new Map();\r\n okunabilirBoyut(bytes: any) {\r\n if (bytes == null || isNaN(bytes) || bytes <= 0) return '0 B';\r\n const cached = this._okunabilirBoyutCache.get(bytes);\r\n if (cached) return cached;\r\n var i = Math.floor(Math.log(bytes) / Math.log(1024)),\r\n sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n //@ts-ignore\r\n const sonuc = (bytes / Math.pow(1024, i)).toFixed(3) * 1 + ' ' + sizes[i];\r\n this._okunabilirBoyutCache.set(bytes, sonuc);\r\n return sonuc;\r\n }\r\n\r\n /** AYRAÇ: */\r\n\r\n clickCount = 0;\r\n get editMode(): boolean { return this._editMode || this.duzenlemeModunda; }\r\n set editMode(v: boolean) { this._editMode = v; }\r\n private _editMode = false;\r\n ciftTiklandiAciklama() {\r\n this.clickCount++;\r\n setTimeout(() => {\r\n if (this.clickCount >= 2) {\r\n const aktifKullanici = this.FikoYT.kimlik.aktifKullaniciJson();\r\n if (aktifKullanici?._id == this.kart?.sahip || aktifKullanici?._id == this.kart?.veri?.sahip) {\r\n this.duzenlemeBaslatildi.emit();\r\n }\r\n }\r\n this.clickCount = 0;\r\n }, 300)\r\n }\r\n\r\n\r\n /** Çekilen 3D görüntüyü kalıcı yapar: resimid üretir, içerik belgesine yazar, kart dokümanını id-listesi formatında tutar */\r\n async fotografYuklendiHandler(blob: Blob) {\r\n const icerik = this.aktifIcerik;\r\n const ek = icerik?.ek;\r\n const kartId = this.kart?._id;\r\n if (!ek || !kartId || !icerik?._id || !(blob instanceof Blob)) return;\r\n\r\n // İstemci tarafında dosya id'si (resimid) üretilir; multipart alan adı da bu id olur → GridFS dosya id'si = resimid\r\n const resimid = this.FikoYT.fikoIdUret();\r\n ek.resimid = resimid;\r\n this.CD.detectChanges();\r\n\r\n try {\r\n // 1) İçerik belgesini resimid'li haliyle yaz + dosyayı multipart yükle (alan adı = resimid → GridFS id = resimid)\r\n // ekDosyaSecildi/ikart akışıyla aynı desen: ekle isteği _id ile upsert yapar (yoksa oluşturur, varsa günceller)\r\n const belge = JSON.parse(JSON.stringify(icerik));\r\n belge._uid = kartId;\r\n belge.ek = belge.ek || {};\r\n belge.ek.resimid = resimid;\r\n // Serileştirilemez/yerel alanları temizle\r\n delete belge.ek?.dosyaObjectUrl;\r\n delete belge.ek?.objectUrl;\r\n delete belge.ek?.resimObjectUrl;\r\n delete belge.ek?.dosya;\r\n const belgeForm = new FormData();\r\n belgeForm.append('req_body', JSON.stringify(belge));\r\n belgeForm.append(resimid, blob, 'stp-goruntu.png');\r\n const ekleCevap: any = await this.ekleIstegi(belgeForm);\r\n console.log('[STP-3D] ekle yanıtı:', JSON.stringify(ekleCevap)?.substring(0, 500));\r\n if (!ekleCevap?.cevap) throw new Error('İçerik belgesi kaydedilemedi');\r\n\r\n // 2) Kart dokümanını id-listesi formatına normalize et\r\n // (veri.icerikler DB'de id dizisidir, okurken $lookup ile doldurulur — tam obje yazmak akışı bozar)\r\n const idList = this.icerikler.map(c => c?._id).filter(Boolean);\r\n const kartForm = new FormData();\r\n kartForm.append('req_body', JSON.stringify({\r\n filter: { _id: kartId },\r\n set: {\r\n 'veri.icerikler': idList,\r\n icerikler: idList,\r\n duzenlenmeTarihi: new Date(),\r\n },\r\n }));\r\n await this.guncelleIstegi(kartForm);\r\n\r\n // this.nzMessage.success('3D görüntü kaydedildi');\r\n } catch (err) {\r\n console.warn('3D görüntü kayıt hatası:', err);\r\n delete ek.resimid;\r\n this.nzMessage.error('Görüntü kaydedilemedi');\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** DB.hareketler.guncelle — multipart destekli, uygulamanın kanonik istek yolu */\r\n private guncelleIstegi(formData: FormData): Promise {\r\n return new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.guncelle',\r\n onEkOlsun: true,\r\n parametreler: formData,\r\n depoModu: false,\r\n gecikmeliCevap: false,\r\n }).isteSync();\r\n }\r\n\r\n /** DB.hareketler.ekle — multipart destekli */\r\n private ekleIstegi(formData: FormData): Promise {\r\n return new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n onEkOlsun: true,\r\n parametreler: formData,\r\n depoModu: false,\r\n gecikmeliCevap: false,\r\n }).isteSync();\r\n }\r\n\r\n /** Aktif içeriğin 3D görüntü önizleme URL'si (çekilen görüntü kalıcı ise) */\r\n get stpGoruntuUrl(): string {\r\n const ek = this.aktifIcerik?.ek;\r\n if (!ek?.resimid) return '';\r\n return `${this.FikoYT.fapiUrl}/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.${ek.resimid}.resim?boyut=400x?&t=${Date.now()}`;\r\n }\r\n\r\n async sayfaEkle() {\r\n if (!this.icerikler || !this.miSahip) return;\r\n const yeniIcerik: IIcerik = { _id: this.FikoYT.fikoIdUret(), aciklama: '', html: '', ek: null, sifre: null };\r\n this.icerikler.push(yeniIcerik);\r\n this.aktifIcerikNo = this.icerikler.length - 1;\r\n this.CD.detectChanges();\r\n await this.kartIcerikleriKaydet();\r\n // this.nzMessage.success('Yeni sayfa eklendi');\r\n }\r\n\r\n async sayfaSil() {\r\n if (!this.icerikler || this.icerikler.length <= 1 || !this.miSahip) return;\r\n this.icerikler.splice(this.aktifIcerikNo, 1);\r\n if (this.aktifIcerikNo >= this.icerikler.length) {\r\n this.aktifIcerikNo = this.icerikler.length - 1;\r\n }\r\n this.CD.detectChanges();\r\n await this.kartIcerikleriKaydet();\r\n // this.nzMessage.success('Sayfa silindi');\r\n }\r\n\r\n /** Kart'ın veri.icerikler dizisini DB'ye kaydeder (içerikler ayrı belge + karta id listesi) */\r\n private async kartIcerikleriKaydet() {\r\n const kartId = this.kart?._id;\r\n if (!kartId) return;\r\n try {\r\n // 1) Her içeriği kendi belgesine upsert et\r\n for (const ic of (this.icerikler || [])) {\r\n if (!ic?._id) continue;\r\n const belge = JSON.parse(JSON.stringify(ic));\r\n belge._uid = kartId;\r\n delete belge.ek?.dosyaObjectUrl;\r\n delete belge.ek?.objectUrl;\r\n delete belge.ek?.resimObjectUrl;\r\n delete belge.ek?.dosya;\r\n delete belge.ek?._sablonDosyalar;\r\n const fd = new FormData();\r\n fd.append('req_body', JSON.stringify(belge));\r\n await new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n onEkOlsun: true,\r\n parametreler: fd,\r\n depoModu: false,\r\n gecikmeliCevap: false,\r\n }).isteSync();\r\n }\r\n // 2) Kart dokümanına id listesi yaz ($lookup hydration formatı)\r\n const idList = (this.icerikler || []).map((c: any) => c?._id).filter(Boolean);\r\n const guncelleme = {\r\n filter: { _id: kartId },\r\n set: {\r\n 'veri.icerikler': idList,\r\n icerikler: idList,\r\n duzenlenmeTarihi: new Date(),\r\n },\r\n };\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify(guncelleme));\r\n const baseUrl = FikoYTEnvIstemci.adres.sunucuUrl;\r\n await fetch(`${baseUrl}/fapiv1/fikoyt.com.FikoYT.sistem.DB.hareketler.guncelle`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n } catch (e) {\r\n console.error('Kart icerikler kayıt hatası:', e);\r\n this.nzMessage.error('Kayıt başarısız');\r\n }\r\n }\r\n\r\n /** Düzenleme modunda dosya eki seçildiğinde: dosyayı sunucuya yükler ve icerik.ek günceller */\r\n async ekDosyaSecildi($event: any) {\r\n if (!$event.target.files?.length || !this.miSahip) return;\r\n const dosya: File = $event.target.files[0];\r\n const icerik = this.icerikler?.[this.aktifIcerikNo];\r\n if (!icerik) return;\r\n\r\n // Dosya türünü belirle\r\n let turu: string;\r\n if (dosya.type.startsWith('image')) turu = 'RESIM';\r\n else if (dosya.type.startsWith('video')) turu = 'VIDEO';\r\n else if (dosya.type.startsWith('audio')) turu = 'SES';\r\n else turu = 'DOSYA';\r\n\r\n // Ek objesi oluştur\r\n const ekId = this.FikoYT.fikoIdUret();\r\n icerik.ek = {\r\n _id: ekId,\r\n turu: turu as any,\r\n boyut: dosya.size,\r\n ismi: dosya.name,\r\n tipi: dosya.type,\r\n } as any;\r\n this.CD.detectChanges();\r\n\r\n try {\r\n // Önce kart iceriklerini kaydet (ek metadata'sı ile birlikte)\r\n await this.kartIcerikleriKaydet();\r\n\r\n // Sonra dosyayı yükle\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify(icerik));\r\n formData.append(ekId, dosya, dosya.name);\r\n\r\n const baseUrl = FikoYTEnvIstemci.adres.sunucuUrl;\r\n const response = await fetch(`${baseUrl}/fapiv1/fikoyt.com.FikoYT.sistem.DB.hareketler.ekle`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n\r\n if (response.ok) {\r\n // this.nzMessage.success('Dosya eklendi');\r\n } else {\r\n throw new Error('Dosya yükleme başarısız');\r\n }\r\n } catch (e) {\r\n console.error('Dosya ek yükleme hatası:', e);\r\n this.nzMessage.error('Dosya yüklenemedi');\r\n icerik.ek = null;\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n async kaydetTiklandi($event: any) {\r\n this.editMode = false;\r\n this.CD.detectChanges();\r\n\r\n const icerik = this.icerikler[this.aktifIcerikNo];\r\n if (!icerik?._id) {\r\n this.nzMessage.error('İçerik bulunamadı');\r\n return;\r\n }\r\n\r\n try {\r\n // NOT: hareketler.ekle bir upsert komutudur ve gönderilen req_body'yi belgenin\r\n // TAMAMI olarak işler. Sadece {_id, html} göndermek `ek` alanının (turu, dosya,\r\n // resimid — 3D/STP-WRL tanımının dayandığı her şey) sunucuda SİLİNMESİNE yol açar.\r\n // Bu yüzden mevcut içerik belgesinin tamamını (serileştirilemez alanlar temizlenmiş\r\n // haliyle) gönderiyoruz — sadece html alanını güncelliyoruz.\r\n const belge: any = JSON.parse(JSON.stringify(icerik));\r\n belge.html = $event;\r\n if (belge.ek) {\r\n delete belge.ek.dosyaObjectUrl;\r\n delete belge.ek.objectUrl;\r\n delete belge.ek.resimObjectUrl;\r\n // Gerçek File/Blob değilse (JSON roundtrip'ten kalan {} sızıntısı) temizle\r\n if (belge.ek.dosya && typeof belge.ek.dosya === 'object' && !belge.ek.dosya.rid && !belge.ek.dosya._id) delete belge.ek.dosya;\r\n if (belge.ek.resim && typeof belge.ek.resim === 'object' && !belge.ek.resim.rid && !belge.ek.resim._id) delete belge.ek.resim;\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify(belge));\r\n\r\n const baseUrl = FikoYTEnvIstemci.adres.sunucuUrl;\r\n const response = await fetch(`${baseUrl}/fapiv1/fikoyt.com.FikoYT.sistem.DB.hareketler.ekle`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n\r\n if (response.ok) {\r\n // this.nzMessage.success('Açıklama kaydedildi');\r\n } else {\r\n throw new Error('Kaydetme başarısız');\r\n }\r\n } catch (e) {\r\n console.warn('Açıklama MongoDB kayıt hatası:', e);\r\n this.nzMessage.error('Kayıt yapılamadı');\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n tiklandiSifreKaldir($event: any) {\r\n // this.editMode = false;\r\n this.CD.detectChanges();\r\n\r\n // const formData: FormData = new FormData();\r\n // formData.append('req_body', JSON.stringify({ sifre: null }));\r\n\r\n\r\n // const subsDegistir = (this.FikoYT.istekler.fapisteV1(\r\n // \"POST\",\r\n // `FikoYT.sistem.hareketler.icerik.${this.aktifIcerik._id}.sifre.degistir`,\r\n // null, formData)\r\n // // .pipe(filter((value: any) => value.turu === IstekOlayTuru.Cevaplandi), map((value: any) => value.sonuc.body))\r\n // .subscribe(\r\n // (snc: any) => {\r\n // if (snc.turu === IstekOlayTuru.Cevaplandi) {\r\n // this.girilenSifre = null\r\n // console.log(snc)\r\n // }\r\n // },\r\n // (hata: any) => {\r\n\r\n // },\r\n // () => {\r\n // subsDegistir.unsubscribe();\r\n // }\r\n // )\r\n // );\r\n }\r\n\r\n tiklandiSifreDegistir($event: any = null) {\r\n // this.editMode = false;\r\n this.CD.detectChanges();\r\n\r\n // const formData: FormData = new FormData();\r\n // formData.append('req_body', JSON.stringify({ sifre: $event }));\r\n\r\n\r\n // const subsDegistir = (this.FikoYT.istekler.fapisteV1(\r\n // \"POST\",\r\n // `FikoYT.sistem.hareketler.icerik.${this.aktifIcerik._id}.sifre.degistir`,\r\n // null, formData)\r\n // // .pipe(filter((value: any) => value.turu === IstekOlayTuru.Cevaplandi), map((value: any) => value.sonuc.body))\r\n // .subscribe(\r\n // (snc: any) => {\r\n // if (snc.turu === IstekOlayTuru.Cevaplandi) {\r\n // this.girilenSifre = null\r\n // console.log(snc)\r\n // }\r\n // },\r\n // (hata: any) => {\r\n\r\n // },\r\n // () => {\r\n // subsDegistir.unsubscribe();\r\n // }\r\n // )\r\n // );\r\n }\r\n parametreProxy(parametreler: any[]): any {\r\n return new Proxy({}, {\r\n get(_, prop: string) {\r\n return parametreler.find(p => p.ismi === prop)?.degeri ?? null;\r\n },\r\n set(_, prop: string, value) {\r\n const param = parametreler.find(p => p.ismi === prop);\r\n if (param) {\r\n param.degeri = value;\r\n return true;\r\n }\r\n return false; // yoksa hiçbir şey yapma\r\n }\r\n });\r\n }\r\n // Ses oynatıcıdan transkript geldiğinde MongoDB'ye kaydet\r\n async transkriptHazirEvent(veri: { metin: string; segmentler: { start: number; end: number; text: string }[] }) {\r\n const icerik = this.aktifIcerik;\r\n if (!icerik?.ek || !veri?.metin || !icerik._id) return;\r\n\r\n icerik.ek.transkript = veri.metin;\r\n icerik.ek.transkriptSegmentleri = veri.segmentler || [];\r\n\r\n try {\r\n const guncelleme: any = {\r\n _id: icerik._id,\r\n 'ek.transkript': veri.metin,\r\n 'ek.transkriptSegmentleri': veri.segmentler || []\r\n };\r\n\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify(guncelleme));\r\n\r\n const baseUrl = FikoYTEnvIstemci.adres.sunucuUrl;\r\n await fetch(`${baseUrl}/fapiv1/fikoyt.com.FikoYT.sistem.DB.hareketler.ekle`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n // this.nzMessage.success('Transkript kaydedildi');\r\n } catch (e) {\r\n console.warn('Transkript MongoDB kayıt hatası:', e);\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** AYRAÇ: */\r\n\r\n ngOnDestroy(): void {\r\n this.subsList.forEach(element => {\r\n element.unsubscribe();\r\n });\r\n this._isleniyorSub?.unsubscribe();\r\n if (this.konumLeafletMap) {\r\n this.konumLeafletMap.remove();\r\n this.konumLeafletMap = null;\r\n }\r\n if (this.resimAlaniObserver) {\r\n this.resimAlaniObserver.disconnect();\r\n this.resimAlaniObserver = null;\r\n }\r\n // Timer'lari temizle (memory leak onleme)\r\n if (this.tapPeekTimer) {\r\n clearTimeout(this.tapPeekTimer);\r\n this.tapPeekTimer = null;\r\n }\r\n if (this.yuzEtiketAramaTimer) {\r\n clearTimeout(this.yuzEtiketAramaTimer);\r\n this.yuzEtiketAramaTimer = null;\r\n }\r\n if (this.otomatikYuzAramaTimer) {\r\n clearTimeout(this.otomatikYuzAramaTimer);\r\n this.otomatikYuzAramaTimer = null;\r\n }\r\n // Lightbox temizliği\r\n if (this._lbKeydownHandler) {\r\n this.document.removeEventListener('keydown', this._lbKeydownHandler);\r\n this._lbKeydownHandler = null;\r\n }\r\n if (this.lightboxAcik) {\r\n this.document.body.style.overflow = '';\r\n this.document.body.classList.remove('fikoyt-lightbox-aktif');\r\n }\r\n // Lightbox DOM elemanını body'den kaldır\r\n if (this.lightboxOverlay?.nativeElement?.parentNode === this.document.body) {\r\n this.document.body.removeChild(this.lightboxOverlay.nativeElement);\r\n }\r\n // Uygulama parametre kaydet timer'ini temizle (memory leak onleme)\r\n if (this._uygulamaParamKaydetTimer) {\r\n clearTimeout(this._uygulamaParamKaydetTimer);\r\n this._uygulamaParamKaydetTimer = null;\r\n }\r\n }\r\n}\r\n","
\n
\n Kart Menüsü\n
\n \n
\n\n
\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n
\n \n \n
\n\n \n
\n","import { ChangeDetectionStrategy, Component, Inject, inject, input, model, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { FikoYTKokBilesenComponent } from '@/src/service/kok-bilesen/kok-bilesen.component';\nimport { RouterModule } from '@angular/router';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\nimport { NZ_MODAL_DATA } from 'ng-zorro-antd/modal';\nimport { FikoYTIstekKok } from '@/src/service/modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\nimport { CanliGuncellemeService } from '../../../dinamik-bilesen/canli-guncelleme.service';\nimport { KartBildirimService } from '../../../dinamik-bilesen/kart-bildirim.service';\n\ndeclare var $: any;\n\n@Component({\n templateUrl: './.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, FormsModule, RouterModule, NzIconModule, NzButtonModule, NzWaveModule, NzPopconfirmModule, NzDatePickerModule],\n})\nexport class KartMenuComponent extends FikoYTKokBilesenComponent implements OnDestroy {\n /** 📢 premium özellik lisansı (köprü yoksa AÇIK). */\n lisans(alt: string): boolean { try { return (window as any).__fikoLisans?.('📢', alt) ?? true; } catch { return true; } }\n\n kart = model(null);\n hatirlatmaTarihi: Date | null = null;\n hatirlatmaPaneliAcik = false;\n private canliGuncelleme = inject(CanliGuncellemeService);\n private kartBildirim = inject(KartBildirimService);\n\n constructor(@Inject(NZ_MODAL_DATA) public data: any,) {\n super();\n }\n\n override ngAfterViewInit(): void {\n this.kart.set(structuredClone(this.data?.kart ?? null));\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n tiklandiKartDuzenle() {\n this.nzModalRef.close({ aksiyon: 'duzenle', kart: this.kart() });\n }\n\n async tiklandiKartKopyala() {\n const kopya = structuredClone(this.kart());\n if (kopya) {\n delete kopya._id;\n kopya.tarih = new Date();\n this.nzModalRef.close({ aksiyon: 'kopyala', kart: kopya });\n }\n }\n\n tiklandiSablonKaydet() {\n this.nzModalRef.close({ aksiyon: 'sablonKaydet', kart: this.kart() });\n }\n\n async tiklandiSabitle() {\n const kart = this.kart();\n if (!kart?._id) return;\n\n const yeniDeger = !kart.sabitlendi;\n try {\n const istek = await FikoYTIstekKok.request({\n metod: 'POST',\n komut: 'FikoYT.sistem.DB.hareketler.guncelle',\n parametreler: {\n filter: { _id: kart._id },\n set: { sabitlendi: yeniDeger }\n },\n tekrarSayisi: 3,\n oncelik: 5,\n gecikmeliCevap: false,\n });\n const cevap: any = await istek.isteSync();\n if (cevap?.cevap?.sonuc) {\n kart.sabitlendi = yeniDeger;\n this.kart.set({ ...kart });\n this.nzMessage.success(yeniDeger ? 'Kart sabitlendi' : 'Sabitleme kaldırıldı');\n } else {\n this.nzMessage.error('İşlem başarısız');\n }\n } catch (e) {\n this.nzMessage.error('Sabitleme işlemi sırasında hata oluştu');\n }\n this.nzModalRef.close();\n }\n\n tiklandiKoleksiyonaEkle() {\n this.nzModalRef.close({ aksiyon: 'koleksiyonaEkle', kart: this.kart() });\n }\n\n tiklandiLinkKopyala() {\n const kart = this.kart();\n if (kart?._id) {\n const link = `${window.location.origin}/kart/${kart._id}`;\n navigator.clipboard.writeText(link).then(() => {\n this.nzMessage.success('Link panoya kopyalandı');\n }).catch(() => {\n this.nzMessage.error('Link kopyalanamadı');\n });\n }\n this.nzModalRef.close();\n }\n\n async tiklandiKartSil() {\n try {\n const kartId = this.kart()?._id;\n if (!kartId) return;\n\n // Tüm bağlı kartları topla: ana kart + alt kartlar + tüm içerikler (recursive)\n const tumIdler = await this.altKartIdleriniTopla(kartId);\n\n const istek = await FikoYTIstekKok.request({\n metod: 'POST',\n komut: 'FikoYT.sistem.DB.hareketler.guncelle',\n parametreler: {\n filter: { _id: { $in: tumIdler } },\n set: { silindi: true }\n },\n tekrarSayisi: 3,\n oncelik: 5,\n gecikmeliCevap: false,\n });\n let cevap: any = await istek.isteSync();\n\n if (cevap.cevap.sonuc) {\n const silinecekKart = this.kart();\n if (silinecekKart?._id) {\n this.canliGuncelleme.silindiYayin(silinecekKart._id);\n this.kartBildirim.bildirimTetikle('kart_silindi', silinecekKart._id, silinecekKart.sahip, silinecekKart.veri?.kurdela?.baslik);\n }\n this.CD.detectChanges();\n this.nzMessage.success('Kart silindi');\n } else {\n this.nzMessage.error('Kart silinemedi');\n }\n } catch (e) {\n this.nzMessage.error('Silme sırasında bir hata oluştu');\n }\n }\n\n /** Verilen kart ID'sinden başlayarak rekürsif olarak tüm alt kartları + içeriklerini topla */\n private async altKartIdleriniTopla(kartId: string): Promise {\n const tumIdler = new Set();\n const kuyruk: string[] = [kartId];\n\n while (kuyruk.length > 0) {\n const isle = kuyruk.splice(0, kuyruk.length);\n isle.forEach(id => tumIdler.add(id));\n\n try {\n const istek = await FikoYTIstekKok.request({\n metod: 'POST',\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\n parametreler: {\n aggregate: [\n { $match: { _uid: { $in: isle }, silindi: { $ne: true } } },\n { $project: { _id: 1, 'veri.icerikler': 1 } }\n ]\n },\n oncelik: 5,\n gecikmeliCevap: false,\n });\n const cevap: any = await istek.isteSync();\n const altlar = cevap?.cevap?.sonuc || [];\n for (const a of altlar) {\n if (a._id && !tumIdler.has(a._id)) kuyruk.push(a._id);\n // İçerik ID'lerini de ekle\n const icIdler = a.veri?.icerikler || [];\n for (const ic of icIdler) {\n if (typeof ic === 'string' && !tumIdler.has(ic)) tumIdler.add(ic);\n }\n }\n } catch {}\n }\n return Array.from(tumIdler);\n }\n\n tiklandiHatirlatma() {\n this.hatirlatmaPaneliAcik = !this.hatirlatmaPaneliAcik;\n this.CD.detectChanges();\n }\n\n async hatirlatmaKaydet() {\n if (!this.hatirlatmaTarihi) {\n this.nzMessage.warning('Tarih seçiniz');\n return;\n }\n const kart = this.kart();\n if (!kart?._id) return;\n try {\n const { BildirimService } = await import('@/src/app/servisler/bildirim.service');\n const bildirimSvc = this.injector.get(BildirimService);\n await bildirimSvc.hatirlatmaOlustur(\n kart._id,\n kart.veri?.kurdela?.baslik || '',\n this.hatirlatmaTarihi.toISOString(),\n );\n this.nzMessage.success('Hatırlatma ayarlandı');\n this.hatirlatmaPaneliAcik = false;\n this.hatirlatmaTarihi = null;\n this.nzModalRef.close();\n } catch {\n this.nzMessage.error('Hatırlatma kaydedilemedi');\n }\n }\n}\n","@if (duzenlemeModunda && duzenlemeKart) {\r\n\r\n\r\n} @else {\r\n
\r\n
\r\n
\r\n\r\n \r\n @if (kart()?.ayarlar?._sayfaBilgi; as sb) {\r\n
\r\n @if (sb.hedefAvatar) {\r\n \r\n }\r\n {{ sb.simge }} {{ sb.kpiIsim }} {{ sb.mesaj }}\r\n @if (sb.hedefIsim) {\r\n {{ sb.hedefIsim }}{{ sb.son || '' }}\r\n }\r\n \r\n
\r\n }\r\n\r\n \r\n \r\n
\r\n @if (kart()?.sabitlendi) {\r\n \r\n }\r\n {{ FikoYT.kimlik.aktifKullaniciJson()?.isim+ ' '+ FikoYT.kimlik.aktifKullaniciJson()?.soyIsim }}\r\n {{\r\n kart()?.tarih |\r\n date:\"dd.MM.yyyy HH:mm:ss EEE 'Hf.':w\" }}\r\n @if (kart()?.duzenlenmeTarihi) {\r\n \r\n (düzenlendi)\r\n \r\n }\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n @if (kart()?.konum?.yerIsmi) {\r\n \r\n \r\n {{ kart().konum.yerIsmi }}\r\n @if (miSahip) {\r\n \r\n }\r\n \r\n } @else if (miSahip) {\r\n \r\n \r\n Konum\r\n \r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{kart()?.veri?.solSimge?.baslik}}\r\n
\r\n
\r\n \r\n
\r\n\r\n @switch (kart()?.turu) {\r\n @case (\"KART\") {\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n }\r\n @case (\"UYAR_DOKUM\") {\r\n\r\n }\r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n @if (toplamIfadeSayisi > 0 || kart()?.yorumSayisi > 0 || kart()?.yeFikolaSayisi > 0) {\r\n
\r\n @for (turu of [IIfadeTuru.BEGENDI, IIfadeTuru.KALP, IIfadeTuru.GULDU, IIfadeTuru.SASKIN,\r\n IIfadeTuru.UZGUN, IIfadeTuru.KIZGIN]; track turu) {\r\n @if (ifadeSayisi(turu) > 0) {\r\n \r\n {{ IfadeBilgi[turu].simge }}{{ ifadeSayisi(turu) }}\r\n \r\n }\r\n }\r\n @if (toplamIfadeSayisi > 0) {\r\n {{ toplamIfadeSayisi }} kişi\r\n }\r\n @if (kart()?.yorumSayisi > 0) {\r\n \r\n 💬{{ kart().yorumSayisi }}\r\n \r\n }\r\n @if (kart()?.yeFikolaSayisi > 0) {\r\n \r\n 🔄{{ kart().yeFikolaSayisi }}\r\n \r\n }\r\n
\r\n }\r\n\r\n @if (kart()?.parametreler?.length > 0) {\r\n \r\n\r\n @let parametreleriGoster = [false];\r\n @if (parametreleriGoster[0]) {\r\n \r\n
\r\n \r\n
\r\n }\r\n }\r\n\r\n \r\n\r\n \r\n @if (duzenlemeModunda) {\r\n \r\n \r\n \r\n
\r\n }\r\n\r\n \r\n
\r\n\r\n \r\n @if (ifadeSecimAcik) {\r\n
\r\n @for (turu of [IIfadeTuru.BEGENDI, IIfadeTuru.KALP, IIfadeTuru.GULDU, IIfadeTuru.SASKIN,\r\n IIfadeTuru.UZGUN, IIfadeTuru.KIZGIN]; track turu) {\r\n \r\n }\r\n
\r\n }\r\n\r\n \r\n\r\n \r\n\r\n @if (gosterAltKartlarButon() ?? true){\r\n \r\n }\r\n\r\n
\r\n\r\n \r\n @if (altKartlarAcik) {\r\n
\r\n
\r\n Alt Kartlar\r\n \r\n Tümünü Gör\r\n \r\n
\r\n\r\n \r\n @if (!altKartGenisMod) {\r\n
\r\n \r\n \r\n @if (altKartSablonlari.length > 0) {\r\n \r\n }\r\n
\r\n } @else {\r\n \r\n
\r\n
\r\n Şablonlu alt kart ekle\r\n \r\n
\r\n \r\n \r\n
\r\n }\r\n\r\n \r\n @if (altKartlarYukleniyor) {\r\n
\r\n Yükleniyor...\r\n
\r\n }\r\n\r\n \r\n @for (altKart of altKartlar; track altKart._id) {\r\n \r\n \r\n
\r\n }\r\n\r\n @if (!altKartlarYukleniyor && altKartlar.length === 0) {\r\n
\r\n Henüz alt kart yok\r\n
\r\n }\r\n
\r\n }\r\n\r\n
\r\n\r\n\r\n\r\n \r\n\r\n}\r\n\r\n\r\n\r\n \r\n \r\n","import { ApplicationRef, ChangeDetectionStrategy, Component, effect, ElementRef, HostBinding, HostListener, inject, input, output, ViewChildren, QueryList } from '@angular/core';\r\nimport { FikoYTKokBilesenComponent } from '../../../../../kok-bilesen/kok-bilesen.component';\r\nimport { IKart, TurGizlilikBilgi, IIfadeTuru, IfadeBilgi, IEkTuru } from '../../../../interfaces/IKart.interface';\r\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NzButtonModule } from 'ng-zorro-antd/button';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { ParametrelerComponent } from '../../parametreler/parametreler.component';\r\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\r\nimport { IceriklerComponent } from './icerikler/icerikler.component';\r\nimport { KartMenuComponent } from './kart-menu/.component';\r\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\r\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\r\nimport { RouterModule } from '@angular/router';\r\nimport { DialogGizlilikSeciciComponent } from '../dialog-gizlilik-secici/dialog-gizlilik-secici.component';\r\nimport { DialogEtiketlerComponent } from '../dialog-etiketler/dialog-etiketler.component';\r\nimport { DialogKisiSeciciComponent } from '../dialog-kisi-secici/dialog-kisi-secici.component';\r\nimport { FikoYTBayrakEditor } from '../bayrak-editor/.component';\r\nimport { FikoYTIstekKok } from '@/src/service/modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service';\r\nimport { IKartTuru } from '../../../../interfaces/IKart.interface';\r\nimport { KisiBalonV2Component } from '@/src/app/shared/components/kisi-balon/kisi-balon.component';\r\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\r\nimport { ServisUyarProjeler } from '@/src/app/uygulamalar/uyar-dokum/projeler/projeler.service';\r\nimport { IKartComponent } from '../paylas-kutusu/IKart/ikart-kutusu.component';\r\nimport { PaylasKutusuComponent } from '../paylas-kutusu/paylas-kutusu.component';\r\nimport { IParametreSetiGrubu, IParametreSeti } from '../../../../interfaces/IParametreSeti.interface';\r\nimport { CanliGuncellemeService } from '../../dinamik-bilesen/canli-guncelleme.service';\r\nimport { AltKartHesaplamaService } from '../../dinamik-bilesen/alt-kart-hesaplama.service';\r\nimport { KartBildirimService } from '../../dinamik-bilesen/kart-bildirim.service';\r\n\r\n\r\n@Component({\r\n selector: 'fikoyt-kart-kok',\r\n standalone: true,\r\n imports: [CommonModule, NgOptimizedImage, FormsModule, RouterModule, NzButtonModule, NzInputModule, ParametrelerComponent, NzWaveModule, IceriklerComponent, NzDividerModule, NzPopconfirmModule, KisiBalonV2Component, NzPopoverModule, IKartComponent, PaylasKutusuComponent,],\r\n templateUrl: \"./fikoyt-kart.component.html\",\r\n styleUrl: \"./fikoyt-kart.component.scss\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FikoYTKartKokComponent extends FikoYTKokBilesenComponent {\r\n /** 📢 premium özellik lisansı (köprü yoksa AÇIK). */\r\n lisans(alt: string): boolean { try { return (window as any).__fikoLisans?.('📢', alt) ?? true; } catch { return true; } }\r\n\r\n kart = input>(null);\r\n kartParametreSetleri = input([]);\r\n sayfaBalonDetayCekFn = input<(id: string) => Promise<{ kisiDetay: any; iliskiler?: any[] }>>();\r\n kartGuncellendi = output();\r\n private servisProjeler = inject(ServisUyarProjeler);\r\n private elRef = inject(ElementRef);\r\n private appRef = inject(ApplicationRef);\r\n private canliGuncelleme = inject(CanliGuncellemeService);\r\n private altKartHesaplama = inject(AltKartHesaplamaService);\r\n private kartBildirim = inject(KartBildirimService);\r\n\r\n // Sabitlenmiş kart host class'ı\r\n @HostBinding('class.sabitlendi') get miSabitlendi(): boolean {\r\n return this.kart()?.sabitlendi === true;\r\n }\r\n\r\n // İfade türleri ve bilgileri\r\n readonly IIfadeTuru = IIfadeTuru;\r\n readonly IfadeBilgi = IfadeBilgi;\r\n\r\n get gizlilikSimgeSinif(): string | undefined {\r\n return TurGizlilikBilgi[this.kart()?.gizlilik]?.simgeSinif;\r\n };\r\n\r\n get miSahip(): boolean {\r\n return this.FikoYT.kimlik.aktifKullaniciJson()?._id === this.kart()?.sahip;\r\n }\r\n\r\n // ESKI beğenme sistemi - geriye dönük uyumluluk için\r\n get miBegen(): boolean {\r\n const kullaniciId = this.FikoYT.kimlik.aktifKullaniciJson()?._id;\r\n return this.kart()?.begenenler?.includes(kullaniciId) ?? false;\r\n }\r\n\r\n get begenmeSayisi(): number {\r\n return this.kart()?.begenenler?.length ?? 0;\r\n }\r\n\r\n // YENİ ifade sistemi\r\n get aktifIfadem(): IIfadeTuru | null {\r\n const kullaniciId = this.FikoYT.kimlik.aktifKullaniciJson()?._id;\r\n const benimIfadem = this.kart()?.ifadeler?.find(i => i.sahip === kullaniciId);\r\n return benimIfadem?.turu ?? null;\r\n }\r\n\r\n get toplamIfadeSayisi(): number {\r\n return this.kart()?.ifadeler?.length ?? 0;\r\n }\r\n\r\n get enPopulerIfade(): { turu: IIfadeTuru; sayi: number } | null {\r\n const sayilar = this.kart()?.ifadeSayilari;\r\n if (!sayilar) return null;\r\n\r\n let enYuksek = 0;\r\n let enPopuler: IIfadeTuru | null = null;\r\n\r\n Object.entries(sayilar).forEach(([turu, sayi]) => {\r\n if (sayi > enYuksek) {\r\n enYuksek = sayi;\r\n enPopuler = turu as IIfadeTuru;\r\n }\r\n });\r\n\r\n return enPopuler ? { turu: enPopuler, sayi: enYuksek } : null;\r\n }\r\n\r\n ifadeSayisi(turu: IIfadeTuru): number {\r\n return this.kart()?.ifadeSayilari?.[turu] ?? 0;\r\n }\r\n\r\n // Beğenenleri aggregate ile hesapla\r\n private async begenenlerListesiniGuncelle(kartId: string): Promise {\r\n try {\r\n const begenenlerIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n {\r\n $match: {\r\n vt: \"FikoYT.sistem.hareketler\",\r\n yol: \"FikoYT.sistem.hareketler.begen\",\r\n veri: kartId,\r\n silindi: { $ne: true }\r\n }\r\n },\r\n {\r\n $group: {\r\n _id: null,\r\n begenenler: { $push: \"$sahip\" }\r\n }\r\n }\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n const cevap = await begenenlerIstek.isteSync();\r\n const sonuc = cevap?.cevap?.sonuc?.[0];\r\n return sonuc?.begenenler ?? [];\r\n } catch (e) {\r\n console.warn('Beğenenler listesi alınamadı:', e);\r\n return [];\r\n }\r\n }\r\n\r\n private _sonYeFikolaKartId: string = null;\r\n\r\n constructor() {\r\n super();\r\n\r\n // Kart yüklendiğinde gerçek YeFikola sayısını DB'den çek\r\n // 🚀 PERFORMANS: Feed (paylasim-sistemi) bu sayacı zaten tek $lookup ile toplu\r\n // hesaplayıp gönderiyor. Bu effect sadece FALLBACK: feed dışı tek-kart\r\n // görünümlerinde yeFikolaSayisi boş geldiyse ayrı aggregate ile tamamla\r\n // (aksi halde her kart için ayrı istek = N+1 tekrar oluşurdu).\r\n effect(() => {\r\n const k = this.kart();\r\n if (k?._id && k._id !== this._sonYeFikolaKartId) {\r\n this._sonYeFikolaKartId = k._id;\r\n if (k.yeFikolaSayisi != null) return;\r\n // Mevcut değeri koru (flicker önleme) — aggregate sonucu gelince güncelle\r\n this.yeFikolaSayisiniGuncelle(k._id).then(sayi => {\r\n if (k.yeFikolaSayisi !== sayi) {\r\n k.yeFikolaSayisi = sayi;\r\n this.CD.detectChanges();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n parametreProxy(parametreler: any[]): any {\r\n return new Proxy({}, {\r\n get(_, prop: string) {\r\n return parametreler.find(p => p.ismi === prop)?.degeri ?? null;\r\n },\r\n set(_, prop: string, value) {\r\n const param = parametreler.find(p => p.ismi === prop);\r\n if (param) {\r\n param.degeri = value;\r\n return true;\r\n }\r\n return false; // yoksa hiçbir şey yapma\r\n }\r\n });\r\n }\r\n\r\n /** NOT: YeFikola (Repost/Paylaş) */\r\n tiklandiYeFikola() {\r\n const kartId = this.kart()?._id;\r\n if (!kartId) return;\r\n\r\n this.servisProjeler.icerikEkle({\r\n _id: this.FikoYT.fikoIdUret(),\r\n turu: IEkTuru.REFERANS,\r\n rid: kartId\r\n });\r\n this.servisProjeler.aktifEtSonSayfa();\r\n\r\n this.FikoYT.degisti.emit();\r\n window.scroll({ top: 0, left: 0, behavior: 'smooth' });\r\n this.nzMessage.success('Paylaş kutusuna eklendi');\r\n }\r\n\r\n /** Gerçek YeFikola sayısını DB'den çek (bu kartı referans alan icerik sayısı) */\r\n private async yeFikolaSayisiniGuncelle(kartId: string): Promise {\r\n try {\r\n const istek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n {\r\n $match: {\r\n \"ek.turu\": \"REFERANS\",\r\n \"ek.rid\": kartId,\r\n _uid: { $exists: true },\r\n silindi: { $ne: true }\r\n }\r\n },\r\n {\r\n $lookup: {\r\n from: \"hareketler\",\r\n localField: \"_uid\",\r\n foreignField: \"_id\",\r\n as: \"_ustKart\"\r\n }\r\n },\r\n { $unwind: \"$_ustKart\" },\r\n { $match: { \"_ustKart.silindi\": { $ne: true } } },\r\n { $count: \"toplam\" }\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n const cevap = await istek.isteSync();\r\n const toplam = cevap?.cevap?.sonuc?.[0]?.toplam ?? 0;\r\n return toplam;\r\n } catch (e) {\r\n console.warn('YeFikola sayısı alınamadı:', e);\r\n return 0;\r\n }\r\n }\r\n\r\n // İfade meşgul durumu\r\n ifadeMesgul = false;\r\n ifadeSecimAcik = false;\r\n ifadeBurstTuru: IIfadeTuru | null = null;\r\n duzenlemeMesgul = false;\r\n\r\n @HostListener('document:keydown.escape')\r\n onEscapeKey() {\r\n if (this.ifadeSecimAcik) {\r\n this.ifadeSecimAcik = false;\r\n this.CD.detectChanges();\r\n }\r\n }\r\n\r\n /** NOT: İfade Seçimi */\r\n tiklandiIfadeMenu() {\r\n this.ifadeSecimAcik = !this.ifadeSecimAcik;\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** NOT: İfade İşlemleri */\r\n async tiklandiIfade(turu: IIfadeTuru) {\r\n if (this.ifadeMesgul) return;\r\n\r\n const kartId = this.kart()?._id;\r\n const kullaniciId = this.FikoYT.kimlik.aktifKullaniciJson()?._id;\r\n\r\n if (!kartId || !kullaniciId) return;\r\n\r\n // Burst animasyonu tetikle\r\n this.ifadeBurstTuru = turu;\r\n this.CD.detectChanges();\r\n setTimeout(() => {\r\n this.ifadeBurstTuru = null;\r\n this.CD.detectChanges();\r\n }, 400);\r\n\r\n this.ifadeMesgul = true;\r\n this.ifadeSecimAcik = false;\r\n this.CD.detectChanges();\r\n\r\n const oncekiIfadem = this.aktifIfadem;\r\n\r\n // Optimistic UI Update\r\n if (!this.kart().ifadeler) this.kart().ifadeler = [];\r\n if (!this.kart().ifadeSayilari) {\r\n this.kart().ifadeSayilari = {} as Record;\r\n }\r\n\r\n // Önceki ifadeyi kaldır\r\n if (oncekiIfadem) {\r\n this.kart().ifadeler = this.kart().ifadeler.filter(i => i.sahip !== kullaniciId);\r\n this.kart().ifadeSayilari[oncekiIfadem] = Math.max(0, (this.kart().ifadeSayilari[oncekiIfadem] ?? 0) - 1);\r\n }\r\n\r\n // Aynı ifadeye tıklandıysa kaldır, farklıysa ekle\r\n if (oncekiIfadem !== turu) {\r\n this.kart().ifadeler.push({\r\n sahip: kullaniciId,\r\n turu,\r\n tarih: new Date()\r\n });\r\n this.kart().ifadeSayilari[turu] = (this.kart().ifadeSayilari[turu] ?? 0) + 1;\r\n }\r\n\r\n this.CD.detectChanges();\r\n\r\n try {\r\n if (oncekiIfadem) {\r\n // Önceki ifade kaydını sil\r\n const kontrolIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n {\r\n $match: {\r\n vt: \"FikoYT.sistem.hareketler\",\r\n yol: \"FikoYT.sistem.hareketler.ifade\",\r\n sahip: kullaniciId,\r\n veri: kartId,\r\n silindi: { $ne: true }\r\n }\r\n }\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n const kontrolCevap = await kontrolIstek.isteSync();\r\n const mevcutKayit = kontrolCevap?.cevap?.sonuc?.[0];\r\n\r\n if (mevcutKayit?._id) {\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify({\r\n _id: mevcutKayit._id,\r\n silindi: true\r\n }));\r\n\r\n const silIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n parametreler: formData,\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n await silIstek.isteSync();\r\n }\r\n }\r\n\r\n // Aynı ifadeye tıklanmadıysa yeni kayıt oluştur\r\n if (oncekiIfadem !== turu) {\r\n const ifadeKayit: IKart = {\r\n vt: \"FikoYT.sistem.hareketler\",\r\n yol: \"FikoYT.sistem.hareketler.ifade\",\r\n sahip: kullaniciId,\r\n silindi: false,\r\n turu: IKartTuru.SISTEM,\r\n veri: kartId,\r\n tarih: new Date(),\r\n ayarlar: { ifadeTuru: turu }\r\n };\r\n\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify(ifadeKayit));\r\n\r\n const ekleIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n parametreler: formData,\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n await ekleIstek.isteSync();\r\n }\r\n\r\n // İfadeleri aggregate ile güncelle\r\n const guncelIfadeler = await this.ifadelerListesiniGuncelle(kartId);\r\n this.kart().ifadeler = guncelIfadeler.ifadeler;\r\n this.kart().ifadeSayilari = guncelIfadeler.sayilar;\r\n\r\n // Güncel ifadeleri kart belgesine kaydet\r\n await this.kartGuncelle({\r\n ifadeler: guncelIfadeler.ifadeler,\r\n ifadeSayilari: guncelIfadeler.sayilar\r\n });\r\n\r\n\r\n } catch (e) {\r\n console.error('İfade hatası:', e);\r\n\r\n // Rollback - Optimistic UI'ı geri al\r\n if (oncekiIfadem) {\r\n this.kart().ifadeler.push({\r\n sahip: kullaniciId,\r\n turu: oncekiIfadem,\r\n tarih: new Date()\r\n });\r\n this.kart().ifadeSayilari[oncekiIfadem] = (this.kart().ifadeSayilari[oncekiIfadem] ?? 0) + 1;\r\n }\r\n\r\n if (oncekiIfadem !== turu) {\r\n this.kart().ifadeler = this.kart().ifadeler.filter(i => i.sahip !== kullaniciId || i.turu !== turu);\r\n this.kart().ifadeSayilari[turu] = Math.max(0, (this.kart().ifadeSayilari[turu] ?? 0) - 1);\r\n }\r\n\r\n this.nzMessage.error('İfade işlemi başarısız oldu');\r\n } finally {\r\n setTimeout(() => {\r\n this.ifadeMesgul = false;\r\n this.CD.detectChanges();\r\n this.FikoYT.degisti.emit();\r\n }, 0);\r\n }\r\n }\r\n\r\n // İfadeleri aggregate ile hesapla\r\n private async ifadelerListesiniGuncelle(kartId: string): Promise<{ ifadeler: any[]; sayilar: Record }> {\r\n try {\r\n const ifadelerIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n {\r\n $match: {\r\n vt: \"FikoYT.sistem.hareketler\",\r\n yol: \"FikoYT.sistem.hareketler.ifade\",\r\n veri: kartId,\r\n silindi: { $ne: true }\r\n }\r\n }\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n const cevap = await ifadelerIstek.isteSync();\r\n const ifadeKayitlari = cevap?.cevap?.sonuc ?? [];\r\n\r\n // İfadeleri dönüştür\r\n const ifadeler = ifadeKayitlari.map(k => ({\r\n sahip: k.sahip,\r\n turu: k.ayarlar?.ifadeTuru,\r\n tarih: k.tarih\r\n }));\r\n\r\n // Sayıları hesapla\r\n const sayilar: Record = {} as Record;\r\n Object.values(IIfadeTuru).forEach(turu => {\r\n sayilar[turu] = ifadeler.filter(i => i.turu === turu).length;\r\n });\r\n\r\n return { ifadeler, sayilar };\r\n } catch (e) {\r\n console.warn('İfadeler listesi alınamadı:', e);\r\n return { ifadeler: [], sayilar: {} as Record };\r\n }\r\n }\r\n\r\n // Alt Kartlar (Yorumlar)\r\n gosterAltKartlarButon = input(true);\r\n altKartlarAcik = false;\r\n altKartlar: IKart[] = [];\r\n altKartlarYukleniyor = false;\r\n yeniAltKartMetni = '';\r\n altKartGonderiliyor = false;\r\n /** Alt kart ekleme modunu genişlet (paylaş kutusu ile) */\r\n altKartGenisMod = false;\r\n\r\n /**\r\n * Ana kartın seçili parametre setinden alt kart şablonlarını çıkarır.\r\n * kart().veri._parametreSetleri → set id → altKartSablonlari\r\n */\r\n get altKartSablonlari(): IParametreSetiGrubu[] {\r\n const kart = this.kart();\r\n const setIdleri = new Set();\r\n const bilesenIdleri = new Set();\r\n\r\n const setMap = kart?.veri?._parametreSetleri;\r\n if (setMap) Object.values(setMap).forEach((v: any) => { if (v) setIdleri.add(v); });\r\n\r\n const icerikler = kart?.veri?.icerikler;\r\n if (icerikler?.length) {\r\n icerikler.forEach((ic: any) => {\r\n if (ic?.ek?._secilenSetId) setIdleri.add(ic.ek._secilenSetId);\r\n if (ic?.ek?.bilesen) bilesenIdleri.add(ic.ek.bilesen);\r\n });\r\n }\r\n if (setIdleri.size === 0 && bilesenIdleri.size === 0) return [];\r\n\r\n const tumSablonlar: IParametreSeti[] = [];\r\n const tumSetler = [...(this.kartParametreSetleri() ?? []), ...(this.servisProjeler?.parametreSetleri ?? [])];\r\n\r\n for (const grup of tumSetler) {\r\n const eslesiyor = setIdleri.has(grup.id) || ((grup as any).bilesen && bilesenIdleri.has((grup as any).bilesen));\r\n if (eslesiyor) {\r\n if ((grup as any).altKartSablonlari?.length) tumSablonlar.push(...(grup as any).altKartSablonlari);\r\n for (const alt of (grup.altGruplar ?? [])) {\r\n if (alt.altKartSablonlari?.length) tumSablonlar.push(...alt.altKartSablonlari);\r\n }\r\n }\r\n if (!eslesiyor) {\r\n for (const alt of (grup.altGruplar ?? [])) {\r\n const altEslesiyor = setIdleri.has(alt.id) || ((alt as any).bilesen && bilesenIdleri.has((alt as any).bilesen));\r\n if (altEslesiyor) {\r\n if (alt.altKartSablonlari?.length) tumSablonlar.push(...alt.altKartSablonlari);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (tumSablonlar.length === 0) return [];\r\n\r\n return [{\r\n id: 'alt-kart-sablonlari',\r\n baslik: 'Alt Kart Şablonları',\r\n simge: '📋',\r\n kaynak: 'kod' as const,\r\n altGruplar: tumSablonlar,\r\n }];\r\n }\r\n\r\n /** Alt kart paylaş kutusu için kart nesnesi */\r\n _altKartPaylasKart: IKart = null;\r\n get altKartPaylasKart(): IKart {\r\n if (!this._altKartPaylasKart || this._altKartPaylasKart._uid !== this.kart()?._id) {\r\n const ana = this.kart();\r\n this._altKartPaylasKart = {\r\n _id: Date.now().toString(36),\r\n _uid: ana?._id,\r\n vt: ana?.vt || 'FikoYT.sistem.hareketler' as any,\r\n yol: ana?.yol || 'FikoYT.sistem.hareketler.kalem' as any,\r\n turu: IKartTuru.KART,\r\n gizlilik: 'Herkese Açık',\r\n uygulama: ana?.uygulama,\r\n kisiler: [],\r\n veri: { solSimge: { baslik: 'AK', renkArka: '#1890ff', renkYazi: '#fff' }, icerikler: [{ _id: Date.now().toString(36) + 'i', html: '', aciklama: '', sifre: null }] },\r\n } as any;\r\n }\r\n return this._altKartPaylasKart;\r\n }\r\n\r\n async tiklandiAltKartlar() {\r\n // this.altKartlarAcik = !this.altKartlarAcik;\r\n if (this.altKartlarAcik && this.altKartlar.length === 0) {\r\n await this.altKartlariYukle();\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n async altKartlariYukle() {\r\n const kartId = this.kart()?._id;\r\n if (!kartId) return;\r\n\r\n this.altKartlarYukleniyor = true;\r\n this.CD.detectChanges();\r\n\r\n try {\r\n const istek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n {\r\n $match: {\r\n vt: \"FikoYT.sistem.hareketler\",\r\n _uid: kartId,\r\n turu: { $in: [IKartTuru.KART, IKartTuru.UYAR_DOKUM] },\r\n silindi: { $ne: true }\r\n }\r\n },\r\n {\r\n $lookup: {\r\n from: \"hareketler\",\r\n localField: \"veri.icerikler\",\r\n foreignField: \"_id\",\r\n as: \"veri.icerikler\"\r\n }\r\n },\r\n { $sort: { tarih: -1 } },\r\n { $limit: 20 }\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n const cevap = await istek.isteSync();\r\n this.altKartlar = cevap?.cevap?.sonuc ?? [];\r\n } catch (e) {\r\n this.nzMessage.error('Alt kartlar yüklenemedi');\r\n } finally {\r\n this.altKartlarYukleniyor = false;\r\n this.CD.detectChanges();\r\n }\r\n }\r\n\r\n altKartHesaplamaSifirla() {\r\n const kartId = this.kart()?._id;\r\n if (kartId) this.altKartHesaplama.cacheSifirla(kartId);\r\n this.FikoYT.degisti.emit();\r\n }\r\n\r\n async altKartEkle() {\r\n const metin = this.yeniAltKartMetni?.trim();\r\n if (!metin || this.altKartGonderiliyor) return;\r\n\r\n const kartId = this.kart()?._id;\r\n const kullaniciId = this.FikoYT.kimlik.aktifKullaniciJson()?._id;\r\n if (!kartId || !kullaniciId) return;\r\n\r\n this.altKartGonderiliyor = true;\r\n this.CD.detectChanges();\r\n\r\n try {\r\n const altKartId = this.FikoYT.fikoIdUret();\r\n const icerikId = this.FikoYT.fikoIdUret();\r\n\r\n const altKart: any = {\r\n _id: altKartId,\r\n _uid: kartId,\r\n vt: \"FikoYT.sistem.hareketler\",\r\n turu: IKartTuru.KART,\r\n sahip: kullaniciId,\r\n gizlilik: this.kart()?.gizlilik ?? 'Herkese Açık',\r\n tarih: new Date(),\r\n veri: {\r\n solSimge: { baslik: 'AK', renkArka: '#1890ff', renkYazi: '#ffffff' },\r\n kurdela: { baslik: '' },\r\n icerikler: [icerikId]\r\n }\r\n };\r\n\r\n const icerik: any = {\r\n _id: icerikId,\r\n _uid: altKartId,\r\n vt: \"FikoYT.sistem.hareketler\",\r\n html: metin,\r\n aciklama: '',\r\n tarih: new Date(),\r\n };\r\n\r\n // Kart kaydet\r\n const formData1 = new FormData();\r\n formData1.append('req_body', JSON.stringify(altKart));\r\n const kartIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n parametreler: formData1,\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n await kartIstek.isteSync();\r\n\r\n // İçerik kaydet\r\n const formData2 = new FormData();\r\n formData2.append('req_body', JSON.stringify(icerik));\r\n const icerikIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n parametreler: formData2,\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n await icerikIstek.isteSync();\r\n\r\n // Optimistic: listeye ekle\r\n altKart.veri.icerikler = [{ _id: icerikId, html: metin }];\r\n this.altKartlar.unshift(altKart);\r\n\r\n // Yorum sayısını güncelle\r\n if (this.kart().yorumSayisi == null) this.kart().yorumSayisi = 0;\r\n this.kart().yorumSayisi++;\r\n\r\n this.yeniAltKartMetni = '';\r\n this.altKartHesaplamaSifirla();\r\n this.kartBildirim.bildirimTetikle('alt_kart_eklendi', kartId, this.kart()?.sahip, this.kart()?.veri?.kurdela?.baslik);\r\n this.nzMessage.success('Alt kart eklendi');\r\n } catch (e) {\r\n console.error('Alt kart eklenemedi:', e);\r\n this.nzMessage.error('Alt kart eklenemedi');\r\n } finally {\r\n this.altKartGonderiliyor = false;\r\n this.CD.detectChanges();\r\n }\r\n }\r\n\r\n // Beğenme meşgul durumu\r\n begenMesgul = false;\r\n\r\n /** NOT: ESKI Beğen İşlemleri - Geriye dönük uyumluluk */\r\n async tiklandiBegen() {\r\n if (this.begenMesgul) return; // Çift tıklamayı engelle\r\n\r\n const kartId = this.kart()?._id;\r\n const kullaniciId = this.FikoYT.kimlik.aktifKullaniciJson()?._id;\r\n\r\n if (!kartId || !kullaniciId) return;\r\n\r\n this.begenMesgul = true;\r\n this.CD.detectChanges();\r\n\r\n const oncekiBegendi = this.miBegen;\r\n\r\n // Optimistic UI Update\r\n if (oncekiBegendi) {\r\n this.kart().begenenler = this.kart().begenenler?.filter(id => id !== kullaniciId) ?? [];\r\n } else {\r\n if (!this.kart().begenenler) this.kart().begenenler = [];\r\n this.kart().begenenler.push(kullaniciId);\r\n }\r\n this.CD.detectChanges();\r\n\r\n try {\r\n // Beğeni hareket kaydı oluştur/güncelle\r\n const begeniKayit: IKart = {\r\n vt: \"FikoYT.sistem.hareketler\",\r\n yol: \"FikoYT.sistem.hareketler.begen\",\r\n sahip: kullaniciId,\r\n silindi: oncekiBegendi, // Beğeni kaldırıyorsa silindi=true\r\n turu: IKartTuru.SISTEM,\r\n veri: kartId,\r\n tarih: new Date(),\r\n };\r\n\r\n if (oncekiBegendi) {\r\n // Beğeniyi kaldırma - mevcut kaydı bul ve silindi=true yap\r\n const kontrolIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n {\r\n $match: {\r\n vt: \"FikoYT.sistem.hareketler\",\r\n yol: \"FikoYT.sistem.hareketler.begen\",\r\n sahip: kullaniciId,\r\n veri: kartId,\r\n silindi: { $ne: true }\r\n }\r\n }\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n const kontrolCevap = await kontrolIstek.isteSync();\r\n const mevcutKayit = kontrolCevap?.cevap?.sonuc?.[0];\r\n\r\n if (mevcutKayit?._id) {\r\n // Silme işlemi - FikoYTIstekKok ile\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify({\r\n _id: mevcutKayit._id,\r\n silindi: true\r\n }));\r\n\r\n const silIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n parametreler: formData,\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n await silIstek.isteSync();\r\n }\r\n } else {\r\n // Beğeni ekleme - önce silinmiş kayıt var mı kontrol et\r\n const kontrolIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n {\r\n $match: {\r\n vt: \"FikoYT.sistem.hareketler\",\r\n yol: \"FikoYT.sistem.hareketler.begen\",\r\n sahip: kullaniciId,\r\n veri: kartId,\r\n silindi: true\r\n }\r\n }\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n const kontrolCevap = await kontrolIstek.isteSync();\r\n const silinmisKayit = kontrolCevap?.cevap?.sonuc?.[0];\r\n\r\n const formData = new FormData();\r\n if (silinmisKayit?._id) {\r\n // Silinmiş kayıt varsa geri getir\r\n formData.append('req_body', JSON.stringify({\r\n _id: silinmisKayit._id,\r\n silindi: false\r\n }));\r\n } else {\r\n // Yeni kayıt oluştur\r\n formData.append('req_body', JSON.stringify(begeniKayit));\r\n }\r\n\r\n const ekleIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n parametreler: formData,\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n await ekleIstek.isteSync();\r\n }\r\n\r\n // Beğenenleri aggregate ile güncelle\r\n const guncelBegenenler = await this.begenenlerListesiniGuncelle(kartId);\r\n this.kart().begenenler = guncelBegenenler;\r\n\r\n // Güncel beğenenleri kart belgesine kaydet\r\n await this.kartGuncelle({ begenenler: guncelBegenenler });\r\n\r\n\r\n } catch (e) {\r\n console.error('Beğeni hatası:', e);\r\n\r\n // Rollback - Optimistic UI'ı geri al\r\n if (oncekiBegendi) {\r\n if (!this.kart().begenenler) this.kart().begenenler = [];\r\n this.kart().begenenler.push(kullaniciId);\r\n } else {\r\n this.kart().begenenler = this.kart().begenenler?.filter(id => id !== kullaniciId) ?? [];\r\n }\r\n\r\n this.nzMessage.error('Beğeni işlemi başarısız oldu');\r\n } finally {\r\n setTimeout(() => {\r\n this.begenMesgul = false;\r\n this.CD.detectChanges();\r\n this.FikoYT.degisti.emit();\r\n }, 0);\r\n }\r\n }\r\n\r\n async tiklandiBegenenler($event: any) {\r\n const begenenlerIds = this.kart()?.begenenler ?? [];\r\n\r\n if (begenenlerIds.length === 0) {\r\n this.nzMessage.info('Henüz kimse beğenmedi');\r\n return;\r\n }\r\n\r\n try {\r\n // MEVCUT SİSTEM: goUyeler.aggregate\r\n const kullanicilarIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.goUyeler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n {\r\n $match: {\r\n _id: { $in: begenenlerIds }\r\n }\r\n }\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n const cevap = await kullanicilarIstek.isteSync();\r\n const begenenKullanicilar = cevap?.cevap?.sonuc ?? [];\r\n\r\n // MEVCUT MODAL: DialogKisiSeciciComponent\r\n this.nzModalServis.create({\r\n nzContent: DialogKisiSeciciComponent,\r\n nzDraggable: true,\r\n nzData: {\r\n kisiler: begenenKullanicilar,\r\n saltOkunur: true,\r\n baslik: `Beğenenler (${begenenKullanicilar.length})`\r\n },\r\n nzFooter: null,\r\n nzClosable: true,\r\n nzMaskClosable: true,\r\n nzBodyStyle: { padding: '10px' },\r\n nzStyle: { padding: '0', 'max-width': '500px' },\r\n });\r\n\r\n } catch (e) {\r\n console.warn('Beğenenleri getirme hatası:', e);\r\n this.nzMessage.error('Beğenenler listesi yüklenemedi');\r\n }\r\n }\r\n\r\n tiklandiMenu() {\r\n let test = this.nzModalServis.create({\r\n nzContent: KartMenuComponent,\r\n nzDraggable: true,\r\n nzData: { kart: this.kart() },\r\n nzFooter: null,\r\n nzClosable: false,\r\n nzMaskClosable: true,\r\n nzBodyStyle: { padding: '10px', },\r\n nzStyle: { padding: '0', 'max-width': '360px' },\r\n }).afterClose.subscribe((data) => {\r\n if (data?.aksiyon === 'duzenle') {\r\n this.kartDuzenlemeModu(data.kart);\r\n } else if (data?.aksiyon === 'kopyala') {\r\n if (!this.lisans('kart_klon')) { this.nzMessage.warning('Kart klonlama özelliği lisansınızda yok.'); }\r\n else {\r\n this.servisProjeler.kartKopyalaPaylasimaAc(data.kart);\r\n this.nzMessage.success('Kart kopyası paylaş kutusuna eklendi');\r\n this.FikoYT.degisti.emit();\r\n }\r\n } else if (data?.aksiyon === 'sablonKaydet') {\r\n if (!this.lisans('sablon_olustur')) { this.nzMessage.warning('Şablon oluşturma özelliği lisansınızda yok.'); }\r\n else {\r\n this.kartSablonKaydet(data.kart);\r\n this.FikoYT.degisti.emit();\r\n }\r\n } else if (data?.aksiyon === 'koleksiyonaEkle') {\r\n this.koleksiyonaEkleDialogAc(data.kart);\r\n this.FikoYT.degisti.emit();\r\n }\r\n this.CD.detectChanges();\r\n test.unsubscribe();\r\n });\r\n }\r\n\r\n /** Kart düzenleme moduna geç */\r\n duzenlemeModunda = false;\r\n duzenlemeSayfaNo = 0;\r\n private _yedekKart: any = null;\r\n\r\n /** Düzenleme için kart kopyası (paylaş kutusu beslemesi) */\r\n duzenlemeKart: IKart = null;\r\n\r\n kartDuzenlemeModu(kart: any) {\r\n if (!this.miSahip) return;\r\n // Yedek al (iptal için)\r\n this._yedekKart = JSON.parse(JSON.stringify(kart));\r\n // Paylaş kutusu için kart kopyası oluştur\r\n this.duzenlemeKart = JSON.parse(JSON.stringify(kart));\r\n // veri.icerikler yoksa icerikler'den al\r\n if (!this.duzenlemeKart.veri) this.duzenlemeKart.veri = {} as any;\r\n if (!this.duzenlemeKart.veri.icerikler && this.duzenlemeKart.icerikler) {\r\n this.duzenlemeKart.veri.icerikler = JSON.parse(JSON.stringify(this.duzenlemeKart.icerikler));\r\n }\r\n // Sunucudaki medyalar için orijinal türe dönüştür + dosyaObjectUrl ata\r\n // Düzenleme modunda EKREFERANS → orijinal türe çevir (Referans etiketi görünmez)\r\n const fapiUrl = this.FikoYT.fapiUrl;\r\n for (const icerik of (this.duzenlemeKart.veri?.icerikler ?? [])) {\r\n const ek = icerik?.ek;\r\n if (!ek?._id || ek.dosya) continue;\r\n\r\n // EKREFERANS → orijinal türe geri dönüştür\r\n if (ek.turu === 'EKREFERANS' && ek.bilgiler?.orijinalTuru) {\r\n ek.turu = ek.bilgiler.orijinalTuru;\r\n }\r\n\r\n // dosyaObjectUrl yoksa sunucu URL'sini ata (değişmemiş dosya tekrar yüklenmez)\r\n if (!ek.dosyaObjectUrl) {\r\n const dosyaTemel = fapiUrl + '/fapiv1/fikoyt.com.FikoYT.sistem.dosyalar.' + ek._id;\r\n switch (ek.turu) {\r\n case 'RESIM':\r\n ek.dosyaObjectUrl = dosyaTemel + '.resim?boyut=760x?&t=0';\r\n break;\r\n case 'VIDEO':\r\n case 'SES':\r\n case 'DOSYA':\r\n ek.dosyaObjectUrl = dosyaTemel + '.dosya';\r\n break;\r\n }\r\n }\r\n }\r\n // Paylaş kutusunun aktifIcerikNo'sunu sıfırla\r\n this.servisProjeler.aktifIcerikNo = 0;\r\n this.duzenlemeModunda = true;\r\n this.duzenlemeSayfaNo = 0;\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** Düzenleme modunda sayfa ekle */\r\n duzenlemeSayfaEkle() {\r\n const kart = this.kart();\r\n if (!kart) return;\r\n const icerikler = kart.veri?.icerikler || kart.icerikler;\r\n if (!icerikler) return;\r\n icerikler.push({ _id: this.FikoYT.fikoIdUret(), aciklama: '', html: '', ek: null, sifre: null });\r\n this.duzenlemeSayfaNo = icerikler.length - 1;\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** Düzenleme modunda aktif sayfayı sil */\r\n duzenlemeSayfaSil() {\r\n const kart = this.kart();\r\n if (!kart) return;\r\n const icerikler = kart.veri?.icerikler || kart.icerikler;\r\n if (!icerikler || icerikler.length <= 1) return;\r\n icerikler.splice(this.duzenlemeSayfaNo, 1);\r\n if (this.duzenlemeSayfaNo >= icerikler.length) {\r\n this.duzenlemeSayfaNo = icerikler.length - 1;\r\n }\r\n this.CD.detectChanges();\r\n }\r\n\r\n /** Düzenlemeyi kaydet */\r\n async kartDuzenlemeKaydet() {\r\n const kart = this.kart();\r\n if (!kart?._id || !this.miSahip || this.duzenlemeMesgul) return;\r\n\r\n this.duzenlemeMesgul = true;\r\n this.CD.detectChanges();\r\n\r\n try {\r\n const icerikler = kart.veri?.icerikler || kart.icerikler || [];\r\n\r\n // 1) Her içeriği KENDİ belgesine upsert et (paylaşım akışı formatı: _uid = kartId)\r\n // Serileştirilemez/yerel alanları temizle\r\n for (const ic of icerikler) {\r\n if (!ic?._id) continue;\r\n const belge = JSON.parse(JSON.stringify(ic));\r\n belge._uid = kart._id;\r\n delete belge.ek?.dosyaObjectUrl;\r\n delete belge.ek?.objectUrl;\r\n delete belge.ek?.resimObjectUrl;\r\n delete belge.ek?.dosya;\r\n delete belge.ek?.resim; // Blob: JSON.stringify'de {} çıkar; sunucu tarafından yüklenir\r\n delete belge.ek?._sablonDosyalar;\r\n const fd = new FormData();\r\n fd.append('req_body', JSON.stringify(belge));\r\n\r\n // 3D (STP/WRL) akışı entegrasyonu: STP fotoğrafı (ek.resim) blob'unu\r\n // `resimid` anahtarıyla, model/dosya (ek.dosya) blob'unu `ek._id` anahtarıyla yükle.\r\n // (ikart-kutusu.paylasTiklandi'daki kartDerinKopya + forFormData.dosyalar\r\n // takıntısıyla aynı GridFS routing'i — bu iki yolda tutarlı olmalı.)\r\n const ek = ic?.ek;\r\n if (ek?.resim instanceof Blob) {\r\n fd.append(ek.resimid || (ek._id + '_resim'), ek.resim, 'stp-goruntu.png');\r\n }\r\n if (ek?.dosya instanceof File || ek?.dosya instanceof Blob) {\r\n fd.append(String(ek._id), ek.dosya, ek.dosya.name || 'dosya');\r\n }\r\n\r\n await new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n onEkOlsun: true,\r\n parametreler: fd,\r\n depoModu: false,\r\n gecikmeliCevap: false,\r\n }).isteSync();\r\n }\r\n\r\n // 2) Kart dokümanına SADECE id listesi yaz (veri.icerikler DB'de id dizisidir;\r\n // okuma sırasında $lookup ile doldurulur — tam obje yazmak hydrate'i bozar)\r\n const idList = icerikler.map((c: any) => c?._id).filter(Boolean);\r\n\r\n const istek = await FikoYTIstekKok.request({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.guncelle',\r\n parametreler: {\r\n filter: { _id: kart._id },\r\n set: {\r\n icerikler: idList,\r\n 'veri.icerikler': idList,\r\n parametreler: kart.parametreler,\r\n etiketler: kart.etiketler,\r\n duzenlenmeTarihi: new Date()\r\n }\r\n },\r\n tekrarSayisi: 3,\r\n oncelik: 5,\r\n gecikmeliCevap: false,\r\n });\r\n const cevap: any = await istek.isteSync();\r\n if (cevap?.cevap?.sonuc) {\r\n this.nzMessage.success('Kart güncellendi');\r\n kart.duzenlenmeTarihi = new Date();\r\n if (kart.veri?.icerikler) kart.veri.icerikler = [...icerikler];\r\n kart.icerikler = [...icerikler];\r\n this.duzenlemeModunda = false;\r\n this.duzenlemeKart = null;\r\n this.duzenlemeSayfaNo = 0;\r\n this._yedekKart = null;\r\n this.kartGuncellendi.emit({ ...kart });\r\n this.canliGuncelleme.guncellemeYayin(kart._id, { ...kart });\r\n this.kartBildirim.bildirimTetikle('kart_guncellendi', kart._id, kart.sahip, kart.veri?.kurdela?.baslik);\r\n const mentionHtmller = (icerikler || []).map((i: any) => i.html || '').filter((h: string) => h.includes('data-user-id'));\r\n if (mentionHtmller.length > 0) this.kartBildirim.mentionBildirimGonder(kart._id, kart.veri?.kurdela?.baslik || '', mentionHtmller);\r\n this.CD.detectChanges();\r\n this.FikoYT.degisti.emit();\r\n } else {\r\n this.nzMessage.error('Güncelleme başarısız');\r\n this.CD.detectChanges();\r\n }\r\n } catch (e) {\r\n this.nzMessage.error('Güncelleme sırasında bir hata oluştu');\r\n } finally {\r\n this.duzenlemeMesgul = false;\r\n this.CD.detectChanges();\r\n }\r\n }\r\n\r\n /** Düzenlemeyi iptal et */\r\n kartDuzenlemeIptal() {\r\n // Kartı yedeğe geri al\r\n const kart = this.kart();\r\n if (kart && this._yedekKart) {\r\n const yedek = JSON.parse(JSON.stringify(this._yedekKart));\r\n if (kart.veri) Object.assign(kart.veri, yedek.veri || {});\r\n if (yedek.icerikler) kart.icerikler = yedek.icerikler;\r\n if (yedek.etiketler) kart.etiketler = yedek.etiketler;\r\n if (yedek.kisiler) kart.kisiler = yedek.kisiler;\r\n if (yedek.gizlilik) kart.gizlilik = yedek.gizlilik;\r\n if (yedek.parametreler) kart.parametreler = yedek.parametreler;\r\n }\r\n this.duzenlemeModunda = false;\r\n this.duzenlemeKart = null;\r\n this.duzenlemeSayfaNo = 0;\r\n this._yedekKart = null;\r\n this.CD.detectChanges();\r\n this.FikoYT.degisti.emit();\r\n }\r\n\r\n /** Paylaş kutusundan düzenleme başarılı olduğunda */\r\n kartDuzenlemeBasarili(guncellenmisKart: any) {\r\n const kart = this.kart();\r\n const kaynak = this.duzenlemeKart;\r\n if (kart && kaynak) {\r\n if (kaynak.veri?.icerikler) {\r\n const yeniIcerikler = [...kaynak.veri.icerikler];\r\n if (kart.veri) kart.veri.icerikler = yeniIcerikler;\r\n kart.icerikler = yeniIcerikler;\r\n }\r\n if (kaynak.etiketler) kart.etiketler = [...kaynak.etiketler];\r\n if (kaynak.kisiler) kart.kisiler = [...kaynak.kisiler];\r\n if (kaynak.gizlilik) kart.gizlilik = kaynak.gizlilik;\r\n if (kaynak.parametreler) kart.parametreler = [...kaynak.parametreler];\r\n kart.duzenlenmeTarihi = new Date();\r\n }\r\n this.duzenlemeModunda = false;\r\n this.duzenlemeKart = null;\r\n this.duzenlemeSayfaNo = 0;\r\n this._yedekKart = null;\r\n this.kartGuncellendi.emit({ ...kart });\r\n if (kart?._id) this.canliGuncelleme.guncellemeYayin(kart._id, { ...kart });\r\n if (kart?._id) this.kartBildirim.bildirimTetikle('kart_guncellendi', kart._id, kart.sahip, kart.veri?.kurdela?.baslik);\r\n this.CD.detectChanges();\r\n this.FikoYT.degisti.emit();\r\n }\r\n\r\n /** Şablon olarak kaydet */\r\n async kartSablonKaydet(kart: any) {\r\n if (!kart?.parametreler?.length) {\r\n this.nzMessage.warning('Bu kartta parametre yok, şablon oluşturulamaz');\r\n return;\r\n }\r\n\r\n const sablon = {\r\n turu: IKartTuru.SABLON,\r\n sahip: this.FikoYT.kimlik.aktifKullaniciJson()?._id,\r\n parametreler: kart.parametreler.map((p: any) => ({ ...p, degeri: null })),\r\n etiketler: kart.etiketler ?? [],\r\n gizlilik: 'Sadece Ben',\r\n veri: {\r\n sablonAdi: 'Şablon - ' + (kart.icerikler?.[0]?.aciklama?.substring(0, 30) || 'İsimsiz'),\r\n sablonKategori: 'ozel',\r\n },\r\n tarih: new Date()\r\n };\r\n\r\n const istek = await FikoYTIstekKok.request({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.kalem',\r\n parametreler: sablon,\r\n tekrarSayisi: 3,\r\n oncelik: 5,\r\n gecikmeliCevap: false,\r\n });\r\n const cevap: any = await istek.isteSync();\r\n if (cevap?.cevap?.sonuc) {\r\n this.nzNotification.success(\"Başarılı\", 'Şablon kaydedildi');\r\n } else {\r\n this.nzNotification.error(\"Hata\", 'Şablon kaydedilemedi');\r\n }\r\n }\r\n\r\n tiklandiDialogGizlilik() {\r\n const saltOkunur = !this.miSahip;\r\n let test = this.nzModalServis.create({\r\n nzContent: DialogGizlilikSeciciComponent,\r\n nzDraggable: false,\r\n nzData: { gizlilik: this.kart().gizlilik, liste: this.kart().gizlilikListe, saltOkunur },\r\n nzFooter: null,\r\n nzClosable: false,\r\n nzMaskClosable: saltOkunur,\r\n nzBodyStyle: { padding: '10px' },\r\n nzStyle: { padding: '0', 'max-width': '360px' },\r\n nzMaskStyle: { 'background-color': 'rgba(0, 0, 0, 0.3)' }\r\n }).afterClose.subscribe((data) => {\r\n if (data && this.miSahip) {\r\n this.kart().gizlilik = data?.gizlilik;\r\n this.kart().gizlilikListe = data?.liste ?? [];\r\n this.kartGuncelle({ gizlilik: data.gizlilik, gizlilikListe: data.liste ?? [] });\r\n }\r\n test.unsubscribe();\r\n this.CD.detectChanges();\r\n });\r\n }\r\n\r\n tiklandiDialogKisiSecici() {\r\n const saltOkunur = !this.miSahip;\r\n let test = this.nzModalServis.create({\r\n nzContent: DialogKisiSeciciComponent,\r\n nzDraggable: true,\r\n nzData: { kisiler: this.kart().kisiler ?? [], saltOkunur },\r\n nzFooter: null,\r\n nzClosable: false,\r\n nzMaskClosable: saltOkunur,\r\n nzBodyStyle: { padding: '10px' },\r\n nzStyle: { padding: '0', 'max-width': '360px' },\r\n }).afterClose.subscribe((data) => {\r\n if (data && this.miSahip) {\r\n this.kart().kisiler = data?.kisiler ?? this.kart().kisiler;\r\n this.kartGuncelle({ kisiler: this.kart().kisiler });\r\n }\r\n test.unsubscribe();\r\n this.CD.detectChanges();\r\n });\r\n }\r\n\r\n tiklandiDialogEtiketler() {\r\n const saltOkunur = !this.miSahip;\r\n let test = this.nzModalServis.create({\r\n nzContent: DialogEtiketlerComponent,\r\n nzDraggable: true,\r\n nzData: { etiketler: this.kart().etiketler ?? [], saltOkunur },\r\n nzFooter: null,\r\n nzClosable: false,\r\n nzMaskClosable: saltOkunur,\r\n nzBodyStyle: { padding: '10px' },\r\n nzStyle: { padding: '0', 'max-width': '360px' },\r\n }).afterClose.subscribe((data) => {\r\n if (data && this.miSahip) {\r\n this.kart().etiketler = data;\r\n this.kartGuncelle({ etiketler: data });\r\n }\r\n test.unsubscribe();\r\n this.CD.detectChanges();\r\n });\r\n }\r\n\r\n kartGuncellePublic(degerler: Record) {\r\n this.kartGuncelle(degerler);\r\n }\r\n\r\n async tiklandiKonumDuzenle() {\r\n if (!this.miSahip) return;\r\n const { HaritaYerSeciciComponent } = await import('@/src/app/uygulamalar/soyagaci/harita-yer-secici/harita-yer-secici.component');\r\n const sub = this.nzModalServis.create({\r\n nzTitle: 'Konum Seç',\r\n nzContent: HaritaYerSeciciComponent,\r\n nzWidth: 520,\r\n nzFooter: null,\r\n nzData: {\r\n mevcutYer: this.kart()?.konum?.yerIsmi || '',\r\n mevcutKoordinat: this.kart()?.konum?.koordinat || null,\r\n },\r\n }).afterClose.subscribe((sonuc: any) => {\r\n if (sonuc?.yerIsmi) {\r\n this.kart().konum = { yerIsmi: sonuc.yerIsmi, koordinat: sonuc.koordinat };\r\n this.kartGuncelle({ konum: this.kart().konum });\r\n this.CD.detectChanges();\r\n }\r\n sub.unsubscribe();\r\n });\r\n }\r\n\r\n tiklandiBayrakDuzenle() {\r\n if (!this.miSahip) return;\r\n\r\n let test = this.nzModalServis.create({\r\n nzContent: FikoYTBayrakEditor,\r\n nzDraggable: true,\r\n nzData: { bayrak: this.kart()?.veri?.solSimge },\r\n nzFooter: null,\r\n nzClosable: false,\r\n nzMaskClosable: true,\r\n nzBodyStyle: { padding: '10px' },\r\n nzStyle: { padding: '0', 'max-width': '360px' },\r\n }).afterClose.subscribe((data) => {\r\n if (data?.bayrak) {\r\n if (!this.kart().veri) this.kart().veri = {};\r\n this.kart().veri.solSimge = data.bayrak;\r\n this.kartGuncelle({ 'veri.solSimge': data.bayrak });\r\n }\r\n test.unsubscribe();\r\n this.CD.detectChanges();\r\n });\r\n }\r\n\r\n // ─── Koleksiyon Sistemi ───\r\n async koleksiyonaEkleDialogAc(kart: any) {\r\n if (!kart?._id) return;\r\n\r\n // Mevcut koleksiyonları getir\r\n const koleksiyonIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\r\n parametreler: {\r\n aggregate: [\r\n { $match: { vt: 'FikoYT.sistem.hareketler', yol: 'FikoYT.sistem.hareketler.koleksiyon', silindi: { $ne: true } } },\r\n { $match: { sahip: this.FikoYT.kimlik.aktifKullaniciJson()?._id } },\r\n { $sort: { _id: -1 } },\r\n { $limit: 50 },\r\n ]\r\n },\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n const cevap: any = await koleksiyonIstek.isteSync();\r\n const mevcutKoleksiyonlar: any[] = cevap?.cevap?.sonuc ?? [];\r\n\r\n // NzModal ile confirm dialog\r\n const yeniKoleksiyonAdi = { value: '' };\r\n const seciliKoleksiyon = { value: null as any };\r\n\r\n const modalRef = this.nzModalServis.create({\r\n nzTitle: 'Koleksiyona Ekle',\r\n nzContent: `\r\n
\r\n ${mevcutKoleksiyonlar.length > 0 ? `\r\n
\r\n \r\n
\r\n ${mevcutKoleksiyonlar.map((k, i) => `\r\n
\r\n \r\n ${k.veri?.koleksiyonAdi ?? 'İsimsiz'}\r\n (${k.veri?.kartlar?.length ?? 0} kart)\r\n
\r\n `).join('')}\r\n
\r\n
\r\n ` : ''}\r\n
\r\n \r\n \r\n
\r\n
\r\n `,\r\n nzOkText: 'Ekle',\r\n nzCancelText: 'İptal',\r\n nzBodyStyle: { padding: '16px' },\r\n nzStyle: { 'max-width': '380px' },\r\n nzOnOk: async () => {\r\n const input = document.getElementById('yeniKoleksiyonInput') as HTMLInputElement;\r\n const yeniAd = input?.value?.trim();\r\n const seciliEl = document.querySelector('.koleksiyon-item.secili');\r\n const seciliIdx = seciliEl ? parseInt(seciliEl.getAttribute('data-index') ?? '-1') : -1;\r\n\r\n if (seciliIdx >= 0) {\r\n // Mevcut koleksiyona ekle\r\n const koleksiyon = mevcutKoleksiyonlar[seciliIdx];\r\n if (!koleksiyon.veri.kartlar) koleksiyon.veri.kartlar = [];\r\n if (koleksiyon.veri.kartlar.includes(kart._id)) {\r\n this.nzMessage.warning('Kart zaten bu koleksiyonda');\r\n return;\r\n }\r\n koleksiyon.veri.kartlar.push(kart._id);\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify({\r\n _id: koleksiyon._id,\r\n 'veri.kartlar': koleksiyon.veri.kartlar\r\n }));\r\n const guncelle = new FikoYTIstekKok({\r\n metod: 'POST', komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n parametreler: formData, onEkOlsun: true, depoModu: false,\r\n });\r\n await guncelle.isteSync();\r\n this.nzMessage.success(`\"${koleksiyon.veri.koleksiyonAdi}\" koleksiyonuna eklendi`);\r\n } else if (yeniAd) {\r\n // Yeni koleksiyon oluştur\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify({\r\n vt: 'FikoYT.sistem.hareketler',\r\n yol: 'FikoYT.sistem.hareketler.koleksiyon',\r\n turu: 'SISTEM',\r\n veri: {\r\n koleksiyonAdi: yeniAd,\r\n kartlar: [kart._id]\r\n }\r\n }));\r\n const ekle = new FikoYTIstekKok({\r\n metod: 'POST', komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n parametreler: formData, onEkOlsun: true, depoModu: false,\r\n });\r\n await ekle.isteSync();\r\n this.nzMessage.success(`\"${yeniAd}\" koleksiyonu oluşturuldu`);\r\n } else {\r\n this.nzMessage.warning('Bir koleksiyon seçin veya yeni ad girin');\r\n return false;\r\n }\r\n },\r\n });\r\n\r\n // Koleksiyon item tıklama olayını bağla\r\n setTimeout(() => {\r\n const items = document.querySelectorAll('.koleksiyon-item');\r\n items.forEach(item => {\r\n item.addEventListener('click', () => {\r\n items.forEach(i => { (i as HTMLElement).classList.remove('secili'); (i as HTMLElement).style.background = ''; });\r\n (item as HTMLElement).classList.add('secili');\r\n (item as HTMLElement).style.background = '#bae7ff';\r\n });\r\n });\r\n }, 100);\r\n }\r\n\r\n private async kartGuncelle(degerler: Record) {\r\n const kartId = this.kart()?._id;\r\n if (!kartId) return;\r\n\r\n try {\r\n const guncelleme: any = { _id: kartId, ...degerler };\r\n const formData = new FormData();\r\n formData.append('req_body', JSON.stringify(guncelleme));\r\n\r\n const guncelleIstek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n parametreler: formData,\r\n onEkOlsun: true,\r\n depoModu: false,\r\n });\r\n\r\n await guncelleIstek.isteSync();\r\n } catch (e) {\r\n console.warn('Kart güncelleme hatası:', e);\r\n this.nzMessage?.error('Güncelleme kaydedilemedi');\r\n }\r\n this.FikoYT.degisti.emit();\r\n }\r\n\r\n // ─── Sayfa Bilgi Balon (kisi-balon-v2 ile) ───\r\n sayfaBalonAcik = false;\r\n sayfaBalonKisi: any = null;\r\n\r\n sayfaBalonToggle(event: MouseEvent) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n if (this.sayfaBalonAcik) {\r\n this.sayfaBalonAcik = false;\r\n this.CD.detectChanges();\r\n return;\r\n }\r\n const sb = this.kart()?.ayarlar?._sayfaBilgi;\r\n if (!sb?.hedefId) return;\r\n\r\n this.sayfaBalonKisi = {\r\n id: sb.hedefId,\r\n kisiIsmi: sb.hedefIsim || '',\r\n soyagaciKisiId: sb.hedefId,\r\n };\r\n this.sayfaBalonAcik = true;\r\n this.CD.detectChanges();\r\n }\r\n\r\n sayfaBalonGorunurlukDegisti(gorunur: boolean) {\r\n if (!gorunur && this.sayfaBalonAcik) {\r\n this.sayfaBalonAcik = false;\r\n this.CD.detectChanges();\r\n }\r\n }\r\n\r\n}\r\n"],"names":["_forTrack0","i2","i4","i5","_c1","_c2","i7","i8","i9","i10","i11","i14","i6","i1","i3","FikoYTKokBilesenComponent","IEkTuru"],"mappings":"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"}