{"version":3,"file":"fikoyt-shared-fikoyt-shared-CsXeMg2D.mjs","sources":["../../../projects/shared/src/lib/environment/environment.ts","../../../projects/shared/src/lib/service/Environment/environment.ts","../../../projects/shared/src/lib/service/fikoyt.cihaz-kimlik.service.ts","../../../projects/shared/src/lib/service/fikoyt.istek.service.ts","../../../projects/shared/src/lib/service/fikoyt.socket.service.ts","../../../projects/shared/src/lib/service/modules/fikoyt-dexie/fiko-dexie.database.ts","../../../projects/shared/src/lib/service/kimlik.service.ts","../../../projects/shared/src/lib/service/modules/fikoyt-istek-kok/fikoyt-istek.interface.ts","../../../projects/shared/src/lib/service/modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fiko-three-js/IFikoThreeJS/fiko-floating-toolbar/fiko-floating-toolbar.service.ts","../../../projects/shared/src/lib/service/fikoyt.seri-port.service.ts","../../../projects/shared/src/lib/service/fikoyt.arayuz.service.ts","../../../projects/shared/src/lib/service/fikoyt.service.ts","../../../projects/shared/src/lib/service/language.service.ts","../../../projects/shared/src/lib/service/kok-bilesen/platform.ts","../../../projects/shared/src/lib/service/kok-bilesen/media-matcher.ts","../../../projects/shared/src/lib/service/kok-bilesen/breakpoints-observer.ts","../../../projects/shared/src/lib/service/kok-bilesen/breakpoints.ts","../../../projects/shared/src/lib/service/kok-bilesen/kok-bilesen.component.ts","../../../projects/shared/src/lib/service/icons-provider.ts","../../../projects/shared/src/lib/service/fikoyt-ui/decorators/debounce.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/dinamik-bilesen/dinamik-bilesen.registry.ts","../../../projects/shared/src/lib/service/fikoyt-ui/decorators/dinamik-bilesen.ts","../../../projects/shared/src/lib/service/fikoyt-ui/directives/zamanliGoster.directive.ts","../../../projects/shared/src/lib/service/fikoyt-ui/extensions/extensions.ts","../../../projects/shared/src/lib/service/fikoyt-ui/helpers/FikoYTId.ts","../../../projects/shared/src/lib/service/fikoyt-ui/helpers/durations.ts","../../../projects/shared/src/lib/service/fikoyt-ui/interfaces/IAlan.ts","../../../projects/shared/src/lib/service/fikoyt-ui/interfaces/IGrup.ts","../../../projects/shared/src/lib/service/fikoyt-ui/interfaces/IKart.interface.ts","../../../projects/shared/src/lib/service/fikoyt-ui/interfaces/IParametre.ts","../../../projects/shared/src/lib/service/fikoyt-ui/pipes/dosya-boyutu.pipe.ts","../../../projects/shared/src/lib/service/fikoyt-ui/pipes/filoyt-uzun-bas.pipe.ts","../../../projects/shared/src/lib/service/fikoyt-ui/pipes/onInit.pipe.ts","../../../projects/shared/src/lib/service/fikoyt-ui/pipes/sanitize.pipe.ts","../../../projects/shared/src/lib/service/fikoyt-ui/pipes/yuvarla.pipe.ts","../../../projects/shared/src/lib/service/fikoyt-ui/services/asset-loader.service.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/dinamik-bilesen/dinamik-bilesen-renderer.component.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/dinamik-bilesen/canli-guncelleme.service.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/dinamik-bilesen/alt-kart-hesaplama.service.ts","../../../projects/shared/src/lib/service/servisler/bildirim-tercihleri.service.ts","../../../projects/shared/src/lib/service/servisler/bildirim.service.ts","../../../projects/shared/src/lib/service/servisler/tema.service.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-diyalog-kullanici-menu/fikoyt-diyalog-kullanici-menu.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-diyalog-kullanici-menu/fikoyt-diyalog-kullanici-menu.component.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-uygulama-baslik/baslik-portal.service.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-uygulama-baslik/fikoyt-uygulama-baslik.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-uygulama-baslik/fikoyt-uygulama-baslik.component.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/public.api.ts","../../../projects/shared/src/lib/app/guards/cihaz.guard.ts","../../../projects/shared/src/lib/app/uygulamalar/hmi-pano/guards/kart-aktif.guard.ts","../../../projects/shared/src/lib/app/uygulamalar/hmi-pano/hmi-pano.routes.ts","../../../projects/shared/src/lib/app/guards/uye.guard.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-kart/fikoyt-kart.component.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-kart/fikoyt-kart.component.html","../../../projects/shared/src/lib/app/sayfalar/kullanici/uye-olmayan/giris-yap/giris-yap.component.ts","../../../projects/shared/src/lib/app/sayfalar/kullanici/uye-olmayan/giris-yap/giris-yap.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-yuvarlak-resim/fikoyt-yuvarlak-resim.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-yuvarlak-resim/fikoyt-yuvarlak-resim.component.ts","../../../projects/shared/src/lib/app/sayfalar/kullanici/uye-olmayan/aramiza-katil/aramiza-katil.component.ts","../../../projects/shared/src/lib/app/sayfalar/kullanici/uye-olmayan/aramiza-katil/aramiza-katil.component.html","../../../projects/shared/src/lib/app/sayfalar/kullanici/uye-olmayan/sifre-sifirla/sifre-sifirla.component.ts","../../../projects/shared/src/lib/app/sayfalar/kullanici/uye-olmayan/sifre-sifirla/sifre-sifirla.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-dalga/fikoyt-dalga.component.html","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fikoyt-dalga/fikoyt-dalga.component.ts","../../../projects/shared/src/lib/app/uygulamalar/hmi-pano/pano/pages/personel/pages/yonetim-kayit/hmi-yonetim.service.ts","../../../projects/shared/src/lib/app/uygulamalar/hmi-pano/pano/pages/personel/pages/satis/hmi-satis.service.ts","../../../projects/shared/src/lib/app/uygulamalar/hmi-pano/pano/pages/personel/pages/uretim/hmi-uretim.service.ts","../../../projects/shared/src/lib/app/uygulamalar/hmi-pano/pano/pages/personel/pages/projeler/hmi-ortak-helpers.ts","../../../projects/shared/src/lib/app/uygulamalar/hmi-pano/pano/pages/personel/pages/projeler/hmi-projeler.service.ts","../../../projects/shared/src/lib/app/uygulamalar/uyar-dokum/projeler/projeler.service.ts","../../../projects/shared/src/lib/app/uygulamalar/paylasim-sistemi/paylasim-sistemi.component.ts","../../../projects/shared/src/lib/app/uygulamalar/paylasim-sistemi/paylasim-sistemi.component.html","../../../projects/shared/src/lib/app/guards/uygulama-erisim.guard.ts","../../../projects/shared/src/lib/app/uygulamalar/paylasim-sistemi/paylasim-sistemi.routes.ts","../../../projects/shared/src/lib/app/locale-tr.ts","../../../projects/shared/src/public-api.ts","../../../projects/shared/src/index.ts","../../../projects/shared/src/fikoyt-shared.ts"],"sourcesContent":["// console.log(location.href);\r\n\r\n// Detect development mode\r\nconst isDevelopment = window.location.hostname === 'localhost' ||\r\n window.location.hostname === '127.0.0.1' ||\r\n window.location.port === '444';\r\n\r\n// Dynamic configuration based on environment\r\nconst baseUrl = \"https://fikoyt.com\";\r\n\r\nexport var FikoYTEnvIstemci: any = {\r\n uygulamaIsmi: \"fikoyt.com\",\r\n firmaAdi: \"FikoYT Sistem\",\r\n firmaResimUrlKok: \"\",\r\n firmaResimYokUrl: \"\",\r\n firmaResimHazirlaniyorUrl: \"\",\r\n\r\n solMenuGenislik: '230px',\r\n\r\n logoKucuk: \"/resimler/logo-kucuk.png\",\r\n logoBuyuk: \"/resimler/logo-buyuk.png\",\r\n\r\n logoSimge: \"/resimler/logo.png\",\r\n\r\n languages: [\r\n { title: '🇹🇷 Türkçe', code: 'tr' },\r\n { title: '🇬🇧 English', code: 'en' },\r\n ],\r\n\r\n paraBirimleri: {\r\n 0: \"₺\",\r\n 2: \"$\",\r\n 3: \"£\",\r\n 8: \"€\",\r\n },\r\n\r\n adres: {\r\n url: baseUrl,\r\n sunucuUrl: baseUrl + \":9000\",\r\n port: 444,\r\n fapiPort: 9000,\r\n fapiUrl: baseUrl + \":9000/fapiv1\",\r\n\r\n options: {\r\n autoConnect: true,\r\n 'sync disconnect on unload': true,\r\n transports: ['websocket'],\r\n upgrade: true,\r\n secure: true,\r\n reconnect: true,\r\n closeOnBeforeunload: true,\r\n rejectUnauthorized: false,\r\n withCredentials: true,\r\n },\r\n\r\n sabitUrller: {\r\n giris: {\r\n girisUrl: \"/🏠/🏛\",\r\n girisVarsayilanUrl: \"/🏠/🏛\",\r\n girisVarsayilanUrlList: ['/👨', \"🏠\"],\r\n },\r\n admin: {\r\n varsayilanUrl: \"/💎/🏠\",\r\n varsayilanUrlList: ['/💎', \"🏠\"],\r\n },\r\n uye: {\r\n uyeVarsayilanUrl: \"/🏠/🏛\",\r\n uyeVarsayilanUrlList: ['/👨', \"🏠\"],\r\n }\r\n },\r\n serverUrller: {\r\n girisYap: \"giris.giris-yap\",\r\n cikisYap: \"giris.cikis-yap\",\r\n girisYapilmisMi: \"giris.girisYapilmisMi\",\r\n bildirimler: {\r\n kaydet: \"merkur.b2b.bildirimler.push-kaydet\",\r\n cihazlar: \"merkur.b2b.bildirimler.cihazlar\",\r\n yolla: \"merkur.b2b.bildirimler.yolla\",\r\n },\r\n },\r\n },\r\n cache: {\r\n maxAge: 86400 * 10,// NOT: : 10 Gün\r\n imageCache: \"public, max-age=86400\",\r\n },\r\n serviceWorkerAcik: false,\r\n /** */\r\n altYazi: \"⭕ FikoYT Sistem ⭕\",\r\n sayfaBaslik: \"FikoYT Sistem\",\r\n}\r\n","// console.log(location.href);\r\n\r\nimport { SocketIoConfig } from \"ngx-socket-io\";\r\n\r\n// Detect development mode\r\nconst isDevelopment = window.location.hostname === 'localhost' ||\r\n window.location.hostname === '127.0.0.1' ||\r\n window.location.port === '444';\r\n\r\n// Dynamic configuration based on environment\r\nconst baseUrl = \"https://fikoyt.com\";\r\n\r\nexport var FikoYTEnvIstemci: any = {\r\n uygulamaIsmi: \"fikoyt.com\",\r\n firmaAdi: \"FikoYT Sistem\",\r\n firmaResimUrlKok: \"\",\r\n firmaResimYokUrl: \"\",\r\n firmaResimHazirlaniyorUrl: \"\",\r\n\r\n solMenuGenislik: '230px',\r\n\r\n logoKucuk: \"/resimler/logo-kucuk.png\",\r\n logoBuyuk: \"/resimler/logo-buyuk.png\",\r\n\r\n logoSimge: \"/resimler/logo.png\",\r\n\r\n languages: [\r\n { title: '🇹🇷 Türkçe', code: 'tr' },\r\n { title: '🇬🇧 English', code: 'en' },\r\n ],\r\n\r\n paraBirimleri: {\r\n 0: \"₺\",\r\n 2: \"$\",\r\n 3: \"£\",\r\n 8: \"€\",\r\n },\r\n\r\n adres: {\r\n url: baseUrl,\r\n sunucuUrl: baseUrl + \":9000\",\r\n port: 444,\r\n fapiPort: 9000,\r\n fapiUrl: baseUrl + \":9000/fapiv1\",\r\n\r\n options: {\r\n autoConnect: true,\r\n 'sync disconnect on unload': true,\r\n transports: ['websocket'],\r\n upgrade: true,\r\n secure: true,\r\n reconnect: true,\r\n closeOnBeforeunload: true,\r\n rejectUnauthorized: false,\r\n withCredentials: true,\r\n },\r\n\r\n sabitUrller: {\r\n giris: {\r\n girisUrl: \"/🏠/🏛\",\r\n girisVarsayilanUrl: \"/🏠/🏛\",\r\n girisVarsayilanUrlList: ['/👨', \"🏠\"],\r\n },\r\n admin: {\r\n varsayilanUrl: \"/💎/🏠\",\r\n varsayilanUrlList: ['/💎', \"🏠\"],\r\n },\r\n uye: {\r\n uyeVarsayilanUrl: \"/🏠/🏛\",\r\n uyeVarsayilanUrlList: ['/👨', \"🏠\"],\r\n }\r\n },\r\n serverUrller: {\r\n girisYap: \"giris.giris-yap\",\r\n cikisYap: \"giris.cikis-yap\",\r\n girisYapilmisMi: \"giris.girisYapilmisMi\",\r\n bildirimler: {\r\n kaydet: \"merkur.b2b.bildirimler.push-kaydet\",\r\n cihazlar: \"merkur.b2b.bildirimler.cihazlar\",\r\n yolla: \"merkur.b2b.bildirimler.yolla\",\r\n },\r\n },\r\n },\r\n cache: {\r\n maxAge: 86400 * 10,// NOT: : 10 Gün\r\n imageCache: \"public, max-age=86400\",\r\n },\r\n serviceWorkerAcik: false,\r\n /** */\r\n altYazi: \"⭕ FikoYT Sistem ⭕\",\r\n sayfaBaslik: \"FikoYT Sistem\",\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { NgxDeviceInfoService } from 'ngx-device-info';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CihazKimlikService {\n private readonly localStorageKey = 'cihaz_kimlik'; // LocalStorage anahtarı\n private cachedDeviceId: string | null = null;\n public bilgiler: any = {};\n\n constructor(public device: NgxDeviceInfoService) {\n device.getDeviceInfo().then((data) => {\n this.bilgiler = data;\n });\n }\n\n /**\n * Her seferinde aynı cihaz kimliğini döndürür.\n * Tarayıcıda veri sıfırlansa bile aynı ID'yi oluşturur.\n */\n get kimlik(): string | any {\n if (this.cachedDeviceId) {\n return this.cachedDeviceId;\n }\n\n // 1. LocalStorage'dan cihaz kimliğini al\n let deviceId = localStorage.getItem(this.localStorageKey);\n\n // Eğer cihaz kimliği yoksa, yeni bir kimlik oluştur ve sakla\n if (!deviceId) {\n deviceId = this.fikoIdUret();\n localStorage.setItem(this.localStorageKey, deviceId);\n }\n\n this.cachedDeviceId = deviceId;\n return deviceId;\n }\n\n /**\n * Aynı cihazda her zaman aynı kimliği döndürür.\n * Bu kimlik her seferinde sabit kalır.\n */\n private generateDeviceId(): string {\n const salt = 'unique-device-salt'; // Gizli anahtar (salt), sabit olmalı\n const userAgent = navigator.userAgent; // Tarayıcı bilgisi\n const platform = navigator.platform; // Cihaz platformu\n const screenWidth = window.screen.width; // Ekran genişliği\n const screenHeight = window.screen.height; // Ekran yüksekliği\n const language = navigator.language; // Dil bilgisi\n const colorDepth = window.screen.colorDepth; // Ekran renk derinliği\n\n // Tüm cihaz ve tarayıcı verilerini birleştir\n const rawData = [\n userAgent,\n platform,\n language,\n screenWidth,\n screenHeight,\n colorDepth,\n salt, // Gizli anahtar ekleniyor\n new Date().toISOString()\n ].join('-');\n\n // Hash fonksiyonu kullanarak benzersiz bir kimlik oluştur\n return this.simpleHash(rawData);\n }\n\n /**\n * Basit bir hash fonksiyonu ile metni hashler.\n * @param input: Cihaz verilerinin birleştirilmiş hali\n */\n private simpleHash(input: string): string {\n let hash = 0;\n for (let i = 0; i < input.length; i++) {\n const char = input.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash |= 0; // 32-bit sayıya dönüştür\n }\n return Math.abs(hash).toString(); // Pozitif bir değer döndür\n }\n\n\n\n public fikoIdUret(): string {\n // tslint:disable-next-line:no-bitwise\n const timestamp = (new Date().getTime() / 1000 | 0).toString(16);\n return timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => {\n // tslint:disable-next-line:no-bitwise\n return (Math.random() * 16 | 0).toString(16);\n }).toLowerCase();\n }\n\n /**\n * Cihaz kimliğini temizler (test veya geliştirme amaçlı).\n */\n clearDeviceId(): void {\n localStorage.removeItem(this.localStorageKey);\n this.cachedDeviceId = null;\n }\n\n}\n","import { HttpClient, HttpEventType, HttpHeaders, HttpRequest } from \"@angular/common/http\";\n// import * as qs from \"qs\";\nimport { Observable, catchError, map, throwError } from \"rxjs\";\n// import { FikoYTEnvIstemci } from \"src/app/Environment/environment\";\nimport { Injectable } from \"@angular/core\";\nimport { IStringifyOptions } from \"qs\";\nimport { FikoYTEnvIstemci } from \"./Environment/environment\";\nimport { CihazKimlikService } from \"./fikoyt.cihaz-kimlik.service\";\n// import { ObjectID } from 'mongodb'; // or ObjectID\n\n\n// export const FikoYTQsDecoder = function FikoYTQsDecoder(parseNumbers = true, parseBool = true, ignoreNull = true, ignoreEmptyString = true) {\n// return function decoder(str: any, decoder: any, charset: any) {\n// const strWithoutPlus = str.replace(/\\+/g, ' ')\n// if (charset === 'iso-8859-1') {\n// // unescape never throws, no try...catch needed:\n// return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape)\n// }\n\n// if (/^(?=[a-f\\d]{24}$)(\\d+[a-f]|[a-f]+\\d)/i.test(str)) {\n// return ObjectId.createFromHexString(str)\n// }\n\n// if (/(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/.test(str)) {\n// return new Date(str)\n// }\n\n\n// if (parseNumbers && /^-?[0-9]\\d*(\\.\\d+)?$/.test(str)) {\n// return parseFloat(str)\n// }\n\n// if (ignoreEmptyString && str.length === 0) {\n// return\n// }\n\n// const keywords: any = {\n// null: ignoreNull ? undefined : null,\n// undefined\n// }\n\n// if (str in keywords) {\n// return keywords[str]\n// }\n\n// const boolKeywords: any = {\n// true: true,\n// false: false\n// }\n\n// if (parseBool && str in boolKeywords) {\n// return boolKeywords[str]\n// }\n\n// try {\n// return decodeURIComponent(strWithoutPlus)\n// } catch (e) {\n// return strWithoutPlus\n// }\n// }\n// }\n\n// export const FikoYTQsParserOptions: IParseOptions = {\n// decoder: FikoYTQsDecoder(),\n// charset: \"utf-8\",\n// charsetSentinel: true, strictNullHandling: true,\n// comma: true, parseArrays: true, allowDots: false, allowPrototypes: true, depth: 30, arrayLimit: 30\n// }\n\nexport const FikoYTQsStringifyOptions: IStringifyOptions = {\n charset: \"utf-8\",\n charsetSentinel: true,\n skipNulls: false, strictNullHandling: true,\n}\n\n/** BİLGİ: Http İsteklerinin Türkçeleştirilmiş Hali */\nexport enum IstekOlayTuru {\n Istendi = 0,\n IlerlemeIstek = 1,\n BaslikCevap = 2,\n IlerlemeCevap = 3,\n Cevaplandi = 4,\n Ozel = 5\n}\n\n/** BİLGİ: Python(Server) Fiko Hata Sınıfını Buraya Taşıdım */\nexport interface FikoHata {\n kategori: string;\n kod: number;\n baslik: string;\n mesaj: string;\n sistemMesaji: string;\n}\n\nexport interface IstekIlerleme {\n toplam: number;\n durum: number;\n yuzde: number;\n}\n\ntype DurumHatalarTipi = Array;\n\nexport interface IstekDurum {\n hata?: boolean | null;\n hatalar?: DurumHatalarTipi;\n}\n\n/** BİLGİ: Şimdilik Bir İşe Yaramıyor Ama Lazım Olur Diye Silmiyorum */\nexport interface IstekGiden {\n ismi: string;\n parametreler?: Array;\n form?: any;\n kwargs?: any;\n json?: any;\n}\n/** NOT: Sonuc İstekleri Standarda Bağlanıyor */\nexport default interface IstekSonuc {\n turu?: IstekOlayTuru;\n ilerleme?: IstekIlerleme;\n durum?: IstekDurum;\n istek?: IstekGiden;\n sonuc?: T | any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FikoYTIstekService {\n\n\n constructor(\n public readonly http: HttpClient,\n public readonly Cihaz: CihazKimlikService,\n ) {\n\n }\n\n public fapisteV1(metod: \"POST\" | \"GET\" | \"PATCH\" | \"PUT\" | \"DELETE\" | \"OPTIONS\" = \"GET\", istek: string, { sorguParametreler = null, vucutParametreler = null, onEkOlsun = true }: { sorguParametreler?: any, vucutParametreler?: any | null, onEkOlsun?: boolean | null } = { sorguParametreler: {}, vucutParametreler: null, onEkOlsun: true }): IstekSonuc & Observable> | any {\n // public fapisteV1(metod: \"POST\" | \"GET\" | \"PATCH\" | \"PUT\" | \"DELETE\" | \"OPTIONS\" = \"GET\", istek: string, sorguParametreler: any, vucutParametreler: any | null): IstekSonuc & Observable> | any {\n let istem: string;\n if (onEkOlsun) istem = FikoYTEnvIstemci.adres.url + \":\" + FikoYTEnvIstemci.adres.fapiPort + '/fapiv1/' + `${FikoYTEnvIstemci.uygulamaIsmi}.` + istek\n else\n istem = FikoYTEnvIstemci.adres.url + \":\" + FikoYTEnvIstemci.adres.fapiPort + '' + istek\n const req = new HttpRequest(metod, istem, vucutParametreler, {\n /** BİLGİ: İlerleme Durumu Hakkında Rapor Almak İçin */\n reportProgress: true,\n /** BİLGİ: Response Headerleri */\n headers: new HttpHeaders(\n {\n 'Access-Control-Allow-Origin': '*',\n \"Access-Control-Allow-Credentials\": \"true\",\n \"mode\": 'no-cors',\n \"uygulama\": FikoYTEnvIstemci.uygulamaIsmi,\n \"cihaz_kimlik\": this.Cihaz.kimlik,\n \"cihaz_tipi\": this.Cihaz?.bilgiler?.deviceType ?? \"Web\",\n // @ts-ignore\n // \"cihaz_bilgi\": this.Cihaz.bilgiler.toJson(),\n }),\n /** BİLGİ: \n * Session Ve Cookie Yani Request Bilgileri İle İletim Yapmak İçin \n * Giriş Kontrolü Ve Aktif Kullanıcı İçin Gerekli (Flask.current_user)\n */\n withCredentials: true\n });\n\n return this.http.request(req).pipe(\n /** BİLGİ: \n * Gelen Veri Haritalanıyor.Aşağıdaki Olaylar Ana Hattır.\n * Çağırılan Fonksiyon İçinde Tekrardan Haritalanarak Süzülebilir.\n */\n map(sonuc => {\n let _snc: IstekSonuc | Observable> | any = {};\n // console.log(sonuc);\n /** BİLGİ: Eğer Olay Türü Cevap Alınıyor İse */\n if (sonuc.type === HttpEventType.DownloadProgress) {\n // console.log(\"ilerlemeCevap\", sonuc)\n _snc.turu = IstekOlayTuru.IlerlemeCevap;\n _snc.ilerleme = { durum: 0, toplam: 0, yuzde: 0 };\n _snc.ilerleme.toplam = sonuc.total;\n _snc.ilerleme.durum = sonuc.loaded;\n _snc.ilerleme.yuzde = (sonuc.loaded / sonuc.total!) * 100;\n // return _snc\n }\n /** BİLGİ: Eğer Olay Türü İstek Yollanıyor İse */\n if (sonuc.type === HttpEventType.UploadProgress) {\n // console.log(\"ilerlemeİstek\", sonuc)\n _snc.turu = IstekOlayTuru.IlerlemeIstek;\n _snc.ilerleme = { durum: 0, toplam: 0, yuzde: 0 };\n _snc.ilerleme.toplam = sonuc.total;\n _snc.ilerleme.durum = sonuc.loaded;\n _snc.ilerleme.yuzde = (sonuc.loaded / sonuc.total!) * 100;\n // return _snc\n }\n /** BİLGİ: Eğer Olay Türü İstek Cevaplandi İse */\n if (sonuc.type === HttpEventType.Response) {\n // console.log(\"Cevaplandı\", sonuc)\n /** YAP: Eğer Serverda Durum Hatalı Dönmüş İse Observable Hatalı Döndürülecek */\n _snc.turu = IstekOlayTuru.Cevaplandi;\n _snc.ilerleme = { durum: 0, toplam: 100, yuzde: 100 };\n _snc.sonuc = sonuc;\n // return _snc\n }\n /** BİLGİ: Eğer Olay Türü Cevap İstek Başlığı İse */\n if (sonuc.type === HttpEventType.ResponseHeader) {\n // console.log(\"BaslikCevap\", sonuc)\n _snc.turu = IstekOlayTuru.BaslikCevap;\n _snc.ilerleme = { durum: 0, toplam: 100, yuzde: 100 };\n _snc.sonuc = sonuc;\n // return _snc\n }\n /** BİLGİ: Eğer Olay Türü İstek Gonderildi İse */\n if (sonuc.type === HttpEventType.Sent) {\n // console.log(\"istendi\", sonuc)\n _snc.turu = IstekOlayTuru.Istendi;\n _snc.ilerleme = { durum: 0, toplam: 100, yuzde: 100 };\n _snc.sonuc = sonuc;\n // return _snc\n }\n /** BİLGİ: Eğer Olay Türü İstek Özel İse */\n if (sonuc.type === HttpEventType.User) {\n _snc.turu = IstekOlayTuru.Ozel;\n _snc.ilerleme = { durum: 0, toplam: 0, yuzde: 100 };\n _snc.sonuc = sonuc;\n // return _snc\n }\n return _snc;\n }),\n /** BİLGİ: İstekte Ve İsteğin Cevabında Hata Var İse */\n catchError(hatalar => throwError(hatalar))\n );\n }\n\n}\n","import { ApplicationRef, Injectable, Injector, WritableSignal, effect, inject, signal } from '@angular/core';\nimport { Socket } from 'ngx-socket-io';\nimport { FikoYTEnvIstemci } from './Environment/environment';\nimport { CihazKimlikService } from './fikoyt.cihaz-kimlik.service';\nimport { FikoYTService } from './fikoyt.service';\n\n\nexport class SocketFikoYT extends Socket {\n\n bagli: WritableSignal = signal(false);\n\n nameSpaces = new Map();\n\n constructor(private FikoYT: FikoYTService,) {\n\n super({\n url: FikoYTEnvIstemci.adres.url + ':' + FikoYTEnvIstemci.adres.fapiPort + '/', options: {\n ...FikoYTEnvIstemci.adres.options,\n extraHeaders: {\n \"uygulama\": FikoYTEnvIstemci.uygulamaAdi,\n \"cihaz_kimlik\": FikoYT.cihaz.kimlik,\n //@ts-ignore\n \"kullanici_kimlik\": FikoYT?.kimlik?.aktifKullaniciJson()?._id ?? null,\n \"cihaz_tipi\": FikoYT.cihaz.bilgiler.deviceType,\n // @ts-ignore\n \"cihaz_bilgi\": FikoYT.cihaz.bilgiler,\n }\n }\n }, inject(ApplicationRef));\n\n this.fromEvent('connect').subscribe(async () => {\n this.bagli.set(true);\n try {\n await this.gonder(\"FikoYT.sistem.io.cihaz.baglandi\");\n } catch (error) {\n\n }\n\n });\n this.fromEvent('reconnect').subscribe(async () => {\n this.bagli.set(true);\n try {\n await this.gonder(\"FikoYT.sistem.io.cihaz.baglandi\");\n } catch (error) {\n\n }\n\n });\n this.fromEvent('disconnect').subscribe(() => {\n this.bagli.set(false);\n });\n\n\n }\n\n baglan() {\n super.connect();\n }\n\n\n kop() {\n if (this.bagli())\n super.disconnect();\n // this.removeAllListeners();\n }\n\n override of(namespace: string) {\n if (this.nameSpaces.has(namespace))\n return this.nameSpaces.get(namespace);\n\n const socketInstance = new Socket({\n url: FikoYTEnvIstemci.adres.url + ':' + FikoYTEnvIstemci.adres.fapiPort + '/' + namespace, options: {\n ...FikoYTEnvIstemci.adres.options ?? {}, extraHeaders: {\n \"uygulama\": FikoYTEnvIstemci.uygulamaAdi,\n \"cihaz_kimlik\": this.FikoYT.cihaz.kimlik,\n //@ts-ignore\n \"kullanici_kimlik\": this.FikoYT.kimlik.aktifKullaniciJson()?._id ?? null,\n \"cihaz_tipi\": this.FikoYT.cihaz.bilgiler.deviceType,\n //@ts-ignore\n \"cihaz_bilgi\": this.FikoYT.cihaz.bilgiler,\n }\n }\n }, inject(ApplicationRef))\n this.nameSpaces.set(namespace, socketInstance);\n return this.nameSpaces.get(namespace);\n }\n\n\n // eventUyeGirisYapti(bilgilerKullanici: any) {\n // this.emit(\"FikoYT.sistem.uye.girisYapti\", bilgilerKullanici);\n // }\n\n // eventUyeCikisYapti(bilgilerKullanici: any) {\n // this.emit(\"FikoYT.sistem.uye.cikisYapti\", bilgilerKullanici);\n // }\n\n // async serverFonksiyon(komut: string, parametreler: Array | any) {\n // return new Promise(resolve => {\n // if (Array.isArray(parametreler) == true) {\n // this.emit(komut, ...parametreler, (snc: any) => {\n // resolve(snc);\n // });\n // } else {\n // this.emit(komut, parametreler, (snc: any) => {\n // resolve(snc);\n // });\n // }\n // });\n // }\n\n // async serverPcKomutCalistir(komut: string | string[]): Promise {\n // return new Promise(resolve => {\n // // this.emit(FikoWsYollar.FikoYT.sistem.serverPc.komutCalistir, komut, (snc: any) => {\n // // resolve(snc);\n // // });\n\n // });\n // }\n async serverFonksiyon(komut: string, parametreler: Array | any) {\n return new Promise(resolve => {\n if (Array.isArray(parametreler) == true) {\n this.emit(komut, ...parametreler, (snc: any) => {\n resolve(snc);\n });\n } else {\n this.emit(komut, parametreler, (snc: any) => {\n resolve(snc);\n });\n }\n });\n }\n\n\n async gonder(_eventName: string, ..._args: any[]): Promise {\n // console.log(this.FikoYT.cihaz.bilgiler)\n try {\n let FikoYTData = {\n \"FikoYT\": {\n \"kullanici_kimlik\": this.FikoYT.kimlik.aktifKullaniciJson()?._id ?? null,\n \"cihaz_kimlik\": this.FikoYT.cihaz.kimlik,\n \"cihaz_tipi\": this.FikoYT.cihaz.bilgiler.deviceType,\n \"uygulama\": FikoYTEnvIstemci.uygulamaIsmi,\n //@ts-ignore\n \"cihaz_bilgi\": this.FikoYT.cihaz.bilgiler,\n // ...(FikoYTCoreService.serviceSettings.socketDataMiddleWare ?? {}),\n }\n };\n\n let data = [\n ..._args ?? null,\n FikoYTData,\n ];\n return await super.emitWithAck(_eventName, ...data);\n } catch (error) {\n return null;\n }\n }\n}\n","import Dexie from 'dexie';\n\nexport class FikoDexieDatabase extends Dexie {\n\n\n constructor(vtIsmi: string, tablolar: string[] = [\"Sistem\", \"Ayarlar\"], public tablo: string = \"Sistem\") {\n // ayarlar = {\n // vt_ismi: 'FikoYT-Sistem',//your database name here\n\n // sablon: {\n // ayarlar: '',\n // }\n // };\n // const vtIsmi: string = ayarlar.vt_ismi;\n // const vtVersiyon: number = ayarlar.vt_versiyon || 1;\n // const sablon: any = ayarlar.sablon;\n\n super(vtIsmi);\n\n let tablo2store: { [tabloIsmi: string]: string } = {};\n for (let i = 0; i < tablolar.length; i++) {\n const element = tablolar[i];\n tablo2store[element] = \"\";\n }\n\n this.version(1).stores(tablo2store);\n }\n\n // tabloDegistir(tablo: string): FikoDexieDatabase {\n // this.tablo = tablo;\n // this.close();\n // this.version(1).stores({ tablo: '' });\n // this.open();\n // return this;\n // };\n\n ekleTek(object: Object) {\n return this.table(this.tablo).add(object);\n }\n\n ekleCoklu(objects: Object[]) {\n return this.table(this.tablo).bulkAdd(objects);\n }\n\n sayisi(table: string) {\n return this.table(this.tablo).count();\n }\n\n ekleYadaGuncelleTek(object: Object | null, key?: any) {\n\n if (key) {\n return this.table(this.tablo).put(object, key);\n } else {\n return this.table(this.tablo).put(object);\n }\n }\n\n ekleYadaGuncelleCoklu(objects: Object[], keys?: any) {\n if (keys) {\n return this.table(this.tablo).bulkPut(objects, keys);\n } else {\n return this.table(this.tablo).bulkPut(objects);\n }\n }\n\n silTek(primaryKey: any) {\n return this.table(this.tablo).delete(primaryKey);\n }\n\n silCoklu(primaryKeys: any[]) {\n return this.table(this.tablo).bulkDelete(primaryKeys);\n }\n\n silTumu() {\n return this.table(this.tablo).clear();\n }\n\n operateOnEach(callback: (item: any, idbCursor: any) => any) {\n return this.table(this.tablo).each(callback);\n }\n\n filitrele(filterFunction: (value: any) => boolean) {\n return this.table(this.tablo).filter(filterFunction);\n }\n\n getByPrimaryKey(primaryKey: any, callback?: (item: any) => any) {\n if (callback) {\n return this.table(this.tablo).get(primaryKey, callback);\n } else {\n return this.table(this.tablo).get(primaryKey);\n }\n }\n\n getByKeyToValueMap(keyValueMap: Object, callback?: (item: Object) => any) {\n if (callback) {\n return this.table(this.tablo).get(keyValueMap, callback);\n } else {\n return this.table(this.tablo).get(keyValueMap);\n }\n }\n\n getFirstNItemsOfTable(num: number) {\n return this.table(this.tablo).limit(num);\n }\n\n sirala(index: string) {\n return this.table(this.tablo).orderBy(index);\n }\n\n offset(ignoreUpto: number) {\n return this.table(this.tablo).offset(ignoreUpto);\n }\n\n reverse(table: string) {\n return this.table(this.tablo).reverse();\n }\n\n toArray(callback?: (objects: Object[]) => any) {\n if (callback) {\n return this.table(this.tablo).toArray(callback);\n } else {\n return this.table(this.tablo).toArray();\n }\n }\n\n toCollection(table: string) {\n return this.table(this.tablo).toCollection();\n }\n\n update(key: any, changes: Object) {\n return this.table(this.tablo).update(key, changes);\n }\n\n\n}","import { HttpClient } from \"@angular/common/http\";\n\nimport { ChangeDetectorRef, Injectable, Injector, WritableSignal, effect, inject, runInInjectionContext, signal } from \"@angular/core\";\nimport { FikoYTService } from \"./fikoyt.service\";\nimport { FikoYTEnvIstemci } from \"./Environment/environment\";\nimport { IstekOlayTuru } from \"./fikoyt.istek.service\";\nimport { NzNotificationService } from \"ng-zorro-antd/notification\";\nimport { Router } from \"@angular/router\";\nimport { timeout } from \"rxjs\";\nimport { FikoYTIstekKok } from \"./modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service\";\n\n@Injectable({\n providedIn: 'root',\n}) export class KimlikService {\n /** BİLGİ: Aktif Kullanıcı */\n aktifKullaniciJson: WritableSignal = signal(null);\n // $bagliCihazlar: BehaviorSubject> = new BehaviorSubject>([null]);\n /** */\n cihazlar: WritableSignal<{ \"desktop\": number, \"machine\": number, \"mobile\": number, \"tablet\": number, \"tv\": number }> = signal({ \"desktop\": 0, \"machine\": 0, \"mobile\": 0, \"tablet\": 0, \"tv\": 0 });\n /** */\n hataliGirisler: any = [];\n /** */\n $toplamlar: any = null;\n /** */\n // CD: ChangeDetectorRef ;\n /** */\n constructor(private FikoYT: FikoYTService, public CD?: ChangeDetectorRef) {\n // this.CD = inject(ChangeDetectorRef);\n\n\n // await this.aktifCihazlarAl();\n // this.aktifCihazlarAl().then();\n\n // effect(async () => {\n // this.aktifKullaniciJson;\n // FikoYT.parametreler[\"t\"] = Math.random().toString();\n // // if (this.FikoYT.io.bagli()) {\n // // // this.$toplamlar = this.FikoYT.io.fromEvent(\"FikoYT.sistem.cihaz.bağlandı.toplamlar\").subscribe(async (data: any) => {\n // // // console.log(data);\n // // // this.cihazlar.set(data[0]);\n // // // })\n // // // await this.FikoYT.io.gonder(\"FikoYT.sistem.io.cihaz.baglandi\");\n\n // // } else {\n // // // await this.FikoYT.io.gonder(\"FikoYT.sistem.io.cihaz.baglandi\");\n // // // if (this.$toplamlar)\n // // // this.$toplamlar.complete();\n // // // this.FikoYT.io.off(\"FikoYT.sistem.cihaz.bağlandı.toplamlar\");\n // // }\n // this.FikoYT.io.gonder(\"FikoYT.sistem.io.cihaz.guncelle\");\n // })\n\n\n\n\n\n }\n\n // async aktifCihazlarAl() {\n\n // let sonuc: any = await this.FikoYT.io.serverFonksiyon(\"FikoYT.sistem.bagliCihazlar\", this.FikoYT.kimlik.aktifKullaniciJson());\n // let cihazListesi = { masaustu: 0, mobil: 0, cihaz: 0, saat: 0 };\n // cihazListesi.masaustu = sonuc.filter((cihaz: any) => {\n // return cihaz.parametreler[2].degeri?.isDesktop == true;\n // }).length;\n // cihazListesi.mobil = sonuc.filter((cihaz: any) => {\n // return cihaz.parametreler[2].degeri?.isMobile == true;\n // }).length;\n\n // this.cihazlar.set(cihazListesi);\n\n // }\n\n async hataliGirislerAl() {\n let sonuc: any = await this.FikoYT.io.serverFonksiyon(\"FikoYT.sistem.hataliGirisler\", this.FikoYT.kimlik.aktifKullaniciJson());\n\n this.hataliGirisler = sonuc ?? [];\n }\n\n\n public async girisYap0(bilgiler: { kullaniciAdi: string, parola: string, [key: string]: any }) {\n let cihaz1 = await this.FikoYT.ayarlar.getByPrimaryKey(\"cihazBilgiler\");\n bilgiler[\"cihaz\"] = cihaz1;\n return await this.FikoYT.istekler.fapisteV1(\"POST\", FikoYTEnvIstemci.adres.serverUrller.girisYap, { vucutParametreler: bilgiler }).toPromise().then(async (data: any) => {\n\n if (data.durum.hata) {\n throw data;\n }\n data = data.sonuc;\n this.aktifKullaniciJson.set(data);\n // await this.aktifCihazlarAl()\n\n // this.FikoYT.io.baglan(data)\n // this.FikoYT.io.eventUyeGirisYapti(data);\n\n await this.FikoYT.ayarlar.ekleYadaGuncelleTek(data, FikoYTEnvIstemci.uygulamaAdi + \"-aktifKullanıcı\");\n\n // await this.FikoYT.bildirimTokenKaydet();\n\n if ('sonraki' in this.FikoYT.activatedRoute.snapshot.queryParams) {\n if (this.FikoYT.activatedRoute.snapshot.queryParams[\"sonraki\"] != '') {\n await this.FikoYT.router.navigateByUrl(this.FikoYT.activatedRoute.snapshot.queryParams[\"sonraki\"]);\n } else {\n await this.FikoYT.router.navigateByUrl(FikoYTEnvIstemci.adres.sabitUrller.admin.varsayilanUrl);\n }\n } else {\n /** NOT: Sonraki Parametresi Yok İse Ana Sayfaya Yönlendiriliyor. */\n await this.FikoYT.router.navigateByUrl(FikoYTEnvIstemci.adres.sabitUrller.admin.varsayilanUrl);\n }\n\n this.FikoYT.parametreler['t'] = Math.random();\n this.FikoYT.degisti.emit();\n },);\n }\n\n public async girisYap(bilgiler: { kullaniciAdi: string, parola: string, [key: string]: any }) {\n // Eğer bu fonksiyonun DI context'i yoksa, bir DI context oluştur:\n // runInInjectionContext(Injector.create({\n // providers: [], // Provider'larını buraya ekleyebilirsin.\n // parent: undefined // `parent` olarak undefined kullan.\n // }), () => {\n\n\n const formData: FormData = new FormData();\n formData.append('req_body', JSON.stringify(bilgiler));\n\n this.FikoYT.istekler.fapisteV1('POST', 'FikoYT.sistem.giris.yap', { vucutParametreler: formData }).subscribe((snc: any) => {\n if (snc.turu == IstekOlayTuru.Cevaplandi) {\n if (snc.sonuc.body.durum.hata == true) {\n let hataMesajlari = \"\";\n snc.sonuc.body.durum.hatalar.forEach((hata: any) => {\n hataMesajlari += hata.mesaj + \"\\n\";\n });\n\n this.FikoYT.nzNotification.error(\"Hatalar Var\", hataMesajlari, {\n nzStyle: {\n \"white-space\": \"pre-line\",\n }\n });\n } else {\n this.FikoYT.nzNotification.success(\"Giriş Başarılı\", \"Sisteme Girişiniz Yapılmıştır\");\n\n this.FikoYT.istekler.fapisteV1('POST', 'FikoYT.sistem.aktif-kullanici.bilgi', { vucutParametreler: formData }).subscribe((snc: any) => {\n if (snc.turu == IstekOlayTuru.Cevaplandi && !snc?.sonuc?.body?.durum?.hata) {\n setTimeout(() => {\n this.FikoYT.kimlik.aktifKullaniciJson.set(snc?.sonuc?.body?.sonuc);\n this.FikoYT.parametreler['t'] = Math.random();\n this.FikoYT.degisti.emit();\n setTimeout(() => {\n this.FikoYT.io.kop();\n this.FikoYT.io.baglan();\n }, 0);\n }, 0);\n // this.CD.detectChanges();\n\n }\n });\n\n this.FikoYT.router.navigate([\"/\"]);\n }\n }\n });\n // });\n }\n\n public async cikisYap() {\n await this.FikoYT.istekler.fapisteV1('POST', 'FikoYT.sistem.cikis.yap',).subscribe((snc: any) => {\n if (snc.turu == IstekOlayTuru.Cevaplandi) {\n if (snc.sonuc.body.durum.hata == true) {\n let hataMesajlari = \"\";\n snc.sonuc.body.durum.hatalar.forEach((hata: any) => {\n hataMesajlari += hata.mesaj + \"\\n\";\n });\n\n // this.nzNotification.error(\"Hatalar Var\", hataMesajlari, {\n // nzStyle: {\n // \"white-space\": \"pre-line\",\n // }\n // });\n } else {\n // this.FikoYT.nzNotification.success(\"Giriş Başarılı\", \"Sisteme Girişiniz Yapılmıştır\");\n /** */\n this.FikoYT.istekler.fapisteV1('POST', 'FikoYT.sistem.aktif-kullanici.bilgi').subscribe((snc: any) => {\n if (snc.turu == IstekOlayTuru.Cevaplandi) {\n if (snc?.sonuc?.body?.durum?.hata != true) {\n // console.log(snc);\n setTimeout(() => {\n this.FikoYT.kimlik.aktifKullaniciJson.set(snc?.sonuc?.body?.sonuc);\n this.FikoYT.parametreler['t'] = Math.random();\n this.FikoYT.degisti.emit();\n setTimeout(() => {\n this.FikoYT.io.kop();\n this.FikoYT.io.baglan();\n }, 0);\n }, 0);\n // this.CD.detectChanges();\n\n }\n }\n\n })\n\n this.FikoYT.router.navigate([\"/\"]);\n }\n };\n });\n\n }\n\n public async cikisYap0() {\n let cihaz = await this.FikoYT.ayarlar.getByPrimaryKey(\"cihazBilgiler\");\n\n var cookies = document.cookie.split(\";\");\n for (var i = 0; i < cookies.length; i++) {\n var spcook = cookies[i].split(\"=\");\n document.cookie = spcook[0] + \"=;expires=Thu, 21 Sep 1979 00:00:01 UTC;\";\n }\n\n // let uye = await this.FikoYT.ayarlar.getByPrimaryKey(FikoYTEnvIstemci.uygulamaAdi + \"-aktifKullanıcı\");\n\n await this.FikoYT.ayarlar.ekleYadaGuncelleTek(null, FikoYTEnvIstemci.uygulamaAdi + \"-aktifKullanıcı\");\n\n // this.FikoYT.router.navigateByUrl(FikoYTEnvIstemci.adres.sabitUrller.girisVarsayilanUrl);\n return await this.FikoYT.istekler.fapisteV1(\"POST\", FikoYTEnvIstemci.adres.serverUrller.cikisYap, { vucutParametreler: { cihaz: cihaz } }).toPromise().then(async (data: any) => {\n setTimeout(() => {\n // this.FikoYT.io.baglan(data)\n // this.FikoYT.io.eventUyeCikisYapti(this.FikoYT.kimlik.aktifKullaniciJson());\n\n this.FikoYT.ayarlar.ekleYadaGuncelleTek(null, FikoYTEnvIstemci.uygulamaAdi + \"-aktifKullanıcı\");\n this.FikoYT.kimlik.aktifKullaniciJson.set(null);\n // await this.FikoYT.bildirimTokenKaydet();\n this.FikoYT.router.navigateByUrl(FikoYTEnvIstemci.adres.sabitUrller.giris.girisVarsayilanUrl);\n this.FikoYT.parametreler['t'] = Math.random();\n this.FikoYT.degisti.emit();\n }, 0);\n }).catch(() => {\n setTimeout(() => {\n this.FikoYT.router.navigateByUrl(FikoYTEnvIstemci.adres.sabitUrller.giris.girisVarsayilanUrl);\n this.FikoYT.kimlik.aktifKullaniciJson.set(null);\n this.FikoYT.parametreler['t'] = Math.random();\n this.FikoYT.degisti.emit();\n }, 0);\n });\n }\n\n}","// export const FikoYTQsStringifyOptions: IStringifyOptions = {\n// charset: \"utf-8\",\n// charsetSentinel: true,\n// skipNulls: false, strictNullHandling: true,\n// }\n\n/** BİLGİ: Http İsteklerinin Türkçeleştirilmiş Hali */\nexport enum IstekOlayTuru {\n Beklemede = -1,\n Istendi = 0,\n IlerlemeIstek = 1,\n BaslikCevap = 2,\n IlerlemeCevap = 3,\n Cevaplandi = 4,\n Ozel = 5,\n IptalEdildi = 6,\n Tamamlandi = 7\n}\n\n/** BİLGİ: Python(Server) Fiko Hata Sınıfını Buraya Taşıdım */\nexport interface FikoHata {\n kategori?: string;\n kod?: number;\n baslik?: string;\n mesaj?: string;\n sistemMesaji?: string;\n}\n\nexport type FikoHatalar = Array;\n\nexport interface IstekIlerleme {\n tipi: \"UPLOAD\" | \"DOWNLOAD\";\n toplam: number;\n durum: number;\n yuzde: number;\n}\n\ntype DurumHatalarTipi = Array;\n\nexport interface IstekDurum {\n hata?: boolean | null;\n hatalar?: DurumHatalarTipi;\n baslamaZamani?: Date | null;\n bitisZamani?: Date | null;\n mesgul?: boolean | null;\n tekrar?: number | null;\n}\n\n/** BİLGİ: Şimdilik Bir İşe Yaramıyor Ama Lazım Olur Diye Silmiyorum */\nexport interface IstekGiden {\n ismi: string;\n parametreler?: Array;\n form?: any;\n kwargs?: any;\n json?: any;\n}\n/** NOT: Sonuc İstekleri Standarda Bağlanıyor */\nexport default interface IstekSonuc {\n turu?: IstekOlayTuru;\n istekIlerleme?: IstekIlerleme;\n cevapIlerleme?: IstekIlerleme;\n durum?: IstekDurum;\n istek?: IstekGiden;\n sonuc?: T | any;\n}","import { HttpClient, HttpHeaders, HttpErrorResponse, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';\nimport { BehaviorSubject, Subject, timer, throwError } from 'rxjs';\nimport { catchError, mergeMap, observeOn, retryWhen } from 'rxjs/operators';\nimport { FikoYTEnvIstemci } from '../../Environment/environment';\nimport { CihazKimlikService } from '../../fikoyt.cihaz-kimlik.service';\nimport IstekSonuc, { FikoHata, FikoHatalar, IstekIlerleme, IstekOlayTuru } from './fikoyt-istek.interface';\nimport { ChangeDetectorRef, inject, Injector, runInInjectionContext, signal, WritableSignal } from '@angular/core';\n\ntype FikoYTVoidCallback = (_: { self: FikoYTIstekKok }) => void;\n// type FikoYTCallback = (req: FikoYTIstekKok, res: FikoYTRequestResponse) => void;\ntype FikoYTHataCallback = (_: { self: FikoYTIstekKok, hatalar: FikoHatalar }) => void;\ntype FikoYTIlerlemeCallback = (_: { self: FikoYTIstekKok, ilerleme: IstekIlerleme | any }) => void;\ntype FikoYTCevapCallback = (_: { self: FikoYTIstekKok, sonuc: any }) => void;\ntype FikoYTOnceCevapCallback = (_: { self: FikoYTIstekKok, sonuc: any }) => T | any;\ntype FikoYTMesgulDegistiCallback = (_: { self: FikoYTIstekKok, mesgul: any }) => T | any;\n\nclass FikoYTQueueItem {\n constructor(public engine: FikoYTIstekKok, public oncelik: number) { }\n}\n\n// export class FikoYTRequestResponse {\n// result?: T;\n// type: 'NETWORK' | 'CACHED' = 'NETWORK';\n// endTime: Date = new Date();\n// progress?: number; // progress yüzde (0-100)\n// }\n\n// export class FikoYTError {\n// constructor(public title: string, public message: string) { }\n// }\n\n// export class FikoYTErrors {\n// list: FikoYTError[] = [];\n// get messages(): string[] {\n// return this.list.map(e => `${e.title}: ${e.message}`);\n// }\n// }\n\ninterface IOptionsKok {\n // injector?: Injector,\n metod?: \"POST\" | \"GET\" | \"PUT\" | \"DELETE\" | \"PATCH\" | \"OPTIONS\" | \"HEAD\" | \"TRACE\" | \"CONNECT\",\n komut?: string,\n onEkOlsun?: boolean,\n parametreler?: any,\n tekrarSayisi?: number,\n tekrarBekleme?: number,\n oncelik?: number,\n depoModu?: boolean,\n gecikmeliCevapSuresi?: number,\n gecikmeliCevap?: boolean,\n otoMesgul?: boolean,\n [key: string]: any\n}\n\nexport class FikoYTIstekKok {\n // Statik HttpClient: dışardan mutlaka set edilmeli\n static httpClient: HttpClient;\n static Cihaz: CihazKimlikService;\n // public readonly CD: ChangeDetectorRef;\n\n private static kuyruk: FikoYTQueueItem[] = [];\n private static aktifOlanlarinSayisi = 0;\n private static duraklatildi = false;\n private static enFazlaEszamanliIstek = 10;\n\n\n // private static ramDeposu = new Map();\n // private static lokalDepoIsmiOnEki = 'fiko-cache-';\n\n metod: \"POST\" | \"GET\" | \"PUT\" | \"DELETE\" | \"PATCH\" | \"OPTIONS\" | \"HEAD\" | \"TRACE\" | \"CONNECT\";\n komut: string;\n onEkOlsun: boolean;\n parametreler: any;\n tekrarSayisi: number;\n tekrarBekleme: number;\n oncelik: number;\n // depoModu: boolean;\n\n cevap: IstekSonuc = {\n turu: IstekOlayTuru.Beklemede,\n durum: { hata: false, hatalar: [], mesgul: false, },\n istekIlerleme: undefined,\n cevapIlerleme: undefined,\n sonuc: undefined,\n istek: undefined\n };\n\n private cancelSubject = new Subject();\n private isCancelled = false;\n mesgul = false;\n\n private onBaslatildiListe: FikoYTVoidCallback[] = [];\n private onIstekIlerlemeListe: FikoYTIlerlemeCallback[] = [];\n private onCevapIlerlemeListe: FikoYTIlerlemeCallback[] = [];\n private onCevapListe: FikoYTCevapCallback[] = [];\n private onOnceCevapListe: FikoYTOnceCevapCallback[] = [];\n private onTamamlandiListe: FikoYTVoidCallback[] = [];\n private onHataListe: FikoYTHataCallback[] = [];\n private onceCalistirListe: FikoYTVoidCallback[] = [];\n private onMesgulDegistiListe: FikoYTMesgulDegistiCallback[] = [];\n\n gecikmeliCevapSuresi?: number = 1000;\n gecikmeliCevap?: boolean = false;\n otoMesgul?: boolean = true;\n\n constructor(options?: IOptionsKok) {\n // this.CD = inject(ChangeDetectorRef);\n this.metod = options?.metod ?? 'POST';\n this.komut = options?.komut ?? '';\n this.onEkOlsun = options?.onEkOlsun ?? true;\n this.parametreler = options?.parametreler ?? {};\n this.tekrarSayisi = options?.tekrarSayisi ?? 0;\n this.tekrarBekleme = options?.tekrarBekleme ?? 300;\n this.oncelik = options?.oncelik ?? 0;\n this.gecikmeliCevapSuresi = options?.gecikmeliCevapSuresi ?? 1000;\n this.gecikmeliCevap = options?.gecikmeliCevap ?? false;\n this.otoMesgul = options?.otoMesgul ?? true;\n // this.depoModu = options?.depoModu ?? false;\n }\n\n /**\n * Genel static istek metodu - Constructor parametreleri ve callback'lerle\n * @param options Constructor seçenekleri + callback'ler\n */\n static request(\n options: IOptionsKok & {\n onCevap?: FikoYTCevapCallback;\n onHata?: FikoYTHataCallback;\n onIstekIlerleme?: FikoYTIlerlemeCallback;\n onCevapIlerleme?: FikoYTIlerlemeCallback;\n onTamamlandi?: FikoYTVoidCallback;\n onBaslatildi?: FikoYTVoidCallback;\n onOnceCevap?: FikoYTOnceCevapCallback;\n onMesgulDegisti?: FikoYTMesgulDegistiCallback;\n oncesindeCalistir?: FikoYTVoidCallback;\n }\n ): FikoYTIstekKok {\n const { \n onCevap, \n onHata, \n onIstekIlerleme, \n onCevapIlerleme,\n onTamamlandi, \n onBaslatildi,\n onOnceCevap,\n onMesgulDegisti,\n oncesindeCalistir,\n ...constructorOptions \n } = options;\n \n const instance = new FikoYTIstekKok(constructorOptions);\n \n // Callback'leri ekle\n if (onCevap) instance.onCevap(onCevap);\n if (onHata) instance.onHata(onHata);\n if (onIstekIlerleme) instance.onIstekIlerleme(onIstekIlerleme);\n if (onCevapIlerleme) instance.onCevapIlerleme(onCevapIlerleme);\n if (onTamamlandi) instance.onTamamlandi(onTamamlandi);\n if (onBaslatildi) instance.onBaslatildi(onBaslatildi);\n if (onOnceCevap) instance.onOnceCevap(onOnceCevap);\n if (onMesgulDegisti) instance.onMesgulDegisti(onMesgulDegisti);\n if (oncesindeCalistir) instance.oncesindeCalistir(oncesindeCalistir);\n \n return instance;\n }\n\n static configure(options: { maxConcurrentRequests?: number }) {\n if (options.maxConcurrentRequests !== undefined) {\n FikoYTIstekKok.enFazlaEszamanliIstek = options.maxConcurrentRequests;\n }\n }\n\n static pause() {\n this.duraklatildi = true;\n }\n\n static resume() {\n this.duraklatildi = false;\n this.tryProcessQueue();\n }\n\n // static clearCache() {\n // this.ramDeposu.clear();\n // for (const key of Object.keys(localStorage)) {\n // if (key.startsWith(this.lokalDepoIsmiOnEki)) {\n // localStorage.removeItem(key);\n // }\n // }\n // }\n\n onBaslatildi(fn: FikoYTVoidCallback) { this.onBaslatildiListe.push(fn); return this; }\n onIstekIlerleme(fn: FikoYTIlerlemeCallback) { this.onIstekIlerlemeListe.push(fn); return this; }\n onCevapIlerleme(fn: FikoYTIlerlemeCallback) { this.onCevapIlerlemeListe.push(fn); return this; }\n onOnceCevap(fn: FikoYTOnceCevapCallback) { this.onOnceCevapListe.push(fn); return this; }\n onCevap(fn: FikoYTCevapCallback) { this.onCevapListe.push(fn); return this; }\n onTamamlandi(fn: FikoYTVoidCallback) { this.onTamamlandiListe.push(fn); return this; }\n onHata(fn: FikoYTHataCallback) { this.onHataListe.push(fn); return this; }\n oncesindeCalistir(fn: FikoYTVoidCallback) { this.onceCalistirListe.push(fn); return this; }\n onMesgulDegisti(fn: FikoYTMesgulDegistiCallback) { this.onMesgulDegistiListe.push(fn); return this; }\n\n iptal() {\n this.isCancelled = true;\n this.cancelSubject.next();\n }\n\n /**\n * İstek başlatma.\n * @param kuyrugaEkle true ise kuyrukta bekle, false ise hemen başlat\n */\n iste(kuyrugaEkle: boolean = false): FikoYTIstekKok {\n if (this.mesgul) return this;\n\n if (kuyrugaEkle) {\n FikoYTIstekKok.kuyruk.push(new FikoYTQueueItem(this, this.oncelik));\n FikoYTIstekKok.kuyruk.sort((a, b) => b.oncelik - a.oncelik);\n FikoYTIstekKok.tryProcessQueue();\n } else {\n this.execute(() => { /* tamamlandı */ });\n }\n return this;\n }\n\n private static tryProcessQueue() {\n if (this.duraklatildi) return;\n if (this.aktifOlanlarinSayisi >= this.enFazlaEszamanliIstek) return;\n\n const nextItem = this.kuyruk.shift();\n if (!nextItem) return;\n\n this.aktifOlanlarinSayisi++;\n const engine = nextItem.engine;\n engine.execute(() => {\n this.aktifOlanlarinSayisi--;\n this.tryProcessQueue();\n\n // 🔁 Eğer isteSync çağrıldıysa resolve et\n if (engine._calistirResolve) {\n engine._calistirResolve(engine);\n engine._calistirResolve = undefined;\n }\n });\n }\n // private getCacheKey(): string {\n // return `${this.metod}:${this.komut}:${JSON.stringify(this.parametreler)}`;\n // }\n\n private async execute(onComplete: () => void) {\n if (this.isCancelled) return;\n\n // setTimeout(() => {\n if (this.otoMesgul == true)\n this.mesgul = true;\n this.onMesgulDegistiListe.forEach(fn => fn({ self: this, mesgul: this.mesgul }));\n // this.CD.detectChanges();\n // }, 0);\n\n this.onBaslatildiListe.forEach(fn => fn({ self: this }));\n this.onceCalistirListe.forEach(fn => fn({ self: this }));\n\n // const cacheKey = this.getCacheKey();\n\n // if (this.depoModu) {\n // const memoryHit = FikoYTIstekKok.ramDeposu.get(cacheKey);\n // const localHit = localStorage.getItem(FikoYTIstekKok.lokalDepoIsmiOnEki + cacheKey);\n // const parsedLocal = localHit ? JSON.parse(localHit) : null;\n\n // const result = memoryHit ?? parsedLocal;\n // if (result) {\n // const res = new FikoYTRequestResponse();\n // res.result = result;\n // res.type = 'CACHED';\n // this.onResult.forEach(fn => fn(this, res));\n // this.onDone.forEach(fn => fn(this));\n // this.isBusy$.next(false);\n // onComplete();\n // return;\n // }\n // }\n\n if (!FikoYTIstekKok.httpClient) {\n throw new Error('HttpClient statik olarak set edilmemiş! Kullanımdan önce mutlaka FikoYTIstekMakinesi.httpClient = ... atanmalı.');\n }\n if (!FikoYTIstekKok.Cihaz) {\n throw new Error('Cihaz Servisi statik olarak set edilmemiş! Kullanımdan önce mutlaka FikoYTIstekMakinesi.Cihaz = ... atanmalı.');\n }\n const headers = new HttpHeaders(\n {\n 'Access-Control-Allow-Origin': '*',\n \"Access-Control-Allow-Credentials\": \"true\",\n \"mode\": 'no-cors',\n \"uygulama\": FikoYTEnvIstemci.uygulamaIsmi,\n \"cihaz_kimlik\": FikoYTIstekKok.Cihaz.kimlik,\n \"cihaz_tipi\": FikoYTIstekKok.Cihaz.bilgiler?.deviceType ?? \"Web\",\n // @ts-ignore\n // \"cihaz_bilgi\": this.Cihaz.bilgiler.toJson(),\n });\n\n let url: string;\n if (this.onEkOlsun) {\n url = FikoYTEnvIstemci.adres.url + \":\" + FikoYTEnvIstemci.adres.fapiPort + '/fapiv1/' + `${FikoYTEnvIstemci.uygulamaIsmi}.` + this.komut;\n } else {\n url = FikoYTEnvIstemci.adres.url + \":\" + FikoYTEnvIstemci.adres.fapiPort + this.komut;\n }\n\n const req = new HttpRequest(this.metod, url, this.parametreler, {\n /** BİLGİ: İlerleme Durumu Hakkında Rapor Almak İçin */\n reportProgress: true,\n /** BİLGİ: Response Headerleri */\n headers: headers,\n /** BİLGİ: \n * Session Ve Cookie Yani Request Bilgileri İle İletim Yapmak İçin \n * Giriş Kontrolü Ve Aktif Kullanıcı İçin Gerekli (Flask.current_user)\n */\n withCredentials: true\n });\n\n\n this.cevap = {\n turu: IstekOlayTuru.Beklemede,\n cevapIlerleme: { tipi: \"DOWNLOAD\", toplam: 0, durum: 0, yuzde: 0 },\n istekIlerleme: { tipi: \"UPLOAD\", toplam: 0, durum: 0, yuzde: 0 },\n durum: { hata: false, hatalar: [], baslamaZamani: new Date(), bitisZamani: null, mesgul: true, tekrar: 0 },\n istek: { ismi: this.metod, parametreler: this.parametreler, },\n sonuc: undefined,\n\n ...this.cevap\n };\n\n // this.cevap.update((_val: IstekSonuc) => {\n\n // return _val;\n // })\n // post metodu olduğundan ve progress istendiğinden observe: 'events' kullanalım\n return await FikoYTIstekKok.httpClient.request(req).pipe(\n retryWhen(errors =>\n errors.pipe(\n mergeMap((error, index) => {\n return index < this.tekrarSayisi ? timer(this.tekrarBekleme) : throwError(() => error);\n }\n )\n )\n ),\n catchError(err => {\n const parsed = this.parseError(err);\n this.onHataListe.forEach(fn => fn({ self: this, hatalar: parsed }));\n return throwError(() => err);\n })\n ).subscribe({\n next: async (event: HttpEvent) => {\n if (event.type === HttpEventType.UploadProgress) {\n // Progress yüzdesi\n if (event.total) {\n // const progress = Math.round(100 * event.loaded / event.total);\n // const res = new FikoYTRequestResponse();\n // res.progress = progress;\n // this.cevap.update((_val: IstekSonuc) => {\n this.cevap.turu = IstekOlayTuru.IlerlemeIstek;\n this.cevap.istekIlerleme = { tipi: \"UPLOAD\", toplam: event.total ?? 0, durum: event.loaded, yuzde: Math.round(100 * event.loaded / (event.total ?? 0)) };\n // return _val;\n // })\n this.onIstekIlerlemeListe.forEach(fn => fn({ self: this, ilerleme: this.cevap.istekIlerleme }));\n }\n }\n if (event.type === HttpEventType.DownloadProgress) {\n // Progress yüzdesi\n if (event.total) {\n // const progress = Math.round(100 * event.loaded / event.total);\n // const res = new FikoYTRequestResponse();\n // res.progress = progress;\n // this.onCevapIlerlemeListe.forEach(fn => fn(this, res));\n // this.cevap.update((_val: IstekSonuc) => {\n this.cevap.turu = IstekOlayTuru.IlerlemeCevap;\n this.cevap.cevapIlerleme = { tipi: \"UPLOAD\", toplam: event.total ?? 0, durum: event.loaded, yuzde: Math.round(100 * event.loaded / (event.total ?? 0)) };\n // return _val;\n // })\n this.onCevapIlerlemeListe.forEach(fn => fn({ self: this, ilerleme: this.cevap.cevapIlerleme }));\n }\n } else if (event.type === HttpEventType.Sent) {\n\n // this.cevap.update((_val: IstekSonuc) => {\n this.cevap.turu = IstekOlayTuru.Istendi;\n this.cevap.cevapIlerleme = { tipi: \"UPLOAD\", toplam: 100, durum: 100, yuzde: 100 };\n // return _val;\n // })\n\n }\n else if (event.type === HttpEventType.Response) {\n // this.cevap.update((_val: IstekSonuc) => {\n this.cevap.turu = IstekOlayTuru.Cevaplandi;\n this.cevap.cevapIlerleme = { tipi: \"DOWNLOAD\", toplam: 100, durum: 100, yuzde: 100 };\n this.cevap.istekIlerleme = { tipi: \"UPLOAD\", toplam: 100, durum: 100, yuzde: 100 };\n\n // return _val;\n // })\n // const response = new FikoYTRequestResponse();\n // response.result = event.body?.sonuc ?? event.body;\n // response.type = 'NETWORK';\n // response.endTime = new Date();\n // delete response.progress;\n\n // if (this.depoModu) {\n // FikoYTIstekKok.ramDeposu.set(cacheKey, response.result);\n // localStorage.setItem(\n // FikoYTIstekKok.lokalDepoIsmiOnEki + cacheKey,\n // JSON.stringify(response.result)\n // );\n // }\n // console.log(event.body);\n /** */\n if (event.body?.durum?.hata == true) {\n const parsed = this.parseError(event.body?.durum?.hatalar);\n // this.cevap.update((_val: IstekSonuc) => {\n this.cevap.turu = IstekOlayTuru.IptalEdildi;\n this.cevap.cevapIlerleme = { tipi: \"DOWNLOAD\", toplam: 100, durum: 100, yuzde: 100 };\n this.cevap.sonuc = event.body?.sonuc;\n // _val.durum = { hata: true, hatalar: parsed };\n this.cevap.durum!.hata = true;\n this.cevap.durum!.hatalar = parsed;\n\n\n // return _val;\n // })\n\n\n this.onHataListe.forEach(fn => fn({ self: this, hatalar: parsed }));\n throwError(() => parsed);\n }\n\n /** */\n\n // this.cevap.update((_val: IstekSonuc) => {\n this.cevap.turu = IstekOlayTuru.Cevaplandi;\n this.cevap.cevapIlerleme = { tipi: \"DOWNLOAD\", toplam: 100, durum: 100, yuzde: 100 };\n // this.cevap.sonuc = event.body?.sonuc ?? event.body\n\n // setTimeout(() => {\n this.onMesgulDegistiListe.forEach(fn => fn({ self: this, mesgul: this.mesgul }));\n // }, 0);\n // return _val;\n // })\n let sonuc = event.body?.sonuc;\n // console.log(sonuc, event.body?.sonuc?.sonuc, event.body);\n await this.onOnceCevapListe.forEach(async fn => sonuc = await (fn({ self: this, sonuc: sonuc }))) ?? sonuc;\n this.cevap.sonuc = sonuc\n this.onCevapListe.forEach(fn => fn({ self: this, sonuc: sonuc }));\n\n // setTimeout(() => {\n this.onMesgulDegistiListe.forEach(fn => fn({ self: this, mesgul: this.mesgul }));\n // }, 0);\n }\n },\n // error: (err) => {\n // console.log(\"Hataaa\", err);\n\n // },\n // error: (err) => { \n\n // },\n complete: async () => {\n\n\n if (this.gecikmeliCevap) {\n await new Promise(resolve => setTimeout(resolve, this.gecikmeliCevapSuresi));\n }\n // this.cevap.update((_val: IstekSonuc) => {\n this.cevap.turu = IstekOlayTuru.Tamamlandi;\n this.cevap.durum!.mesgul = false;\n this.cevap.durum!.bitisZamani = new Date();\n\n // return _val;\n // })\n\n // setTimeout(() => {\n if (this.otoMesgul == true)\n this.mesgul = false;\n this.onMesgulDegistiListe.forEach(fn => fn({ self: this, mesgul: this.mesgul }));\n // this.CD.detectChanges();\n // }, 0);\n this.onTamamlandiListe.forEach(fn => fn({ self: this }));\n onComplete();\n\n\n }\n });\n }\n\n private _calistirResolve?: (self: this) => void;\n\n /**\n * Kuyruğa ekler ve await ile sonucu bekler.\n * İstek tamamlandığında bu nesnenin kendisini döndürür.\n */\n async isteSync(): Promise {\n return new Promise(async (resolve) => {\n // this._calistirResolve = resolve;\n // FikoYTIstekKok.kuyruk.push(new FikoYTQueueItem(this, this.oncelik));\n // FikoYTIstekKok.kuyruk.sort((a, b) => b.oncelik - a.oncelik);\n // FikoYTIstekKok.tryProcessQueue();\n\n await this.execute(() => { resolve(this); });\n\n });\n }\n\n\n private parseError(err: HttpErrorResponse | FikoHatalar | FikoHata | any): FikoHatalar {\n const errors: FikoHatalar = [];\n const data = err;\n\n\n if (Array.isArray(err)) {\n for (const item of data) {\n errors.push({ ...item, baslik: item.baslik ?? 'Hata', mesaj: item.mesaj ?? 'Bir hata oluştu' });\n }\n } else if (typeof data === 'object' && data !== null) {\n errors.push({ ...data, baslik: data.baslik ?? 'Hata', mesaj: data.mesaj ?? 'Bir hata oluştu' });\n } else {\n errors.push({ baslik: 'Bilinmeyen Hata', mesaj: err.message ?? 'Bir hata oluştu' });\n }\n\n return errors;\n }\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { FikoFloatingToolbarComponent } from './fiko-floating-toolbar.component';\r\n\r\n/**\r\n * 🎯 FikoFloatingToolbarService\r\n *\r\n * Birden fazla floating toolbar instance'ını yönetmek için servis\r\n *\r\n * Özellikler:\r\n * - ✅ Instance registry - Tüm toolbar'ları takip et\r\n * - ✅ Show/Hide all - Toplu görünürlük kontrolü\r\n * - ✅ Find by ID - ID ile toolbar bul\r\n * - ✅ Position management - Pozisyon kaydetme/yükleme\r\n * - ✅ State persistence - localStorage ile durum saklama\r\n * - ✅ Observable updates - Reactive updates\r\n *\r\n * Kullanım:\r\n * ```typescript\r\n * constructor(private toolbarService: FikoFloatingToolbarService) {}\r\n *\r\n * // Toolbar kaydet\r\n * this.toolbarService.kaydet('mainTools', this.toolbarRef);\r\n *\r\n * // ID ile bul\r\n * const toolbar = this.toolbarService.bul('mainTools');\r\n * toolbar?.ac();\r\n *\r\n * // Tümünü gizle\r\n * this.toolbarService.tumunuGizle();\r\n * ```\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FikoFloatingToolbarService {\r\n\r\n /** Toolbar registry - ID ile instance map */\r\n private toolbars: Map = new Map();\r\n\r\n /** Toolbar durumları - Observable */\r\n private toolbarStates$ = new BehaviorSubject>(new Map());\r\n\r\n /** LocalStorage key prefix */\r\n private readonly STORAGE_PREFIX = 'fikoyt_toolbar_';\r\n\r\n /** Z-index yönetimi - Global tüm toolbarlar için */\r\n private readonly TEMEL_Z_INDEX = 1000;\r\n private readonly Z_INDEX_ARTIS = 1; // Her tıklamada 1 artır\r\n private mevcutZIndex = this.TEMEL_Z_INDEX;\r\n private toolbarZIndices: Map = new Map();\r\n\r\n /** Z-index sıralama - En üstteki toolbar'ı takip et */\r\n private zIndexSirasi: FikoFloatingToolbarComponent[] = [];\r\n\r\n constructor() {\r\n // Sayfa yüklendiğinde kaydedilmiş pozisyonları yükle\r\n this.yukleKaydedilmisPozisyonlar();\r\n }\r\n\r\n /**\r\n * Toolbar instance'ı kaydet\r\n */\r\n kaydet(id: string, toolbar: FikoFloatingToolbarComponent): void {\r\n this.toolbars.set(id, toolbar);\r\n\r\n // Z-index ata (yeni açılan toolbar en üstte)\r\n const yeniZIndex = this.toolbarAcildi(toolbar);\r\n toolbar.zIndex = yeniZIndex;\r\n\r\n // State güncelle\r\n const states = this.toolbarStates$.value;\r\n states.set(id, {\r\n id,\r\n gorunur: toolbar.gorunur,\r\n minimize: toolbar.minimize,\r\n pozisyon: toolbar.pozisyonAl()\r\n });\r\n this.toolbarStates$.next(states);\r\n\r\n // Kaydedilmiş pozisyon varsa uygula\r\n const kaydedilmis = this.pozisyonYukle(id);\r\n if (kaydedilmis?.pozisyon) {\r\n setTimeout(() => {\r\n toolbar.pozisyonAyarla(kaydedilmis.pozisyon!);\r\n }, 200);\r\n }\r\n }\r\n\r\n /**\r\n * Toolbar instance'ı sil\r\n */\r\n sil(id: string): void {\r\n this.toolbars.delete(id);\r\n\r\n const states = this.toolbarStates$.value;\r\n states.delete(id);\r\n this.toolbarStates$.next(states);\r\n }\r\n\r\n /**\r\n * ID ile toolbar bul\r\n */\r\n bul(id: string): FikoFloatingToolbarComponent | undefined {\r\n return this.toolbars.get(id);\r\n }\r\n\r\n /**\r\n * Tüm toolbar'ları al\r\n */\r\n tumunuAl(): FikoFloatingToolbarComponent[] {\r\n return Array.from(this.toolbars.values());\r\n }\r\n\r\n /**\r\n * Tüm toolbar ID'lerini al\r\n */\r\n tumIdleriAl(): string[] {\r\n return Array.from(this.toolbars.keys());\r\n }\r\n\r\n /**\r\n * Toolbar var mı kontrol et\r\n */\r\n varMi(id: string): boolean {\r\n return this.toolbars.has(id);\r\n }\r\n\r\n /**\r\n * Tüm toolbar'ları göster\r\n */\r\n tumunuGoster(): void {\r\n this.toolbars.forEach(toolbar => {\r\n if (!toolbar.miAcik) {\r\n toolbar.ac();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Tüm toolbar'ları gizle\r\n */\r\n tumunuGizle(): void {\r\n this.toolbars.forEach(toolbar => {\r\n if (toolbar.miAcik) {\r\n toolbar.kapa();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Belirli bir toolbar'ı göster\r\n */\r\n goster(id: string): void {\r\n const toolbar = this.bul(id);\r\n if (toolbar && !toolbar.miAcik) {\r\n toolbar.ac();\r\n }\r\n }\r\n\r\n /**\r\n * Belirli bir toolbar'ı gizle\r\n */\r\n gizle(id: string): void {\r\n const toolbar = this.bul(id);\r\n if (toolbar && toolbar.miAcik) {\r\n toolbar.kapa();\r\n }\r\n }\r\n\r\n /**\r\n * Toolbar görünürlüğünü toggle et\r\n */\r\n toggle(id: string): void {\r\n const toolbar = this.bul(id);\r\n if (toolbar) {\r\n toolbar.toggle();\r\n }\r\n }\r\n\r\n /**\r\n * Toolbar'ları cascade düzenle (birbiri üzerine gelmesin)\r\n */\r\n cascadeDuzenle(baslangicX: number = 50, baslangicY: number = 50, offset: number = 30): void {\r\n let currentX = baslangicX;\r\n let currentY = baslangicY;\r\n\r\n this.toolbars.forEach(toolbar => {\r\n toolbar.pozisyonAyarla({ top: currentY, left: currentX });\r\n currentX += offset;\r\n currentY += offset;\r\n });\r\n }\r\n\r\n /**\r\n * Toolbar'ları grid düzenle\r\n */\r\n gridDuzenle(columns: number = 3, baslangicX: number = 50, baslangicY: number = 50, gapX: number = 220, gapY: number = 60): void {\r\n let index = 0;\r\n this.toolbars.forEach(toolbar => {\r\n const row = Math.floor(index / columns);\r\n const col = index % columns;\r\n\r\n toolbar.pozisyonAyarla({\r\n top: baslangicY + (row * gapY),\r\n left: baslangicX + (col * gapX)\r\n });\r\n\r\n index++;\r\n });\r\n }\r\n\r\n /**\r\n * Tüm toolbar'ları merkeze hizala\r\n */\r\n tumunuOrtala(): void {\r\n this.toolbars.forEach(toolbar => {\r\n toolbar.ortala();\r\n });\r\n }\r\n\r\n /**\r\n * Toolbar durumlarını Observable olarak al\r\n */\r\n durumlar$(): Observable> {\r\n return this.toolbarStates$.asObservable();\r\n }\r\n\r\n /**\r\n * Toolbar pozisyonunu localStorage'a kaydet\r\n */\r\n pozisyonKaydet(id: string): void {\r\n const toolbar = this.bul(id);\r\n if (toolbar) {\r\n const state: ToolbarState = {\r\n id,\r\n gorunur: toolbar.miAcik,\r\n minimize: toolbar.minimize,\r\n pozisyon: toolbar.pozisyonAl()\r\n };\r\n\r\n localStorage.setItem(\r\n this.STORAGE_PREFIX + id,\r\n JSON.stringify(state)\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Toolbar pozisyonunu localStorage'dan yükle\r\n */\r\n pozisyonYukle(id: string): ToolbarState | null {\r\n const stored = localStorage.getItem(this.STORAGE_PREFIX + id);\r\n if (stored) {\r\n try {\r\n return JSON.parse(stored);\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Tüm toolbar pozisyonlarını kaydet\r\n */\r\n tumPozisyonlariKaydet(): void {\r\n this.toolbars.forEach((toolbar, id) => {\r\n this.pozisyonKaydet(id);\r\n });\r\n }\r\n\r\n /**\r\n * Kaydedilmiş pozisyonları yükle\r\n */\r\n private yukleKaydedilmisPozisyonlar(): void {\r\n // LocalStorage'daki tüm toolbar kayıtlarını bul\r\n const keys = Object.keys(localStorage).filter(key =>\r\n key.startsWith(this.STORAGE_PREFIX)\r\n );\r\n\r\n keys.forEach(key => {\r\n const id = key.replace(this.STORAGE_PREFIX, '');\r\n const state = this.pozisyonYukle(id);\r\n\r\n if (state) {\r\n const states = this.toolbarStates$.value;\r\n states.set(id, state);\r\n this.toolbarStates$.next(states);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Tüm kaydedilmiş pozisyonları temizle\r\n */\r\n tumKayitlariTemizle(): void {\r\n const keys = Object.keys(localStorage).filter(key =>\r\n key.startsWith(this.STORAGE_PREFIX)\r\n );\r\n\r\n keys.forEach(key => localStorage.removeItem(key));\r\n }\r\n\r\n /**\r\n * Belirli bir toolbar kaydını sil\r\n */\r\n kayitSil(id: string): void {\r\n localStorage.removeItem(this.STORAGE_PREFIX + id);\r\n }\r\n\r\n /**\r\n * İstatistikler\r\n */\r\n istatistikler(): ToolbarStatistics {\r\n const toolbars = this.tumunuAl();\r\n return {\r\n toplam: toolbars.length,\r\n gorunur: toolbars.filter(t => t.miAcik).length,\r\n gizli: toolbars.filter(t => !t.miAcik).length,\r\n minimize: toolbars.filter(t => t.minimize).length\r\n };\r\n }\r\n\r\n /**\r\n * Tüm toolbar'ları kapat ve temizle\r\n */\r\n tumunuKapat(): void {\r\n this.toolbars.forEach(toolbar => {\r\n toolbar.ngOnDestroy();\r\n });\r\n this.toolbars.clear();\r\n this.toolbarStates$.next(new Map());\r\n this.toolbarZIndices.clear();\r\n }\r\n\r\n /**\r\n * 🎯 Toolbar açıldığında z-index ata\r\n * Global z-index yönetimi - Her yeni toolbar en üstte açılır\r\n */\r\n toolbarAcildi(toolbar: FikoFloatingToolbarComponent): number {\r\n // Mevcut z-index'i artır\r\n this.mevcutZIndex += this.Z_INDEX_ARTIS;\r\n const yeniZIndex = this.mevcutZIndex;\r\n\r\n // Toolbar'ı z-index map'ine ekle\r\n this.toolbarZIndices.set(toolbar, yeniZIndex);\r\n\r\n // Sıralama listesine ekle (en sonda = en üstte)\r\n this.zIndexSirasi = this.zIndexSirasi.filter(t => t !== toolbar); // Önce kaldır\r\n this.zIndexSirasi.push(toolbar); // Sonra en sona ekle\r\n\r\n return yeniZIndex;\r\n }\r\n\r\n /**\r\n * 🎯 Toolbar tıklandığında z-index güncelle (öne getir)\r\n * Click-to-front: Tıklanan toolbar en üste gelir\r\n */\r\n toolbarTiklandi(toolbar: FikoFloatingToolbarComponent): number {\r\n const mevcutZIndex = this.toolbarZIndices.get(toolbar);\r\n\r\n // Eğer zaten en üstteyse, z-index'i artırma (gereksiz)\r\n if (this.zIndexSirasi.length > 0 && this.zIndexSirasi[this.zIndexSirasi.length - 1] === toolbar) {\r\n return mevcutZIndex || this.mevcutZIndex;\r\n }\r\n\r\n // Toolbar henüz kayıtlı değilse, yeni z-index ata\r\n if (!mevcutZIndex) {\r\n return this.toolbarAcildi(toolbar);\r\n }\r\n\r\n // Yeni z-index hesapla ve güncelle\r\n this.mevcutZIndex += this.Z_INDEX_ARTIS;\r\n const yeniZIndex = this.mevcutZIndex;\r\n this.toolbarZIndices.set(toolbar, yeniZIndex);\r\n\r\n // Sıralama listesini güncelle (tıklanan toolbar en sona)\r\n this.zIndexSirasi = this.zIndexSirasi.filter(t => t !== toolbar);\r\n this.zIndexSirasi.push(toolbar);\r\n\r\n return yeniZIndex;\r\n }\r\n\r\n /**\r\n * 🎯 Toolbar kapandığında z-index temizle\r\n */\r\n toolbarKapandi(toolbar: FikoFloatingToolbarComponent): void {\r\n this.toolbarZIndices.delete(toolbar);\r\n this.zIndexSirasi = this.zIndexSirasi.filter(t => t !== toolbar);\r\n }\r\n\r\n /**\r\n * 🎯 En üstteki toolbar'ı al\r\n */\r\n enUsttekiToolbar(): FikoFloatingToolbarComponent | null {\r\n return this.zIndexSirasi.length > 0 ? this.zIndexSirasi[this.zIndexSirasi.length - 1] : null;\r\n }\r\n\r\n /**\r\n * 🎯 Toolbar'ın z-index sıralamasını al (0 = en altta, N-1 = en üstte)\r\n */\r\n toolbarSirasi(toolbar: FikoFloatingToolbarComponent): number {\r\n return this.zIndexSirasi.indexOf(toolbar);\r\n }\r\n\r\n /**\r\n * 🎯 Mevcut en yüksek z-index'i al\r\n */\r\n maxZIndex(): number {\r\n return this.mevcutZIndex;\r\n }\r\n\r\n /**\r\n * 🎯 Tüm z-index'leri sıfırla (reset)\r\n */\r\n zIndexSifirla(): void {\r\n this.mevcutZIndex = this.TEMEL_Z_INDEX;\r\n this.toolbarZIndices.clear();\r\n this.zIndexSirasi = [];\r\n\r\n // Tüm toolbar'ları yeniden indexle\r\n let index = this.TEMEL_Z_INDEX;\r\n this.toolbars.forEach(toolbar => {\r\n index += this.Z_INDEX_ARTIS;\r\n toolbar.zIndex = index;\r\n this.toolbarZIndices.set(toolbar, index);\r\n this.zIndexSirasi.push(toolbar);\r\n });\r\n\r\n this.mevcutZIndex = index;\r\n }\r\n}\r\n\r\n/**\r\n * Toolbar durumu interface\r\n */\r\nexport interface ToolbarState {\r\n id: string;\r\n gorunur: boolean;\r\n minimize: boolean;\r\n pozisyon?: { top: number; left: number };\r\n}\r\n\r\n/**\r\n * İstatistik interface\r\n */\r\nexport interface ToolbarStatistics {\r\n toplam: number;\r\n gorunur: number;\r\n gizli: number;\r\n minimize: number;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\nexport interface SeriPortBilgisi {\r\n port: any; // SerialPort\r\n bilgi: any; // SerialPortInfo\r\n etiket: string;\r\n}\r\n\r\nexport type SeriPortDurum = 'bagli-degil' | 'baglaniyor' | 'bagli' | 'hata';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SeriPortService {\r\n readonly destekleniyor = 'serial' in navigator;\r\n\r\n readonly durum$ = new BehaviorSubject('bagli-degil');\r\n readonly veriGeldi$ = new Subject();\r\n readonly hataMesaji$ = new BehaviorSubject('');\r\n\r\n private _port: any = null; // SerialPort\r\n private _reader: ReadableStreamDefaultReader | null = null;\r\n private _readableStreamClosed: Promise | null = null;\r\n private _okumaAktif = false;\r\n private _tampon = '';\r\n\r\n get aktifPort(): any { return this._port; }\r\n get bagli(): boolean { return this.durum$.value === 'bagli'; }\r\n\r\n /** Daha once izin verilmis portlari listele */\r\n async portlariListele(): Promise {\r\n if (!this.destekleniyor) return [];\r\n try {\r\n const portlar = await (navigator as any).serial.getPorts();\r\n return portlar.map((port: any, i: number) => {\r\n const bilgi = port.getInfo();\r\n return {\r\n port,\r\n bilgi,\r\n etiket: this.portEtiketi(bilgi, i),\r\n };\r\n });\r\n } catch (_) { return []; }\r\n }\r\n\r\n /** Kullanicidan yeni port sec (user gesture gerektirir) */\r\n async portIste(filtreler?: any[]): Promise {\r\n if (!this.destekleniyor) return null;\r\n try {\r\n const port = await (navigator as any).serial.requestPort({\r\n filters: filtreler || [],\r\n });\r\n const bilgi = port.getInfo();\r\n return { port, bilgi, etiket: this.portEtiketi(bilgi, 0) };\r\n } catch (_) {\r\n return null; // Kullanici iptal etti\r\n }\r\n }\r\n\r\n /** Porta baglan ve okumaya basla */\r\n async baglan(port: any, baudRate = 9600): Promise {\r\n if (this._port) await this.kopar();\r\n\r\n this.durum$.next('baglaniyor');\r\n this.hataMesaji$.next('');\r\n\r\n try {\r\n // Port zaten aciksa (onceki session'dan kalmis olabilir) once kapat\r\n if (port.readable || port.writable) {\r\n try { await port.close(); } catch (_) {}\r\n // Kapanmasi icin kisa bekle\r\n await new Promise(r => setTimeout(r, 200));\r\n }\r\n await port.open({ baudRate, dataBits: 8, stopBits: 1, parity: 'none', bufferSize: 4096 });\r\n this._port = port;\r\n this.durum$.next('bagli');\r\n this.okuBasla();\r\n return true;\r\n } catch (e: any) {\r\n const msg = e?.message || 'Bağlantı hatası';\r\n // Baska uygulama kullaniyorsa kullaniciya bildir\r\n const ipucu = msg.toLowerCase().includes('failed to open')\r\n ? msg + ' — Port baska bir uygulama tarafindan kullaniliyor olabilir (Arduino IDE, PuTTY vb.). Diger uygulamalari kapatin.'\r\n : msg;\r\n this.hataMesaji$.next(ipucu);\r\n this.durum$.next('hata');\r\n return false;\r\n }\r\n }\r\n\r\n /** Baglantıyı kopar */\r\n async kopar(): Promise {\r\n this._okumaAktif = false;\r\n\r\n // 1) Reader'i iptal et — bu pipeTo'nun da bitmesini saglar\r\n if (this._reader) {\r\n try {\r\n await this._reader.cancel();\r\n } catch (_) {}\r\n try {\r\n this._reader.releaseLock();\r\n } catch (_) {}\r\n this._reader = null;\r\n }\r\n\r\n // 2) pipeTo promise'inin bitmesini bekle (stream kilidini birakmasi icin)\r\n if (this._readableStreamClosed) {\r\n try {\r\n await this._readableStreamClosed;\r\n } catch (_) {}\r\n this._readableStreamClosed = null;\r\n }\r\n\r\n // 3) Port'u kapat\r\n if (this._port) {\r\n try {\r\n await this._port.close();\r\n } catch (_) {}\r\n }\r\n\r\n this._port = null;\r\n this._tampon = '';\r\n this.durum$.next('bagli-degil');\r\n }\r\n\r\n /** Porta veri yaz */\r\n async yaz(veri: string): Promise {\r\n if (!this._port?.writable) return false;\r\n try {\r\n const encoder = new TextEncoder();\r\n const writer = this._port.writable.getWriter();\r\n await writer.write(encoder.encode(veri));\r\n writer.releaseLock();\r\n return true;\r\n } catch (_) { return false; }\r\n }\r\n\r\n /** Seri porttan surekli oku */\r\n private async okuBasla() {\r\n if (!this._port?.readable) return;\r\n this._okumaAktif = true;\r\n\r\n const decoder = new TextDecoderStream();\r\n this._readableStreamClosed = this._port.readable.pipeTo(decoder.writable);\r\n this._reader = decoder.readable.getReader();\r\n\r\n try {\r\n while (this._okumaAktif) {\r\n const { value, done } = await this._reader.read();\r\n if (done) break;\r\n if (value) this.veriIsle(value);\r\n }\r\n } catch (e: any) {\r\n if (this._okumaAktif) {\r\n this.hataMesaji$.next(e?.message || 'Okuma hatası');\r\n this.durum$.next('hata');\r\n }\r\n } finally {\r\n try { this._reader?.releaseLock(); } catch (_) {}\r\n this._reader = null;\r\n if (this._readableStreamClosed) {\r\n try { await this._readableStreamClosed; } catch (_) {}\r\n this._readableStreamClosed = null;\r\n }\r\n }\r\n }\r\n\r\n /** Gelen veriyi satir satir isle */\r\n private veriIsle(chunk: string) {\r\n this._tampon += chunk;\r\n const satirlar = this._tampon.split('\\n');\r\n // Son parca henuz tamamlanmamis olabilir\r\n this._tampon = satirlar.pop() || '';\r\n\r\n for (const satir of satirlar) {\r\n const temiz = satir.trim();\r\n if (temiz.length > 0) {\r\n this.veriGeldi$.next(temiz);\r\n }\r\n }\r\n }\r\n\r\n /** Port etiketi olustur */\r\n private portEtiketi(bilgi: any, index: number): string {\r\n const vid = bilgi.usbVendorId;\r\n const pid = bilgi.usbProductId;\r\n if (vid && pid) {\r\n // NodeMCU / ESP8266 genellikle CP2102 veya CH340\r\n const chip = this.chipTani(vid, pid);\r\n return chip ? `${chip} (${vid.toString(16)}:${pid.toString(16)})` : `USB ${vid.toString(16)}:${pid.toString(16)}`;\r\n }\r\n return `Seri Port ${index + 1}`;\r\n }\r\n\r\n /** Bilinen USB-Serial chipleri tani */\r\n private chipTani(vid: number, pid: number): string {\r\n // CP210x (Silicon Labs) - NodeMCU v1\r\n if (vid === 0x10C4 && pid === 0xEA60) return 'CP2102 (NodeMCU)';\r\n // CH340 - NodeMCU v3 / klonlar\r\n if (vid === 0x1A86 && pid === 0x7523) return 'CH340 (NodeMCU)';\r\n // CH9102\r\n if (vid === 0x1A86 && pid === 0x55D4) return 'CH9102 (NodeMCU)';\r\n // FTDI FT232\r\n if (vid === 0x0403 && pid === 0x6001) return 'FT232 (FTDI)';\r\n // Arduino\r\n if (vid === 0x2341) return 'Arduino';\r\n // ESP32-S2/S3 native USB\r\n if (vid === 0x303A) return 'ESP32';\r\n return '';\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, map, mergeMap } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FikoYTArayuz {\n guncelle: EventEmitter = new EventEmitter();\n altBaslik = {\n ismi: \"baslik\",\n turu: \"Yazı\",\n degeri: \"FikoYT\",\n ayarlar: {\n solSimge: \"🏡\"\n }\n };\n\n constructor(public readonly router: Router,\n public readonly activatedRoute: ActivatedRoute,\n public readonly title: Title,\n ) {\n this.initBaslikTakip();\n }\n\n async initBaslikTakip() {\n // if (isPlatformBrowser(inject(PLATFORM_ID))) {\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd), // Only get the event of NavigationEnd\n map(() => this.activatedRoute), // Listen to activateRoute\n map(route => {\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n }),\n filter(route => route.outlet === 'primary'),\n mergeMap(route => route.data) // get the data\n ).subscribe((p) => {\n\n this.altBaslik.degeri = p['baslik'] ?? \"FikoYT\";\n this.altBaslik.ayarlar!.solSimge = p['simge'] ?? \"🏠\";\n // console.log(this.altBaslik);\n\n })\n // }\n }\n}\n","import { ChangeDetectorRef, EventEmitter, Injectable, inject } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FikoYTEnvIstemci } from './Environment/environment';\nimport { FikoYTArayuz } from './fikoyt.arayuz.service';\nimport { CihazKimlikService } from './fikoyt.cihaz-kimlik.service';\nimport { FikoYTIstekService, IstekOlayTuru } from './fikoyt.istek.service';\nimport { SocketFikoYT } from './fikoyt.socket.service';\nimport { FikoDexieDatabase } from './modules/fikoyt-dexie/fiko-dexie.database';\nimport { KimlikService } from './kimlik.service';\nimport { HttpClient } from '@angular/common/http';\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\nimport { FikoYTIstekKok } from './modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service';\nimport { FikoFloatingToolbarService } from './fikoyt-ui/src/lib/fiko-three-js/IFikoThreeJS/fiko-floating-toolbar/fiko-floating-toolbar.service';\nimport { SeriPortService } from './fikoyt.seri-port.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FikoYTService {\n env = FikoYTEnvIstemci;\n fapiUrl: string = FikoYTEnvIstemci.adres.url + ':' + FikoYTEnvIstemci.adres.fapiPort;\n /** */\n parametreler: { [key: string]: any } | any = {\n \"altBaslik\": {\n ismi: \"baslik\",\n turu: \"Yazı\",\n degeri: \"FikoYT\",\n ayarlar: {\n solSimge: \"🏡\"\n }\n },\n \"Ana Sayfa Aktif Medya\": {\n ismi: \"baslik\",\n turu: \"Kimlik\",\n degeri: null,\n },\n language: this.env.languages[0],\n }\n\n /** */\n degisti: EventEmitter = new EventEmitter();\n\n /** */\n public readonly ayarlar: FikoDexieDatabase = new FikoDexieDatabase(\"FikoYT-Sistem\", [\"Sistem\", \"Ayarlar\"], \"Sistem\");\n\n public kimlik: KimlikService;\n public io: SocketFikoYT;\n public toolbarService: FikoFloatingToolbarService;\n public seriPort: SeriPortService;\n\n constructor(public readonly router: Router,\n public readonly http: HttpClient,\n public readonly activatedRoute: ActivatedRoute,\n public readonly baslik: Title,\n public readonly arayuz: FikoYTArayuz,\n\n public readonly cihaz: CihazKimlikService,\n public readonly istekler: FikoYTIstekService,\n public readonly nzNotification: NzNotificationService,\n ) {\n /** */\n FikoYTIstekKok.httpClient = this.http;\n FikoYTIstekKok.Cihaz = this.cihaz;\n /** */\n this.kimlik = new KimlikService(this);\n this.io = new SocketFikoYT(this);\n this.toolbarService = inject(FikoFloatingToolbarService);\n this.seriPort = inject(SeriPortService);\n\n // setTimeout(() => {\n\n this.istekler.fapisteV1('POST', 'FikoYT.sistem.aktif-kullanici.bilgi').subscribe((snc: any) => {\n if (snc.turu == IstekOlayTuru.Cevaplandi) {\n this.io.off(\"FikoYT.sistem.cihaz.bağlandı.toplamlar\");\n if (snc?.sonuc?.body?.durum?.hata != true) {\n // console.log(snc);\n this.kimlik.aktifKullaniciJson.set(snc?.sonuc?.body?.sonuc);\n this.io.fromEvent(\"FikoYT.sistem.cihaz.bağlandı.toplamlar\").subscribe(async (data: any) => {\n // console.log(data);\n this.kimlik.cihazlar.set(data[0]);\n })\n\n this.io.kop();\n this.io.baglan();\n } else {\n this.io.kop();\n this.io.baglan();\n }\n // this.io.baglan();\n }\n })\n }\n // , 0)\n\n\n // this.io.baglan();\n\n\n // }\n\n public fikoIdUret(): string {\n // tslint:disable-next-line:no-bitwise\n const timestamp = (new Date().getTime() / 1000 | 0).toString(16);\n return timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => {\n // tslint:disable-next-line:no-bitwise\n return (Math.random() * 16 | 0).toString(16);\n }).toLowerCase();\n }\n\n\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NzI18nService, tr_TR, en_US, zh_CN, ar_EG } from 'ng-zorro-antd/i18n';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nexport interface Language {\n code: string;\n name: string;\n nzLocale: any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n private readonly STORAGE_KEY = 'app_language';\n\n private currentLanguageSubject = new BehaviorSubject('tr');\n public currentLanguage$: Observable = this.currentLanguageSubject.asObservable();\n\n public availableLanguages: Language[] = [\n { code: 'tr', name: 'Türkçe', nzLocale: tr_TR },\n { code: 'en', name: 'English', nzLocale: en_US },\n { code: 'zh', name: '中文', nzLocale: zh_CN },\n { code: 'ar', name: 'العربية', nzLocale: ar_EG }\n ];\n\n constructor(\n private translate: TranslateService,\n private nzI18nService: NzI18nService\n ) {\n this.initLanguage();\n }\n\n /**\n * Başlangıç dilini ayarla\n */\n private initLanguage(): void {\n const savedLang = this.getSavedLanguage();\n const browserLang = this.translate.getBrowserLang();\n\n // Öncelik: Kaydedilmiş > Tarayıcı > Varsayılan (tr)\n let lang = savedLang || browserLang || 'tr';\n\n // Desteklenen diller arasında değilse varsayılanı kullan\n if (!this.availableLanguages.find(l => l.code === lang)) {\n lang = 'tr';\n }\n\n this.setLanguage(lang);\n }\n\n /**\n * Dili değiştir\n */\n setLanguage(langCode: string): void {\n const language = this.availableLanguages.find(l => l.code === langCode);\n\n if (!language) {\n console.error(`Language ${langCode} not found`);\n return;\n }\n\n // ngx-translate dilini değiştir\n this.translate.use(langCode);\n\n // ng-zorro i18n'i değiştir\n this.nzI18nService.setLocale(language.nzLocale);\n\n // LocalStorage'a kaydet\n this.saveLanguage(langCode);\n\n // Observable'ı güncelle\n this.currentLanguageSubject.next(langCode);\n }\n\n /**\n * Mevcut dili al\n */\n getCurrentLanguage(): string {\n return this.currentLanguageSubject.value;\n }\n\n /**\n * Kaydedilmiş dili localStorage'dan al\n */\n private getSavedLanguage(): string | null {\n return localStorage.getItem(this.STORAGE_KEY);\n }\n\n /**\n * Dili localStorage'a kaydet\n */\n private saveLanguage(langCode: string): void {\n localStorage.setItem(this.STORAGE_KEY, langCode);\n }\n\n /**\n * Çeviriyi al (shorthand)\n */\n instant(key: string, params?: any): string {\n return this.translate.instant(key, params);\n }\n\n /**\n * Async çeviriyi al\n */\n get(key: string, params?: any): Observable {\n return this.translate.get(key, params);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator: boolean;\n\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator;\n} catch {\n hasV8BreakIterator = false;\n}\n\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\n@Injectable({providedIn: 'root'})\nexport class Platform {\n private _platformId = inject(PLATFORM_ID);\n\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n isBrowser: boolean = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document;\n\n /** Whether the current browser is Microsoft Edge. */\n EDGE: boolean = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n\n /** Whether the current rendering engine is Microsoft Trident. */\n TRIDENT: boolean = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n BLINK: boolean =\n this.isBrowser &&\n !!((window as any).chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' &&\n !this.EDGE &&\n !this.TRIDENT;\n\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n WEBKIT: boolean =\n this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) &&\n !this.BLINK &&\n !this.EDGE &&\n !this.TRIDENT;\n\n /** Whether the current platform is Apple iOS. */\n IOS: boolean =\n this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n FIREFOX: boolean = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n ANDROID: boolean = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n SAFARI: boolean = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n\n /** Backwards-compatible constructor. */\n constructor(..._args: unknown[]);\n\n constructor() {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {Injectable, CSP_NONCE, inject} from '@angular/core';\nimport { Platform } from './platform';\n\n\n/** Global registry for all dynamically-created, injected media queries. */\nconst mediaQueriesForWebkitCompatibility: Set = new Set();\n\n/** Style tag that holds all of the dynamically-created media queries. */\nlet mediaQueryStyleNode: HTMLStyleElement | undefined;\n\n/** A utility for calling matchMedia queries. */\n@Injectable({providedIn: 'root'})\nexport class MediaMatcher {\n private _platform = inject(Platform);\n private _nonce = inject(CSP_NONCE, {optional: true});\n\n /** The internal matchMedia method to return back a MediaQueryList like object. */\n private _matchMedia: (query: string) => MediaQueryList;\n\n constructor(...args: unknown[]);\n\n constructor() {\n this._matchMedia =\n this._platform.isBrowser && window.matchMedia\n ? // matchMedia is bound to the window scope intentionally as it is an illegal invocation to\n // call it from a different scope.\n window.matchMedia.bind(window)\n : noopMatchMedia;\n }\n\n /**\n * Evaluates the given media query and returns the native MediaQueryList from which results\n * can be retrieved.\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n */\n matchMedia(query: string): MediaQueryList {\n if (this._platform.WEBKIT || this._platform.BLINK) {\n createEmptyStyleRule(query, this._nonce);\n }\n return this._matchMedia(query);\n }\n}\n\n/**\n * Creates an empty stylesheet that is used to work around browser inconsistencies related to\n * `matchMedia`. At the time of writing, it handles the following cases:\n * 1. On WebKit browsers, a media query has to have at least one rule in order for `matchMedia`\n * to fire. We work around it by declaring a dummy stylesheet with a `@media` declaration.\n * 2. In some cases Blink browsers will stop firing the `matchMedia` listener if none of the rules\n * inside the `@media` match existing elements on the page. We work around it by having one rule\n * targeting the `body`. See https://github.com/angular/components/issues/23546.\n */\nfunction createEmptyStyleRule(query: string, nonce: string | undefined | null) {\n if (mediaQueriesForWebkitCompatibility.has(query)) {\n return;\n }\n\n try {\n if (!mediaQueryStyleNode) {\n mediaQueryStyleNode = document.createElement('style');\n\n if (nonce) {\n mediaQueryStyleNode.setAttribute('nonce', nonce);\n }\n\n mediaQueryStyleNode.setAttribute('type', 'text/css');\n document.head!.appendChild(mediaQueryStyleNode);\n }\n\n if (mediaQueryStyleNode.sheet) {\n mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);\n mediaQueriesForWebkitCompatibility.add(query);\n }\n } catch (e) {\n console.error(e);\n }\n}\n\n/** No-op matchMedia replacement for non-browser platforms. */\nfunction noopMatchMedia(query: string): MediaQueryList {\n // Use `as any` here to avoid adding additional necessary properties for\n // the noop matcher.\n return {\n matches: query === 'all' || query === '',\n media: query,\n addListener: () => {},\n removeListener: () => {},\n } as any;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport { Injectable, NgZone, OnDestroy, inject } from '@angular/core';\nimport { combineLatest, concat, Observable, Observer, Subject } from 'rxjs';\nimport { debounceTime, map, skip, startWith, take, takeUntil } from 'rxjs/operators';\nimport { MediaMatcher } from './media-matcher';\n\nexport function coerceArray(value: T | T[]): T[];\nexport function coerceArray(value: T | readonly T[]): readonly T[];\nexport function coerceArray(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n/** The current state of a layout breakpoint. */\nexport interface BreakpointState {\n /** Whether the breakpoint is currently matching. */\n matches: boolean;\n /**\n * A key boolean pair for each query provided to the observe method,\n * with its current matched state.\n */\n breakpoints: {\n [key: string]: boolean;\n };\n}\n\n/** The current state of a layout breakpoint. */\ninterface InternalBreakpointState {\n /** Whether the breakpoint is currently matching. */\n matches: boolean;\n /** The media query being to be matched */\n query: string;\n}\n\ninterface Query {\n observable: Observable;\n mql: MediaQueryList;\n}\n\n/** Utility for checking the matching state of `@media` queries. */\n@Injectable({ providedIn: 'root' })\nexport class BreakpointObserver implements OnDestroy {\n private _mediaMatcher = inject(MediaMatcher);\n private _zone = inject(NgZone);\n\n /** A map of all media queries currently being listened for. */\n private _queries = new Map();\n /** A subject for all other observables to takeUntil based on. */\n private readonly _destroySubject = new Subject();\n\n constructor(...args: unknown[]);\n constructor() { }\n\n /** Completes the active subject, signalling to all other observables to complete. */\n ngOnDestroy() {\n this._destroySubject.next();\n this._destroySubject.complete();\n }\n\n /**\n * Whether one or more media queries match the current viewport size.\n * @param value One or more media queries to check.\n * @returns Whether any of the media queries match.\n */\n isMatched(value: string | readonly string[]): boolean {\n const queries = splitQueries(coerceArray(value));\n return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);\n }\n\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes\n * in matching of the given queries.\n * @param value One or more media queries to check.\n * @returns A stream of matches for the given queries.\n */\n observe(value: string | readonly string[]): Observable {\n const queries = splitQueries(coerceArray(value));\n const observables = queries.map(query => this._registerQuery(query).observable);\n\n let stateObservable = combineLatest(observables);\n // Emit the first state immediately, and then debounce the subsequent emissions.\n stateObservable = concat(\n stateObservable.pipe(take(1)),\n stateObservable.pipe(skip(1), debounceTime(0)),\n );\n return stateObservable.pipe(\n map(breakpointStates => {\n const response: BreakpointState = {\n matches: false,\n breakpoints: {},\n };\n breakpointStates.forEach(({ matches, query }) => {\n response.matches = response.matches || matches;\n response.breakpoints[query] = matches;\n });\n return response;\n }),\n );\n }\n\n /** Registers a specific query to be listened for. */\n private _registerQuery(query: string): Query {\n // Only set up a new MediaQueryList if it is not already being listened for.\n if (this._queries.has(query)) {\n return this._queries.get(query)!;\n }\n\n const mql = this._mediaMatcher.matchMedia(query);\n\n // Create callback for match changes and add it is as a listener.\n const queryObservable = new Observable((observer: Observer) => {\n // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed\n // back into the zone because matchMedia is only included in Zone.js by loading the\n // webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not\n // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js\n // patches it.\n const handler = (e: MediaQueryListEvent): void => this._zone.run(() => observer.next(e));\n mql.addListener(handler);\n\n return () => {\n mql.removeListener(handler);\n };\n }).pipe(\n startWith(mql),\n map(({ matches }) => ({ query, matches })),\n takeUntil(this._destroySubject),\n );\n\n // Add the MediaQueryList to the set of queries.\n const output = { observable: queryObservable, mql };\n this._queries.set(query, output);\n return output;\n }\n}\n\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n */\nfunction splitQueries(queries: readonly string[]): readonly string[] {\n return queries\n .map(query => query.split(','))\n .reduce((a1, a2) => a1.concat(a2))\n .map(query => query.trim());\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nexport const Breakpoints = {\n XSmall: '(max-width: 599.98px)',\n Small: '(min-width: 600px) and (max-width: 959.98px)',\n Medium: '(min-width: 960px) and (max-width: 1279.98px)',\n Large: '(min-width: 1280px) and (max-width: 1919.98px)',\n XLarge: '(min-width: 1920px)',\n\n Handset:\n '(max-width: 599.98px) and (orientation: portrait), ' +\n '(max-width: 959.98px) and (orientation: landscape)',\n Tablet:\n '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), ' +\n '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n Web:\n '(min-width: 840px) and (orientation: portrait), ' +\n '(min-width: 1280px) and (orientation: landscape)',\n\n HandsetPortrait: '(max-width: 599.98px) and (orientation: portrait)',\n TabletPortrait: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)',\n WebPortrait: '(min-width: 840px) and (orientation: portrait)',\n\n HandsetLandscape: '(max-width: 959.98px) and (orientation: landscape)',\n TabletLandscape: '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n WebLandscape: '(min-width: 1280px) and (orientation: landscape)',\n};\n","// import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Compiler, Component, ElementRef, Injector, NgZone, Optional, PLATFORM_ID, ViewContainerRef, inject } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ActivatedRoute, ChildrenOutletContexts, Router, RouterModule } from '@angular/router';\nimport { SwPush, SwUpdate } from '@angular/service-worker';\nimport { Subscription } from 'rxjs';\n\nimport { animate, animateChild, group, query, stagger, state, style, transition, trigger } from '@angular/animations';\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\nimport { NzModalModule, NzModalRef, NzModalService } from 'ng-zorro-antd/modal';\nimport { NzMessageService } from 'ng-zorro-antd/message';\n// import { FikoYTEnvIstemci } from '@/src/app/Environment/environment';\n// import { Overlay } from '@angular/cdk/overlay';\n\nimport { FikoYTEnvIstemci } from '../Environment/environment';\nimport { FikoYTArayuz } from '../fikoyt.arayuz.service';\nimport { FikoYTService } from '../fikoyt.service';\nimport { BreakpointObserver } from './breakpoints-observer';\nimport { Breakpoints } from './breakpoints';\nimport { LanguageService } from '../language.service';\n\ndeclare var $: any;\n\n@Component({\n template: ``,\n imports: [RouterModule, FormsModule, ReactiveFormsModule],\n providers: [\n NzModalService,\n // NzMessageService, NzNotificationService,\n // ServisFikoYT\n ],\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [\n trigger('fadeAnimation', [\n transition('* <=> *', [\n // Eski sayfa (leave) animasyonu\n query(':enter, :leave', [\n style({\n position: 'absolute',\n width: '-webkit-fill-available',\n // opacity: 0,\n }), animateChild(),\n ], { optional: true }),\n\n group([\n // Eski sayfa (leave) animasyonu\n query(':leave', [\n animateChild(),\n animate('350ms ease-out', style({\n opacity: 0,\n }))\n ], { optional: true }),\n\n // Yeni sayfa (enter) animasyonu\n query(':enter', animateChild(), { optional: true }),\n query(':enter', [\n style({ opacity: 0 })\n , animateChild(),\n animate('750ms ease-in',\n style({\n opacity: 1,\n }))\n ], { optional: true }),\n query(':leave', animateChild(), { optional: true }),\n ])\n ])\n ]),\n trigger('amazingAnimation1', [\n transition('* <=> *', [\n // Sayfa giriş-çıkış başlangıç stili\n query(':enter, :leave', [\n style({\n position: 'absolute',\n width: '100%',\n height: '100%', // Sabit yükseklik\n overflow: 'hidden',\n })\n ], { optional: true }),\n\n group([\n // Çıkış yapan sayfa animasyonu (küçülerek ve aşağıya kayarak kaybolacak)\n query(':leave', [\n animate('1500ms ease-out', style({\n transform: 'scale(0.2) translateY(100%)',\n opacity: 0,\n }))\n ], { optional: true }),\n\n // Yeni gelen sayfa animasyonu (küçük başlayıp büyüyerek yerleşecek)\n query(':enter', [\n style({\n transform: 'scale(0.2) translateY(-100%)',\n opacity: 0,\n }),\n animate('1500ms cubic-bezier(0.2, 1, 0.3, 1)', style({\n transform: 'scale(1) translateY(0)',\n opacity: 1,\n }))\n ], { optional: true }),\n ])\n ])\n ]),\n\n trigger('amazingAnimation', [\n transition('* <=> *', [\n // Sayfa geçişlerinde başlangıç ayarları\n query(':enter, :leave', [\n style({\n position: 'absolute',\n width: '100%',\n })\n ], { optional: true }),\n\n group([\n // Eski sayfa animasyonu (Yansıma kayboluyor)\n query(':leave', [\n animate('1500ms ease-out', style({\n transform: 'translateY(100%)', // Sayfa aşağıya kayacak\n opacity: 0, // Şeffaflaşacak\n }))\n ], { optional: true }),\n\n // Yeni sayfa animasyonu (Baloncuk gibi büyüyerek geliyor)\n query(':enter', [\n style({\n opacity: 0, // Başlangıçta görünmez\n transform: 'scale(0.2) translateY(-100%)', // Küçük başlayacak ve yukarıdan gelecek\n }),\n animate('1500ms cubic-bezier(0.2, 1, 0.3, 1)', style({\n opacity: 1, // Görünür olacak\n transform: 'scale(1) translateY(0)', // Normal boyut ve yerleşim\n }))\n ], { optional: true }),\n\n ])\n ])\n ]),\n trigger('shatteredAnimation', [\n transition('* <=> *', [\n // Eski sayfanın parçalanarak kaybolması\n query(':enter, :leave', [\n style({\n position: 'absolute',\n width: '100%',\n // opacity: 1,\n }),\n stagger(50, [\n animate('600ms ease-out', style({\n transform: 'translate3d(random(-300px, 300px), random(-300px, 300px), 0)', // Her parça rastgele kayacak\n opacity: 0,\n }))\n ])\n ], { optional: true }),\n\n // Yeni sayfanın parçalanarak gelmesi\n query(':enter', [\n style({\n position: 'absolute',\n width: '100%',\n opacity: 0,\n }),\n stagger(-50, [\n animate('800ms cubic-bezier(0.68, -0.55, 0.27, 1.55)', style({\n opacity: 1,\n transform: 'translate3d(0, 0, 0)', // Başlangıçta parçalar yerinde\n }))\n ])\n ], { optional: true }),\n ])\n ]),\n trigger('rotateTransition', [\n transition('* <=> *', [\n query(':enter, :leave', [\n style({\n position: 'absolute',\n width: '100%',\n }),\n ], { optional: true }),\n query(':enter', [\n style({\n opacity: 0,\n }),\n ], { optional: true }),\n // Eski sayfa dönüşüm ve kaybolma\n query(':enter, :leave', [\n style({\n position: 'absolute',\n width: '100%',\n // opacity: 1,\n transform: 'rotate(0deg)', // Başlangıçta döndürme yok\n }),\n animate('1000ms ease-out', style({\n opacity: 0,\n transform: 'rotate(180deg) translateY(-100%)', // Sayfa dönerken yukarı kayacak\n }))\n ], { optional: true }),\n\n // Yeni sayfa dönüşüm ve giriş\n query(':enter', [\n style({\n position: 'absolute',\n width: '100%',\n opacity: 0,\n transform: 'rotate(-180deg)', // Başlangıçta ters dönecek\n }),\n animate('1000ms ease-in', style({\n opacity: 1,\n transform: 'rotate(0deg)', // Yeni sayfa dönüşü tamamlanacak\n }))\n ], { optional: true }),\n ])\n ]),\n trigger('amazingAnimation-1', [\n transition('* <=> *', [\n query(':enter, :leave', [\n style({\n position: 'absolute',\n width: '100%',\n }),\n ], { optional: true }),\n query(':enter', [\n style({\n opacity: 0,\n }),\n ], { optional: true }),\n // Eski sayfa kayboluyor\n query(':leave', [\n style({\n position: 'absolute',\n width: '100%',\n opacity: 1,\n transform: 'scale(1)', // Başlangıçta normal boyutta\n }),\n animate('800ms ease-out', style({\n opacity: 0,\n transform: 'scale(0) rotate(360deg)', // Sayfa küçülüp dönerek kayboluyor\n filter: 'brightness(0.5)', // Parlama etkisi\n }))\n ], { optional: true }),\n // Yeni sayfa kaybolan eski sayfa geçtikten sonra görünüyor\n query(':enter', [\n style({\n position: 'absolute',\n width: '100%',\n opacity: 0,\n transform: 'scale(0.5)', // Başlangıçta küçük\n filter: 'brightness(1.5)', // Parlama etkisi\n }),\n animate('800ms ease-in', style({\n opacity: 1,\n transform: 'scale(1)', // Yeni sayfa büyüyerek görünecek\n filter: 'brightness(1)', // Parlama efekti kaybolacak\n }))\n ], { optional: true }),\n ])\n ]),\n // Component \n trigger('fade', [\n transition('* <=> *', [\n group([\n // Eski sayfa (leave) animasyonu\n query(':leave', [\n animate('750ms ease-out', style({\n opacity: 0,\n }))\n ], { optional: true }),\n\n // Yeni sayfa (enter) animasyonu\n query(':enter', [\n style({ opacity: 0 }),\n animate('750ms ease-in', style({\n opacity: 1,\n }))\n ], { optional: true }),\n\n ])\n ])\n ]),\n\n\n trigger('imageChange', [\n state(\n 'hidden',\n style({\n opacity: 0.5,\n })\n ),\n state(\n 'visible',\n style({\n opacity: 1,\n })\n ),\n transition('hidden => visible', [animate('500ms ease-in')]),\n transition('visible => hidden', [animate('500ms ease-out')]),\n ]),\n\n ],\n host: { 'hostID': crypto.randomUUID().toString() }\n})\nexport abstract class FikoYTKokBilesenComponent {\n public $: any;\n /** */\n public readonly env = FikoYTEnvIstemci;\n /** */\n bPnts = Breakpoints;\n /** */\n subsList: Subscription[] = [];\n /** */\n diller: any = {};\n /** Constructor İnjection Servisler */\n public readonly CD: ChangeDetectorRef;\n public readonly FikoYT: FikoYTService;\n public readonly FikoYTArayuz: FikoYTArayuz;\n public readonly contexts: ChildrenOutletContexts;\n public readonly swUpdate: SwUpdate;\n public readonly bPnt: BreakpointObserver;\n public readonly swPush: SwPush;\n // public readonly nzModal: NzModalService;\n public readonly nzNotification: NzNotificationService;\n public readonly nzMessage: NzMessageService;\n @Optional() public readonly nzModalRef: NzModalRef | any;\n public readonly nzModalServis: NzModalService;\n public aktifKullanici: any;\n public readonly route: ActivatedRoute;\n public readonly router: Router;\n public readonly sanitizer: DomSanitizer;\n public readonly elementRef: ElementRef;\n\n public readonly navigator: any;\n public readonly document: any;\n\n public readonly compiler: Compiler;\n public readonly ngZone: NgZone;\n\n public readonly viewContainerRef: ViewContainerRef;\n // public readonly overlay: Overlay;\n public readonly injector: Injector;\n\n public parametreler: { [key: string]: any } = { \"baslik\": \"FikoYT Yeni Çağ\" };\n public globalParametreler: { [key: string]: any };\n\n public readonly languageService: LanguageService;\n\n constructor(\n // readonly injector: Injector,\n ) {\n this.CD = inject(ChangeDetectorRef);\n\n this.FikoYT = inject(FikoYTService);\n this.FikoYTArayuz = inject(FikoYTArayuz);\n this.globalParametreler = []; //this.FikoYT.parametreler;\n\n this.route = inject(ActivatedRoute);\n this.router = inject(Router);\n this.contexts = inject(ChildrenOutletContexts);\n this.swUpdate = inject(SwUpdate);\n this.swPush = inject(SwPush);\n this.bPnt = inject(BreakpointObserver);\n\n this.elementRef = inject(ElementRef);\n\n\n this.compiler = inject(Compiler);\n this.ngZone = inject(NgZone);\n\n this.viewContainerRef = inject(ViewContainerRef);\n // this.overlay = inject(Overlay);\n\n this.injector = inject(Injector);\n\n this.sanitizer = inject(DomSanitizer);\n\n if (isPlatformBrowser(inject(PLATFORM_ID))) {\n this.navigator = window.navigator;\n this.document = window.document;\n this.$ = $;\n }\n\n // this.nzModal = inject(NzModalService);\n this.nzNotification = inject(NzNotificationService);\n this.nzMessage = inject(NzMessageService);\n this.nzModalServis = inject(NzModalService);\n try {\n this.nzModalRef = inject(NzModalRef);\n } catch (error) {\n this.nzModalRef = null;\n }\n\n this.subsList.push(this.FikoYT.degisti.subscribe(() => {\n this.CD.detectChanges();\n }));\n\n\n this.languageService = inject(LanguageService);\n }\n\n // async ngOnInit() {\n\n // }\n\n ngAfterViewInit(): void {\n this.subsList.push(this.bPnt.observe([this.bPnts.XLarge, this.bPnts.Large, this.bPnts.Medium, this.bPnts.Small, this.bPnts.XSmall]).subscribe((val: any) => {\n setTimeout(async () => {\n this.CD.detectChanges();\n }, 0);\n }));\n\n }\n\n ngOnDestroy(): void {\n this.subsList?.forEach(element => {\n element?.unsubscribe();\n });\n }\n\n // dialogTemplate(tplContent: any, tplTitle: any = null,): void {\n // this.nzModal.create({\n // nzTitle: tplTitle,\n // // nzBodyStyle: { \"text-align\": \"center\" },\n // nzContent: tplContent,\n // nzFooter: null,\n // nzMaskClosable: true,\n // nzClosable: false,\n // // nzOnOk: () => console.log('Click ok')\n // });\n // }\n // tr(sentences) {\n // if (this.diller[this.FikoYT.parametreler.language?.code])\n // return this.diller[this.FikoYT.parametreler.language.code][sentences] ?? sentences\n // return sentences;\n // }\n}\n\n// /** AYRAÇ: */\n// @Component({\n// template: ``,\n// imports: [CommonModule, RouterModule, FormsModule, ReactiveFormsModule],\n// providers: [\n// // ServisFikoYT\n// ],\n// animations: [\n// trigger('fadeAnimation', [\n// transition('* => *', [\n// query(':enter', [\n// style({ opacity: 0, })\n// ], { optional: true }),\n// group([\n// query(':leave', [\n// style({ display: \"none\" }),\n// ], { optional: true }),\n// query(':enter', animateChild(), { optional: true }),\n// query(':enter', [\n// animate(750, style({ opacity: 1, })),\n// ], { optional: true }),\n// query(':leave', animateChild(), { optional: true }),\n// ])\n// ])\n// ]),\n// ]\n// })\n// export class FikoYTKokVeriBilesenComponent extends FikoYTKokBilesenComponent {\n// // veriModulu: any = null;\n// veriSablon: any = null;\n// istekParametreleri: any = null;\n// /** */\n// @ViewChild(\"FikoFilitreci\", { static: false }) fikoFilitreci?: FikoFilitreciComponent;\n\n// istekSayfalama: IstekSayfalama;\n\n// aramaGenel: string = \"\";\n\n// tabloAyarlar: {\n// sutunlar: {\n\n// title: any,\n// width?: string,\n// maxWidth?: number,\n// minWidth?: number,\n// align?: string,\n// data?: string,\n// olcuYonu?: \"right\" | \"left\",\n// }[]\n// } & any;\n\n// /** */\n// #listelemeModu: \"Liste\" | \"Kart\" = \"Kart\";\n// public get listelemeModu(): \"Liste\" | \"Kart\" {\n// return this.#listelemeModu;\n// }\n// public set listelemeModu(v: \"Liste\" | \"Kart\") {\n// this.#listelemeModu = v;\n// this.FikoYT.ayarlar.ekleYadaGuncelleTek(v, (this.istekParametreleri?.komut ?? \"FikoYT.kok\") + \".listelemeModu\").then();\n// }\n\n// constructor(\n\n// // readonly injector: Injector,\n// ) {\n// super();\n\n// }\n\n// async ngOnInit(): Promise {\n// this.istekSayfalama = new IstekSayfalama(this.istekParametreleri ?? {});\n\n// this.FikoYT.ayarlar.getByPrimaryKey((this.istekParametreleri?.komut ?? \"FikoYT.kok\") + \".listelemeModu\").then(val => {\n// if (val) {\n// this.#listelemeModu = val;\n// } else {\n// this.#listelemeModu = \"Kart\";\n// }\n// this.CD.detectChanges();\n// });\n// }\n\n// ngAfterViewInit(): void {\n// super.ngAfterViewInit();\n// this.listeyiAl();\n// }\n\n// ngOnDestroy(): void {\n// super.ngOnDestroy();\n// }\n\n// filitreCevirSql() {\n// if (this.istekSayfalama.suzgecModu() == 1) {\n// let sorgu = this.fikoFilitreci?.toMongo()\n\n// return sorgu ? { $match: sorgu } : null;\n// } else {\n\n// if (this.aramaGenel?.trim() == '') {\n// return null\n// }\n// //----> RS+: \n// let sonuc: any = [\n// { 'hadis': { $regex: this.aramaGenel, $options: 'i' } },\n// { 'kaynak': { $regex: this.aramaGenel, $options: 'i' } },\n// ]\n\n// try {\n// sonuc.push({ 'sNo': Number.parseInt(this.aramaGenel) });\n// } catch (error) {\n\n// }\n\n// return {\n// $match: {\n// $or: sonuc\n// }\n// };\n// }\n// }\n\n// async listeyiAl() {\n\n// this.istekSayfalama.filitre = this.filitreCevirSql();\n// await this.istekSayfalama.listeyiAl();\n\n// }\n\n// }\n","import { IconDefinition } from '@ant-design/icons-angular';\nimport {\n DownOutline, UpOutline, LeftOutline, RightOutline,\n ArrowUpOutline, ArrowDownOutline, ArrowLeftOutline, ArrowRightOutline,\n CaretRightOutline, CaretDownOutline, CaretUpOutline,\n DoubleLeftOutline, DoubleRightOutline, VerticalAlignTopOutline, VerticalAlignBottomOutline,\n MenuOutline, MenuFoldOutline, MenuUnfoldOutline, EllipsisOutline, MoreOutline, BarsOutline,\n PlusOutline, MinusOutline, CloseOutline, CheckOutline,\n EditOutline, DeleteOutline, SaveOutline, CopyOutline, SearchOutline,\n ReloadOutline, SyncOutline, DownloadOutline, UploadOutline, FilterOutline,\n SettingOutline, RedoOutline, UndoOutline, SendOutline, ScanOutline, ClearOutline,\n CheckCircleOutline, CloseCircleOutline, ExclamationCircleOutline,\n InfoCircleOutline, QuestionCircleOutline, WarningOutline, LoadingOutline,\n MinusCircleOutline, PlusCircleOutline, ClockCircleOutline, StopOutline,\n CheckCircleFill, CloseCircleFill, ExclamationCircleFill, InfoCircleFill, WarningFill,\n UserOutline, UserAddOutline, UserDeleteOutline, TeamOutline,\n BellOutline, MailOutline, HomeOutline, FolderOutline, FolderOpenOutline,\n FileOutline, FileTextOutline, FilePdfOutline, FileImageOutline,\n CalendarOutline, EyeOutline, EyeInvisibleOutline,\n LockOutline, UnlockOutline, KeyOutline,\n StarOutline, HeartOutline, LikeOutline, TagOutline, FlagOutline,\n CameraOutline, PictureOutline, DesktopOutline, MobileOutline, LaptopOutline,\n DatabaseOutline, CloudUploadOutline, CloudDownloadOutline, CloudServerOutline,\n ApiOutline, ToolOutline, DashboardOutline, AppstoreOutline, TableOutline,\n ThunderboltOutline, GlobalOutline, EnvironmentOutline, PhoneOutline, PrinterOutline,\n LoginOutline, LogoutOutline, CrownOutline, RobotOutline, BulbOutline,\n FireOutline, TrophyOutline, RocketOutline, ControlOutline, SlidersOutline,\n} from '@ant-design/icons-angular/icons';\n\nexport const icons: IconDefinition[] = [\n DownOutline, UpOutline, LeftOutline, RightOutline,\n ArrowUpOutline, ArrowDownOutline, ArrowLeftOutline, ArrowRightOutline,\n CaretRightOutline, CaretDownOutline, CaretUpOutline,\n DoubleLeftOutline, DoubleRightOutline, VerticalAlignTopOutline, VerticalAlignBottomOutline,\n MenuOutline, MenuFoldOutline, MenuUnfoldOutline, EllipsisOutline, MoreOutline, BarsOutline,\n PlusOutline, MinusOutline, CloseOutline, CheckOutline,\n EditOutline, DeleteOutline, SaveOutline, CopyOutline, SearchOutline,\n ReloadOutline, SyncOutline, DownloadOutline, UploadOutline, FilterOutline,\n SettingOutline, RedoOutline, UndoOutline, SendOutline, ScanOutline, ClearOutline,\n CheckCircleOutline, CloseCircleOutline, ExclamationCircleOutline,\n InfoCircleOutline, QuestionCircleOutline, WarningOutline, LoadingOutline,\n MinusCircleOutline, PlusCircleOutline, ClockCircleOutline, StopOutline,\n CheckCircleFill, CloseCircleFill, ExclamationCircleFill, InfoCircleFill, WarningFill,\n UserOutline, UserAddOutline, UserDeleteOutline, TeamOutline,\n BellOutline, MailOutline, HomeOutline, FolderOutline, FolderOpenOutline,\n FileOutline, FileTextOutline, FilePdfOutline, FileImageOutline,\n CalendarOutline, EyeOutline, EyeInvisibleOutline,\n LockOutline, UnlockOutline, KeyOutline,\n StarOutline, HeartOutline, LikeOutline, TagOutline, FlagOutline,\n CameraOutline, PictureOutline, DesktopOutline, MobileOutline, LaptopOutline,\n DatabaseOutline, CloudUploadOutline, CloudDownloadOutline, CloudServerOutline,\n ApiOutline, ToolOutline, DashboardOutline, AppstoreOutline, TableOutline,\n ThunderboltOutline, GlobalOutline, EnvironmentOutline, PhoneOutline, PrinterOutline,\n LoginOutline, LogoutOutline, CrownOutline, RobotOutline, BulbOutline,\n FireOutline, TrophyOutline, RocketOutline, ControlOutline, SlidersOutline,\n];\n","// decorators.ts\n\n// Debounce\nexport function debounce(wait: number) {\n const timeouts = new WeakMap();\n \n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n const originalMethod = descriptor.value;\n \n descriptor.value = function (...args: any[]) {\n const self = this;\n \n if (timeouts.has(self)) {\n clearTimeout(timeouts.get(self));\n }\n \n const timeout = setTimeout(() => {\n originalMethod.apply(self, args);\n }, wait);\n \n timeouts.set(self, timeout);\n };\n \n return descriptor;\n };\n }\n \n // Throttle\n export function throttle(limit: number) {\n const throttles = new WeakMap();\n \n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n const originalMethod = descriptor.value;\n \n descriptor.value = function (...args: any[]) {\n const self = this;\n \n if (throttles.get(self)) return;\n \n throttles.set(self, true);\n originalMethod.apply(self, args);\n \n setTimeout(() => {\n throttles.set(self, false);\n }, limit);\n };\n \n return descriptor;\n };\n }\n \n // Memoize\n export function memoize(\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor\n ) {\n const cache = new Map();\n const originalMethod = descriptor.value;\n \n descriptor.value = function (...args: any[]) {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = originalMethod.apply(this, args);\n cache.set(key, result);\n return result;\n };\n \n return descriptor;\n }\n ","import { Type } from '@angular/core';\nimport { IDinamikBilesenKayit, IDinamikBilesenMeta, IDinamikBilesenTanim } from '../../../interfaces/IDinamikBilesen.interface';\n\nclass _DinamikBilesenRegistry {\n private kayitlar = new Map();\n private cache = new Map();\n private yuklemeler = new Map>();\n\n kaydet(id: string, tanim: IDinamikBilesenTanim, meta?: IDinamikBilesenMeta) {\n const mevcut = this.kayitlar.get(id);\n if (mevcut) {\n mevcut.tanim = tanim;\n mevcut.meta = meta;\n } else {\n this.kayitlar.set(id, { id, yukleyici: () => Promise.resolve(tanim), tanim, meta });\n }\n this.cache.set(id, tanim);\n }\n\n kaydetLazy(id: string, yukleyici: () => Promise) {\n if (!this.kayitlar.has(id)) {\n this.kayitlar.set(id, { id, yukleyici });\n }\n }\n\n kaydetToplu(moduller: Record Promise>) {\n for (const [yol, yukleyici] of Object.entries(moduller)) {\n const parcalar = yol.replace(/\\\\/g, '/').split('/');\n const dosyaAdi = parcalar[parcalar.length - 1];\n const id = dosyaAdi.replace('.dinamik-bilesen.ts', '');\n this.kaydetLazy(id, yukleyici);\n }\n }\n\n async yukle(id: string): Promise {\n if (this.cache.has(id)) return this.cache.get(id)!;\n\n const aktif = this.yuklemeler.get(id);\n if (aktif) return aktif;\n\n const kayit = this.kayitlar.get(id);\n if (!kayit) return null;\n\n const p = kayit.yukleyici()\n .then(() => this.cache.get(id) || kayit.tanim || null)\n .finally(() => this.yuklemeler.delete(id));\n\n this.yuklemeler.set(id, p);\n return p;\n }\n\n async onceden_yukle(idler: string[]): Promise {\n await Promise.all(idler.map(id => this.yukle(id)));\n }\n\n async goruntumAl(id: string, gorunum: string): Promise | null> {\n const tanim = await this.yukle(id);\n if (!tanim) { console.warn(`[DinamikBilesen] '${id}' yüklenemedi`); return null; }\n\n let comp = (tanim as any)[gorunum];\n if (!comp && gorunum.endsWith('_sade')) {\n comp = (tanim as any)[gorunum.replace('_sade', '')];\n }\n if (!comp) console.warn(`[DinamikBilesen] '${id}' keys:`, Object.keys(tanim), Object.getOwnPropertyNames(tanim));\n return comp && typeof comp === 'function' ? comp : null;\n }\n\n tumIdler(): string[] {\n return Array.from(this.kayitlar.keys());\n }\n\n tumKayitlar(): IDinamikBilesenKayit[] {\n return Array.from(this.kayitlar.values());\n }\n\n kategoriyeGore(kategori: string): IDinamikBilesenKayit[] {\n return this.tumKayitlar().filter(k => k.meta?.kategori === kategori);\n }\n\n metaAl(id: string): IDinamikBilesenMeta | undefined {\n return this.kayitlar.get(id)?.meta;\n }\n\n varMi(id: string): boolean {\n return this.kayitlar.has(id);\n }\n\n get istatistikler() {\n return { kayitli: this.kayitlar.size, yuklenen: this.cache.size };\n }\n}\n\nexport const DinamikBilesenRegistry = new _DinamikBilesenRegistry();\n","import { IDinamikBilesenMeta } from '../interfaces/IDinamikBilesen.interface';\nimport { DinamikBilesenRegistry } from '../src/lib/dinamik-bilesen/dinamik-bilesen.registry';\n\nexport function DinamikBilesen(meta: IDinamikBilesenMeta) {\n const frozenMeta = Object.freeze({ ...meta });\n\n return function (target: any) {\n if (DinamikBilesenRegistry.varMi(frozenMeta.id)) {\n console.warn(`[DinamikBilesen] '${frozenMeta.id}' zaten kayıtlı, üzerine yazılıyor.`);\n }\n\n Object.defineProperty(target, 'bilesen_id', { value: frozenMeta.id, writable: false, configurable: false });\n Object.defineProperty(target.prototype, 'bilesen_id', { value: frozenMeta.id, writable: false, configurable: false });\n Object.defineProperty(target.prototype, 'meta', { value: frozenMeta, writable: false, configurable: false });\n\n const instance = new target();\n\n DinamikBilesenRegistry.kaydet(frozenMeta.id, instance, frozenMeta);\n };\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef, OnDestroy } from '@angular/core';\n\n@Directive({\n selector: '[appShowFor]'\n})\nexport class ShowForDirective implements OnDestroy {\n private timer?: any;\n\n constructor(\n private tpl: TemplateRef,\n private vcr: ViewContainerRef\n ) {}\n\n // Süre parametresi (default 5 saniye)\n @Input() appShowForSeconds = 5;\n\n // Tetikleme input'u\n @Input()\n set appShowForTrigger(value: any) {\n if (value) {\n this.show(this.appShowForSeconds);\n }\n }\n\n private show(seconds: number) {\n this.vcr.clear();\n this.vcr.createEmbeddedView(this.tpl);\n\n if (this.timer) clearTimeout(this.timer);\n this.timer = setTimeout(() => this.vcr.clear(), seconds * 1000);\n }\n\n ngOnDestroy() {\n if (this.timer) clearTimeout(this.timer);\n }\n}\n","export { };\n\ndeclare global {\n interface String {\n toNumber(): number;\n }\n}\n\nString.prototype.toNumber = function (this: string) { return parseFloat(this) };","export class FikoYTId extends String {\n constructor(value?: string) {\n let timestamp = (new Date().getTime() / 1000 | 0).toString(16);\n timestamp = timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, () => {\n // tslint:disable-next-line:no-bitwise\n return (Math.random() * 16 | 0).toString(16);\n }).toLowerCase();\n\n super(value ?? timestamp); // String constructor'ını çağırıyoruz\n }\n\n}","export class Duration {\n readonly milliseconds: number;\n \n constructor({\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n milliseconds = 0,\n }: {\n years?: number;\n months?: number;\n weeks?: number;\n days?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n }) {\n this.milliseconds =\n ((((years * 365 + months * 30 + weeks * 7 + days) * 24 + hours) * 60 +\n minutes) *\n 60 +\n seconds) *\n 1000 +\n milliseconds;\n }\n \n static between(date1: Date, date2: Date): Duration {\n return Duration.fromMilliseconds(Math.abs(date2.getTime() - date1.getTime()));\n }\n \n static fromMilliseconds(milliseconds: number) {\n return new Duration({ milliseconds });\n }\n \n /**\n * Akıllı pattern bazlı formatlama\n * skipZero = true ise 0 olan birimler ve yanındaki metin gizlenir\n */\n formatPattern(pattern: string, skipZero: boolean = false): string {\n let remaining = this.milliseconds;\n \n const unitDefs: Record = {\n yy: 1000 * 60 * 60 * 24 * 365,\n y: 1000 * 60 * 60 * 24 * 365,\n MM: 1000 * 60 * 60 * 24 * 30,\n M: 1000 * 60 * 60 * 24 * 30,\n ww: 1000 * 60 * 60 * 24 * 7,\n w: 1000 * 60 * 60 * 24 * 7,\n dd: 1000 * 60 * 60 * 24,\n d: 1000 * 60 * 60 * 24,\n hh: 1000 * 60 * 60,\n h: 1000 * 60 * 60,\n mm: 1000 * 60,\n m: 1000 * 60,\n ss: 1000,\n s: 1000,\n SSS: 1,\n };\n \n const values: Record = {};\n for (const key of Object.keys(unitDefs)) {\n const value = Math.floor(remaining / unitDefs[key]);\n remaining -= value * unitDefs[key];\n values[key] = value;\n }\n \n // Akıllı replace\n const tokenRegex = /yy|y|MM|M|ww|w|dd|d|hh|h|mm|m|ss|s|SSS/g;\n \n let formatted = pattern.replace(tokenRegex, (token) => {\n const val = values[token];\n if (skipZero && val === 0) return \"__REMOVE__\"; // geçici işaret\n if (token === \"SSS\") return val.toString().padStart(3, \"0\");\n return token.length === 2 ? val.toString().padStart(2, \"0\") : val.toString();\n });\n \n // \"__REMOVE__\" ile işaretlenmiş kısımları ve yanındaki boşlukları temizle\n formatted = formatted.replace(/__REMOVE__(\\s*[:\\s]*)/g, \"\");\n \n // Gereksiz boşlukları temizle\n formatted = formatted.replace(/\\s+/g, \" \").trim();\n \n return formatted;\n }\n }\n ","import { IGrupI } from \"./IGrup\";\r\n\r\nexport type EsitlikTuru = \"=\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"aralık\" | \"içerir\" | \"içermez\" | \"Olan\" | \"Olmayan\" | \"Boş Olan\" | \"Boş Olmayan\";\r\nexport type AlanTipi = \"Yazı Kutusu\" | \"Çoklu Yazı Kutusu\" | \"Sayı Kutusu\" | \"Tarih Kutusu\" | \"Kayar Seçim Kutusu\" | \"Özel Açılır Kutu\" | \"Bileşen Seçimi\" | \"Üye Seçimi\" | \"Serbest Alan\" | \"Dinamik Bileşen Filtresi\";\r\n\r\nexport interface IAlanI {\r\n ismi?: string;\r\n baslik?: string;\r\n aciklama?: string;\r\n ipucu?: string;\r\n tipi?: AlanTipi;\r\n solSimge?: string;\r\n alanIsmi?: string;\r\n esitlikTurleri?: EsitlikTuru[];\r\n aktifEsitlikTuru?: EsitlikTuru;\r\n degeri?: any;\r\n varsayilanDeger?: any;\r\n yerTutucu?: string;\r\n ek?: any;\r\n siralama?:string,\r\n parcaliSiralama?:string,\r\n [key: string]: any;\r\n degisti?: (deger: any) => void;\r\n cevirMongoya?: (_this: IAlanI) => any;\r\n cevirJsona?: (_this: any) => any;\r\n\r\n toListe?: (grup: IGrupI) => any;\r\n toMongo?: () => any;\r\n\r\n cevirSQL?: (_this: IAlanI) => any;\r\n\r\n kopyala?: () => IGrupI;\r\n\r\n /** Prepipe alanı: aggregate prepipe aşamasında hesaplanan alan adı (ör: '_hesap.toplamGorev') */\r\n prepipeAlani?: string;\r\n /** Dinamik bileşen filtresi: hesap alanı modu (üst seviye field, parametre değil) */\r\n _dbHesapAlani?: boolean;\r\n /** Dinamik bileşen filtresi: çoklu seçim modu */\r\n _dbCoklu?: boolean;\r\n /** Dinamik bileşen filtresi: özel tip (örn: olcu-uclu) */\r\n _ozelTip?: string;\r\n /** Dinamik bileşen filtresi: hesap alanı için MongoDB sorgu yolu (ismi'den farklı olabilir) */\r\n _dbAlanYolu?: string;\r\n /** Dinamik bileşen filtresi: olcu-sinir tipi için min/max sınır satırları */\r\n _olcuSatirlari?: { etiket: string; min: number | null; max: number | null }[];\r\n /** Sayı kutusu \"aralık\" operatörü için min değer */\r\n _aralikMin?: number | null;\r\n /** Sayı kutusu \"aralık\" operatörü için max değer */\r\n _aralikMax?: number | null;\r\n /** Parametre filtresi: kart parametreler[] dizisinde $elemMatch kullanır */\r\n parametreFiltresi?: boolean;\r\n /** Parametre ismi: $elemMatch içinde \"ismi\" alanı olarak kullanılır */\r\n parametreIsmi?: string;\r\n /** Parametre türü (orijinal IParametre.turu) */\r\n parametreTuru?: string;\r\n bilesenSecenekleri?: { id: string; baslik: string; renk?: string; simge?: string }[];\r\n}\r\n\r\n\r\n// export class IAlan implements IAlanI {\r\n// public ismi?: string;\r\n// public alanIsmi?: string;\r\n// public tipi?: AlanTipi;\r\n// public esitlikTurleri?: EsitlikTuru[];\r\n// public aktifEsitlikTuru?: EsitlikTuru;\r\n// public degeri: any;\r\n// public ek: any;\r\n\r\n// constructor(parametreler: IAlanI) {\r\n// Object.assign(this, parametreler);\r\n// }\r\n\r\n// toListe(grup: IGrupI) {\r\n\r\n// };\r\n\r\n// toMongo() {\r\n\r\n// };\r\n\r\n// kopyala(): IGrupI {\r\n// return {\r\n\r\n// }\r\n// };\r\n\r\n// }\r\n\r\n","import { IAlanI } from './IAlan';\n\nexport type veVeya = \"ve\" | \"veya\";\n\nexport interface IGrupI {\n veVeya?: \"ve\" | \"veya\";\n\n alanlar?: (IAlanI[] & IGrupI[]);\n\n acik?: boolean\n\n toListe?: (grup: IGrupI) => any;\n toMongo?: () => any;\n\n kopyala?: () => IGrupI;\n}\n\n\n// export class IGrup implements IGrupI {\n// veVeya?: 've' | 'veya' | undefined = \"ve\";\n// alanlar?: IAlanI[] | IGrupI[] = [];\n// acik?: boolean = true;\n\n// constructor(parametreler: IGrupI) {\n// Object.assign(this, parametreler);\n// }\n\n// toListe(grup: IGrupI) {\n\n// };\n// toMongo() {\n\n// };\n// kopyala(): IGrupI {\n// return {\n\n// }\n// };\n\n// }\n","import { IParametre, IParametreTumu } from \"./IParametre/IParametre\";\r\n\r\n/** Kayıt hareket türü */\r\nexport type IKayitHareketTuru = \"Eklendi\" | \"Değiştirildi\" | \"Silindi\" | \"Geri Alındı\";\r\n\r\nexport interface IKayitHareket {\r\n sahip?: string;\r\n turu?: IKayitHareketTuru;\r\n tarih?: Date;\r\n}\r\n\r\n/** Kart türleri */\r\nexport enum IKartTuru {\r\n YOK = 'YOK',\r\n KART = 'KART',\r\n SABLON = 'SABLON',\r\n BILDIRIM = 'BILDIRIM',\r\n FIRKOD = 'FIRKOD',\r\n REKLAM = 'REKLAM',\r\n REST = 'REST',\r\n VERI = 'VERI',\r\n BULUT3D = 'BULUT3D',\r\n UYGULAMA = 'UYGULAMA',\r\n ARAMA = 'ARAMA',\r\n VERITABANI = 'VERITABANI',\r\n UYAR_DOKUM = 'UYAR_DOKUM',\r\n SISTEM = \"SISTEM\",\r\n}\r\n\r\n/** Gizlilik seçenekleri */\r\nexport type TurGizlilik =\r\n | \"Admin\"\r\n | \"Herkese Açık\"\r\n | \"Hiçkimse\"\r\n | \"Takipleştiklerinizle\"\r\n | \"Takip Edenlerle\"\r\n | \"Takip Ettiklerinizle\"\r\n | \"Listedekilerle\"\r\n | \"Listedekiler Hariç\"\r\n | \"Seçilen Gruplarla\"\r\n | \"Seçilen Gruplar Hariç\"\r\n | \"Sadece Ben\"\r\n | \"Sistem\"\r\n | \"Uygulama\";\r\n\r\nexport const TurGizlilikBilgi: Record = {\r\n \"Admin\": { simge: \"🛠️\", simgeSinif: \"user shield\", aciklama: \"Yalnızca yöneticiler görebilir\" },\r\n \"Herkese Açık\": { simge: \"🌍\", simgeSinif: \"globe europe\", aciklama: \"Paylaşımınız Tüm Sistemde Herkes Tarafından Görünür\" },\r\n \"Hiçkimse\": { simge: \"🚫\", simgeSinif: \"eye slash\", aciklama: \"Kimse Göremez\" },\r\n \"Takipleştiklerinizle\": { simge: \"👥\", simgeSinif: \"people arrows\", aciklama: \"Sizi Takip Edenler ve Ettikleriniz Görebilir\" },\r\n \"Takip Edenlerle\": { simge: \"🚶🏽‍♂️\", simgeSinif: \"people arrows\", aciklama: \"Sizi Takip Edenlere Görünür\" },\r\n \"Takip Ettiklerinizle\": { simge: \"👀\", simgeSinif: \"people arrows\", aciklama: \"Takip Ettiklerinize Görünür\" },\r\n \"Listedekilerle\": { simge: \"📝\", simgeSinif: \"clipboard list\", aciklama: \"Sadece Listede Seçtiklerinize Görünür\" },\r\n \"Listedekiler Hariç\": { simge: \"📜\", simgeSinif: \"headphones\", aciklama: \"Listede Seçtikleriniz Hariç Herkese Görünür\" },\r\n \"Seçilen Gruplarla\": { simge: \"👨‍👨‍👦‍👦\", simgeSinif: \"users\", aciklama: \"Seçtiğiniz Grup Üyelerine Görünür\" },\r\n \"Seçilen Gruplar Hariç\": { simge: \"👨‍👦‍👦\", simgeSinif: \"assistive listening systems\", aciklama: \"Seçtiğiniz Gruplar Hariç Herkese Görünür\" },\r\n \"Sadece Ben\": { simge: \"🔒\", simgeSinif: \"eye slash\", aciklama: \"Sadece Siz Görebilirsiniz\" },\r\n \"Sistem\": { simge: \"💾\", simgeSinif: \"centos\", aciklama: \"Sistem İçin Görünür\" },\r\n \"Uygulama\": { simge: \"📱\", simgeSinif: \"mobile alternate\", aciklama: \"Sadece Uygulama Kapsamında Görünür\" },\r\n};\r\n\r\n\r\n\r\n/** Etiket Modeli */\r\nexport interface IEtiket {\r\n renkYazi?: string;\r\n renkArka?: string;\r\n simge?: string;\r\n degeri?: string;\r\n saltOkunur?: boolean;\r\n}\r\n\r\n/** Yüz Etiketleme */\r\nexport interface IYuzEtiketi {\r\n id: string;\r\n x: number; // % sol kenardan (0-100)\r\n y: number; // % üst kenardan (0-100)\r\n w: number; // % genişlik (0-100)\r\n h: number; // % yükseklik (0-100)\r\n kisiId?: string; // sistem kullanıcısı ise _id\r\n soyagaciKisiId?: string; // soyağacı kişisi ise soyAgaciKisiler._id\r\n kisiIsmi: string; // her zaman dolu\r\n resimUrl?: string; // soyağacı kişisinin profil resmi URL'i\r\n}\r\n\r\n/** Ek Dosya Türleri */\r\nexport enum IEkTuru {\r\n YOK = 'YOK',\r\n ACIKLAMA = 'ACIKLAMA',\r\n RESIM = 'RESIM',\r\n VIDEO = 'VIDEO',\r\n SES = 'SES',\r\n YOUTUBE = 'YOUTUBE',\r\n REFERANS = 'REFERANS',\r\n REFERANSSAYFA = 'REFERANSSAYFA',\r\n YAPAYZEKA = 'YAPAYZEKA',\r\n DOSYA = 'DOSYA',\r\n FIKOGL = 'FIKOGL',\r\n FIKOGLS = 'FIKOGLS',\r\n FIKOOPGL = 'FIKOOPGL',\r\n FIKOOPGLv1 = 'FIKOOPGLv1',\r\n FIKOWRL = 'FIKOWRL',\r\n STL = 'STL',\r\n DXF = 'DXF',\r\n KONUM = 'KONUM',\r\n ANKET = 'ANKET',\r\n SORU = 'SORU',\r\n REKLAM = 'REKLAM',\r\n UYARDOKUM = 'UYARDOKUM',\r\n EKREFERANS = 'EKREFERANS',\r\n UYGULAMAICERIK = 'UYGULAMAICERIK',\r\n}\r\n\r\n/** Ek Dosya Yapısı */\r\nexport interface IEk {\r\n turu?: IEkTuru;\r\n _id?: string;\r\n ismi?: string;\r\n tipi?: string;\r\n sahip?: string;\r\n bilgiler?: any;\r\n boyut?: number;\r\n kokDosya?: any;\r\n kokDosyaObjectUrl?: string;\r\n rota?: string;\r\n parametreler?: IParametre[];\r\n uygulama?: string;\r\n vt?: IVT | IUyarVT;\r\n yol?: IYollar | IUyarYollar;\r\n konum?: any;\r\n rid?: string; // KartReferansId\r\n resimid?: string; // KartReferansId\r\n isleniyor?: { evet: boolean, [key: string]: any };\r\n transkript?: string;\r\n transkriptSegmentleri?: { start: number; end: number; text: string }[];\r\n yuzEtiketleri?: IYuzEtiketi[];\r\n yuzEtiketGosterim?: 'hover' | 'surekli' | 'liste' | 'kapali';\r\n bilesen?: string;\r\n bilesenGorunum?: string;\r\n}\r\n\r\n/** İçerik */\r\nexport interface IIcerik {\r\n _id?: string;\r\n ek?: IEk;\r\n aciklama?: string;\r\n html?: string;\r\n sifre?: string;\r\n}\r\n\r\n/** Veri Tabanı Tablo Kodları */\r\nexport type IVT =\r\n | 'FikoYT.sistem.hataliGirisler'\r\n | 'FikoYT.sistem.basariliGirisler'\r\n | 'FikoYT.sistem.yapilanCikislar'\r\n | 'FikoYT.sistem.baglantilar'\r\n | 'FikoYT.sistem.hareketler'\r\n\r\n | 'FikoYT.sistem.gruplar'\r\n\r\n | 'FikoYT.sistem.takipler'\r\n\r\n | 'FikoYT.sistem.aileBaglari'\r\n\r\n | 'FikoYT.sistem'\r\n\r\n | 'FikoYT.sistem.firmalar'\r\n | 'FikoYT.sistem.firma.personeller'\r\n | 'FikoYT.sistem.firma.departmanlar'\r\n | 'FikoYT.sistem.firma.yetkiler'\r\n | 'FikoYT.sistem.cihazlar'\r\n | 'FikoYT.sistem.cihaz.olaylar'\r\n | 'FikoYT.sistem.cihaz.komutlar'\r\n | 'FikoYT.sistem.cihaz.tetikleyiciler'\r\n | 'FikoYT.sistem.cihaz.tipler'\r\n | 'FikoYT.sistem.denetim'\r\n | 'FikoYT.sistem.giris_cikis'\r\n | 'FikoYT.sistem.ajanlar'\r\n | 'FikoYT.sistem.gorevler'\r\n | 'FikoYT.sistem.bildirimler'\r\n | 'FikoYT.sistem.mesajlar'\r\n | 'FikoYT.sistem.soketler'\r\n | 'FikoYT.sistem.teklifler'\r\n | 'FikoYT.sistem.siparisler'\r\n | 'FikoYT.sistem.kare_kodlar'\r\n | 'FikoYT.sistem.parametreSetleri'\r\n | 'FikoYT.sistem.mail.mesajlar'\r\n | 'FikoYT.sistem.mail.hesaplar'\r\n | 'FikoYT.sistem.mail.audit'\r\n\r\n ;\r\n\r\n\r\n\r\n/** İfade Türleri */\r\nexport enum IIfadeTuru {\r\n BEGENDI = 'BEGENDI', // 👍 Beğendi\r\n BEGENME = 'BEGENME', // 👎 Beğenmedi\r\n KALP = 'KALP', // ❤️ Sevdi\r\n GULDU = 'GULDU', // 😂 Güldü\r\n SASKIN = 'SASKIN', // 😮 Şaşırdı\r\n UZGUN = 'UZGUN', // 😢 Üzgün\r\n KIZGIN = 'KIZGIN', // 😡 Kızgın\r\n DUSUNUYOR = 'DUSUNUYOR', // 🤔 Düşünüyor\r\n}\r\n\r\nexport const IfadeBilgi: Record = {\r\n [IIfadeTuru.BEGENDI]: { simge: '👍', isim: 'Beğendi', renk: '#3b82f6' },\r\n [IIfadeTuru.BEGENME]: { simge: '👎', isim: 'Beğenmedi', renk: '#64748b' },\r\n [IIfadeTuru.KALP]: { simge: '❤️', isim: 'Sevdi', renk: '#ef4444' },\r\n [IIfadeTuru.GULDU]: { simge: '😂', isim: 'Güldü', renk: '#f59e0b' },\r\n [IIfadeTuru.SASKIN]: { simge: '😮', isim: 'Şaşırdı', renk: '#8b5cf6' },\r\n [IIfadeTuru.UZGUN]: { simge: '😢', isim: 'Üzgün', renk: '#6366f1' },\r\n [IIfadeTuru.KIZGIN]: { simge: '😡', isim: 'Kızgın', renk: '#dc2626' },\r\n [IIfadeTuru.DUSUNUYOR]: { simge: '🤔', isim: 'Düşünüyor', renk: '#10b981' },\r\n};\r\n\r\n/** İfade Kaydı */\r\nexport interface IIfade {\r\n sahip: string; // Kullanıcı ID\r\n turu: IIfadeTuru; // İfade türü\r\n tarih: Date; // İfade tarihi\r\n}\r\n\r\nexport type IYollar =\r\n /** NOT: Takipler */\r\n | 'FikoYT.sistem.takipler.takipEdildi'\r\n | 'FikoYT.sistem.takipler.takipciliktenCikildi'\r\n | 'FikoYT.sistem.takipler.takipBirakildi'\r\n\r\n | 'FikoYT.sistem.gruplar.kalem'\r\n\r\n | 'FikoYT.sistem.yazismalar.kalem'\r\n | 'FikoYT.sistem.mesajlar.kalem'\r\n\r\n | 'FikoYT.sistem.hareketler.kalem'\r\n | 'FikoYT.sistem.hareketler.begen'\r\n | 'FikoYT.sistem.hareketler.ifade'\r\n\r\n | 'FikoYT.sistem.istemci.log'\r\n\r\n | 'FikoYT.sistem.aileBaglari.kalem'\r\n | 'FikoYT.sistem.aileBaglari.onaylandi'\r\n | 'FikoYT.sistem.aileBaglari.reddedildi'\r\n\r\n | 'FikoYT.sistem.firmalar.*'\r\n | 'FikoYT.sistem.cihazlar.*'\r\n | 'FikoYT.sistem.denetim.*'\r\n | 'FikoYT.sistem.ajanlar.*'\r\n | 'FikoYT.sistem.ticaret.*'\r\n | 'FikoYT.sistem.iletisim.*'\r\n | 'FikoYT.sistem.parametreSetleri.*'\r\n ;\r\n\r\n\r\nexport type IUyarVT =\r\n | 'FikoYT.Uyar.projeler'\r\n | 'FikoYT.Uyar.firmalar'\r\n | 'FikoYT.Uyar.firmalar.personeller'\r\n | 'FikoYT.Uyar.teklifler'\r\n ;\r\n\r\nexport type IUyarYollar =\r\n | 'FikoYT.Uyar.firmalar.kalem'\r\n | 'FikoYT.Uyar.firmalar.personeller.kalem'\r\n | 'FikoYT.Uyar.teklifler.kalem'\r\n ;\r\n\r\n\r\n/** Kart Yapısı */\r\nexport interface IKart {\r\n _id?: string;\r\n _uid?: string;\r\n turu?: IKartTuru;\r\n vt?: IVT;\r\n yol?: IYollar;\r\n\r\n sahip?: string;\r\n\r\n gizlilik?: TurGizlilik;\r\n gizlilikListe?: any[];\r\n\r\n etiketler?: IEtiket[];\r\n kisiler?: string[];\r\n\r\n icerikler?: IIcerik[];\r\n\r\n silindi?: boolean;\r\n\r\n hareketler?: IKayitHareket[];\r\n\r\n uygulama?: string[];\r\n\r\n parametreler?: IParametre[];\r\n\r\n begenenler?: string[];\r\n begenmeSayisi?: number;\r\n\r\n ifadeler?: IIfade[]; // Tüm ifadeler\r\n ifadeSayilari?: Record; // İfade türlerine göre sayılar\r\n\r\n ayarlar?: Record;\r\n\r\n tarih?: Date;\r\n\r\n veri?: T;\r\n\r\n konum?: any;\r\n\r\n dosyalar?: IEk[];\r\n\r\n /** Düzenlenme tarihi */\r\n duzenlenmeTarihi?: Date;\r\n\r\n /** Taslak mı */\r\n taslakMi?: boolean;\r\n\r\n /** Hangi şablondan oluşturuldu */\r\n sablonId?: string;\r\n\r\n /** Yorum/alt kart sayısı (cache) */\r\n yorumSayisi?: number;\r\n\r\n /** YeFikola (repost) sayısı */\r\n yeFikolaSayisi?: number;\r\n\r\n /** Sabitlenmiş mi (üste pin) */\r\n sabitlendi?: boolean;\r\n}\r\n","import { IAlanI } from \"./IAlan\";\r\nimport { IEk, IUyarVT, IUyarYollar, IVT, IYollar } from \"./IKart.interface\";\r\n\r\n/** Doğruluk Durumları */\r\nexport type Dogruluk = 'Doğru' | 'Yanlış' | 'Bilinmiyor';\r\n\r\n/** Parametre Türleri */\r\nexport type ITurParametre =\r\n | 'Yazı' | 'Yazı Alanı' | 'Parola' | 'Sayı' | 'Doğruluk' | 'Onay' | 'Anahtar'\r\n | 'Tarih' | 'Tarih Saat' | 'Ay' | 'Hafta' | 'Saat'\r\n | 'Resim' | 'Video' | 'Dosya' | 'Ses' | 'XYZ'\r\n | 'Grup' | 'Para' | 'Liste' | 'Tablo'\r\n | 'KareKod' | 'BarKod' | '2liSatır' | '3lüSatır' | 'Sekme' | 'Açılır Kutu' | 'Simgeli Başlık';\r\n\r\n/** Parametre Değer Tipi */\r\nexport type IParametreDegerTuru =\r\n | IParametre\r\n | IParametre[]\r\n | IKokParametre[]\r\n | IKokParametre[]\r\n | IKokParametre\r\n | IKokParametre\r\n | string\r\n | number\r\n | Date\r\n | { x: number, y: number, z: number }\r\n | any;\r\n\r\nexport interface IParametreKontrol {\r\n fn?: string | ((form: any, itm: any) => boolean);\r\n renk?: string;\r\n mesaj?: string;\r\n}\r\n\r\n\r\nexport interface IParametreAyarlar {\r\n [key: string]: any;\r\n sadeceOkunur?: boolean;\r\n gorunur?: boolean;\r\n zorunlu?: boolean;\r\n solSimge?: \"search\" | \"users\" | string;\r\n arama?: boolean;\r\n min?: number | Date;\r\n maks?: number | Date;\r\n adim?: number;\r\n format?: string;\r\n satirSayisi?: number\r\n}\r\n\r\n/** Parametrelerin temel arayüzü */\r\nexport interface IKokParametre {\r\n turu: Tturu;\r\n baslik?: string;\r\n ismi: string;\r\n yerTutucu?: string;\r\n aciklama?: string;\r\n altAciklama?: string;\r\n ipucu?: string;\r\n degeri?: Tdeger;\r\n\r\n ayarlar?: IParametreAyarlar;\r\n kontroller?: IParametreKontrol[];\r\n hatalar?: { mesaj?: string; renk?: string }[];\r\n uyarilar?: { mesaj?: string; renk?: string }[];\r\n\r\n yetkiler?: {\r\n gorebilir?: string[];\r\n degistirebilir?: string[];\r\n silebilir?: string[];\r\n }\r\n\r\n alan?: IAlanI;\r\n\r\n mesgul?: boolean;\r\n}\r\n\r\n/** Her parametre bu arayüzü uygular */\r\nexport interface IParametre extends IKokParametre { }\r\n\r\n/** Örnek parametre türleri */\r\ninterface IAyarlarOrtak {\r\n zorunlu?: boolean;\r\n solSimge?: string;\r\n format?: string;\r\n min?: number | Date;\r\n maks?: number | Date;\r\n adim?: number;\r\n}\r\n\r\n// Parametre ayarları detaylandırılmış versiyonlar\r\ninterface IYaziAyarlar extends IAyarlarOrtak { satirSayisi?: number; }\r\ninterface IParolaAyarlar extends IAyarlarOrtak { }\r\ninterface ISayiAyarlar extends IAyarlarOrtak { }\r\ninterface IDogrulukAyarlar extends IAyarlarOrtak { }\r\ninterface IOnayAyarlar extends IAyarlarOrtak { }\r\ninterface IAnahtarAyarlar extends IAyarlarOrtak { }\r\ninterface ITarihAyarlar extends IAyarlarOrtak { }\r\ninterface ITarihSaatAyarlar extends IAyarlarOrtak { }\r\ninterface IAyAyarlar extends IAyarlarOrtak { }\r\ninterface IHaftaAyarlar extends IAyarlarOrtak { }\r\ninterface ISaatAyarlar extends IAyarlarOrtak { }\r\ninterface IResimAyarlar extends IAyarlarOrtak { kabulTipleri?: string[]; maksBoyutMb?: number; }\r\ninterface IVideoAyarlar extends IAyarlarOrtak { kabulTipleri?: string[]; maksBoyutMb?: number; }\r\ninterface ISesAyarlar extends IAyarlarOrtak { kabulTipleri?: string[]; maksBoyutMb?: number; }\r\ninterface IDosyaAyarlar extends IAyarlarOrtak { kabulTipleri?: string[]; maksBoyutMb?: number; }\r\ninterface IXYZAyarlar extends IAyarlarOrtak { }\r\ninterface IParaAyarlar extends IAyarlarOrtak { paraBirimi?: string; }\r\ninterface IListeAyarlar extends IAyarlarOrtak { secenekler?: (string | { etiket: string, deger: any })[]; coklu?: boolean; }\r\ninterface ITabloAyarlar extends IAyarlarOrtak { kolonlar?: string[]; }\r\ninterface IKareKodAyarlar extends IAyarlarOrtak { }\r\ninterface IBarKodAyarlar extends IAyarlarOrtak { }\r\ninterface IGrupAyarlar extends IAyarlarOrtak { }\r\ninterface ISekmeAyarlar extends IAyarlarOrtak { }\r\ninterface IIkiliSatirAyarlar extends IAyarlarOrtak { }\r\ninterface IUcluSatirAyarlar extends IAyarlarOrtak { }\r\ninterface IAcılırKutuAyarlar extends IAyarlarOrtak, IParametreAyarlar {\r\n liste?: any[];\r\n arama?: boolean;\r\n coklu?: boolean;\r\n silme?: boolean;\r\n secenekler?: (string | { etiket: string, deger: any })[];\r\n secenekItm?: string;\r\n fapiAyarlar?: {\r\n vt?: IUyarVT;\r\n yol?: IUyarYollar;\r\n sorgu?: string | { [key: string]: string };\r\n pipeFunc?: string;\r\n },\r\n olaylar?: {\r\n degisti?: string;\r\n secildi?: string;\r\n secimSilindi?: string;\r\n }\r\n}\r\n\r\ninterface ISimgeAyarlar extends IAyarlarOrtak, IParametreAyarlar {\r\n boyut?: number;\r\n renk?: string;\r\n sekil?: 'Kare' | 'Yuvarlak' | 'Yuvarlak Köşe';\r\n}\r\n\r\n\r\n// Parametre tipleri\r\nexport type IYaziParametre = IKokParametre & { ayarlar?: IYaziAyarlar };\r\nexport type IParolaParametre = IKokParametre & { ayarlar?: IParolaAyarlar };\r\nexport type ISayiParametre = IKokParametre & { ayarlar?: ISayiAyarlar };\r\nexport type IDogrulukParametre = IKokParametre & { ayarlar?: IDogrulukAyarlar };\r\nexport type IOnayParametre = IKokParametre & { ayarlar?: IOnayAyarlar };\r\nexport type IAnahtarParametre = IKokParametre & { ayarlar?: IAnahtarAyarlar };\r\nexport type ITarihParametre = IKokParametre & { ayarlar?: ITarihAyarlar };\r\nexport type ITarihSaatParametre = IKokParametre & { ayarlar?: ITarihSaatAyarlar };\r\nexport type IAyParametre = IKokParametre & { ayarlar?: IAyAyarlar };\r\nexport type IHaftaParametre = IKokParametre & { ayarlar?: IHaftaAyarlar };\r\nexport type ISaatParametre = IKokParametre & { ayarlar?: ISaatAyarlar };\r\nexport type IResimParametre = IKokParametre & { ayarlar?: IResimAyarlar };\r\nexport type IVideoParametre = IKokParametre & { ayarlar?: IVideoAyarlar };\r\nexport type ISesParametre = IKokParametre & { ayarlar?: ISesAyarlar };\r\nexport type IDosyaParametre = IKokParametre & { ayarlar?: IDosyaAyarlar };\r\nexport type IXYZParametre = IKokParametre<{ x: number, y: number, z: number }, \"XYZ\"> & { ayarlar?: IXYZAyarlar };\r\nexport type IGrupParametre = IKokParametre & { ayarlar?: IGrupAyarlar };\r\nexport type ISekmeParametre = IKokParametre & { ayarlar?: ISekmeAyarlar };\r\nexport type IParaParametre = IKokParametre & { ayarlar?: IParaAyarlar };\r\nexport type IListeParametre = IKokParametre & { ayarlar?: IListeAyarlar };\r\nexport type ITabloParametre = IKokParametre[], \"Tablo\"> & { ayarlar?: ITabloAyarlar };\r\nexport type IKareKodParametre = IKokParametre & { ayarlar?: IKareKodAyarlar };\r\nexport type IBarKodParametre = IKokParametre & { ayarlar?: IBarKodAyarlar };\r\nexport type IIkiliSatirParametre = IKokParametre & { ayarlar?: IIkiliSatirAyarlar };\r\nexport type IUcluSatirParametre = IKokParametre & { ayarlar?: IUcluSatirAyarlar };\r\nexport type IAcılırKutuParametre = IKokParametre & { ayarlar?: IAcılırKutuAyarlar };\r\nexport type ISimgeliBaslikParametre = IKokParametre<{\r\n simge?: string;\r\n baslik?: string;\r\n altBaslik?: string;\r\n}, \"Simgeli Başlık\"> & { ayarlar?: ISimgeAyarlar };\r\n\r\n// Tüm parametreleri içeren birleşik tip\r\nexport type IParametreTumu =\r\n | IYaziParametre\r\n | IParolaParametre\r\n | ISayiParametre\r\n | IDogrulukParametre\r\n | IOnayParametre\r\n | IAnahtarParametre\r\n | ITarihParametre\r\n | ITarihSaatParametre\r\n | IAyParametre\r\n | IHaftaParametre\r\n | ISaatParametre\r\n | IResimParametre\r\n | IVideoParametre\r\n | ISesParametre\r\n | IDosyaParametre\r\n | IXYZParametre\r\n | IGrupParametre\r\n | ISekmeParametre\r\n | IParaParametre\r\n | IListeParametre\r\n | ITabloParametre\r\n | IKareKodParametre\r\n | IBarKodParametre\r\n | IIkiliSatirParametre\r\n | IUcluSatirParametre\r\n | IAcılırKutuParametre\r\n ;\r\n\r\n\r\n\r\n/** AYRAÇ: */\r\n/** AYRAÇ: Kontrolleri kontrol eder */\r\nexport async function kontrolDeger(itm: any, parametreler: IParametreTumu[]): Promise {\r\n // Kontroller yoksa geçerli say\r\n if (!('kontroller' in itm)) {\r\n return true;\r\n }\r\n\r\n // Hataları sıfırla\r\n itm.hatalar = [];\r\n itm.uyarilar = [];\r\n\r\n // Tüm kontrolleri çalıştır\r\n for (const key of Object.keys(itm.kontroller)) {\r\n const knt = itm.kontroller[key];\r\n // console.log(knt);\r\n // Kontrol fonksiyonu async veya sync olabilir\r\n const tsCode = `\r\n (function (form: any, itm: any) {\r\n ${knt.fn}\r\n })\r\n `;\r\n const jsCode = tsCode.replace(/:\\s*(?:any|string|number|boolean|void|never|object|unknown)(?:\\[\\])?\\s*/g, ' ');\r\n\r\n eval(jsCode)(parametreler, itm); // çalıştır\r\n // console.log(result);\r\n\r\n // const sonuc = await Promise.resolve(knt.fn(this.parametreler, itm));\r\n }\r\n\r\n // Değişiklikleri Angular'a bildir\r\n // this.CD.detectChanges();\r\n\r\n // Kontroller sonucu\r\n return itm.hatalar.length === 0;\r\n}\r\n\r\n\r\n/** Tüm parametreleri paralel kontrol eder ve hataları döner */\r\nexport async function tumHatalariniAl(parametreler: IParametreTumu[]): Promise<{ hatalar: any[]; uyarilar: any[] }> {\r\n const sonuc = { hatalar: [] as any[], uyarilar: [] as any[] };\r\n\r\n const gez = async (itm: any) => {\r\n await kontrolDeger(itm, parametreler);\r\n\r\n if (itm.hatalar && itm.hatalar.length > 0) {\r\n sonuc.hatalar.push({\r\n parametre: itm,\r\n hatalar: itm.hatalar\r\n });\r\n }\r\n\r\n if (itm.uyarilar && itm.uyarilar.length > 0) {\r\n sonuc.uyarilar.push({\r\n parametre: itm,\r\n uyarilar: itm.uyarilar\r\n });\r\n }\r\n\r\n // Alt parametreler\r\n if (itm.turu === 'Grup' || itm.turu === 'Sekme') {\r\n const altDegerler = itm.degeri || [];\r\n for (const alt of altDegerler) {\r\n await gez(alt);\r\n }\r\n } else if (itm.turu === '2liSatır') {\r\n await gez(itm.degeri.solTaraf);\r\n await gez(itm.degeri.sagTaraf);\r\n } else if (itm.turu === '3luSatır') {\r\n await gez(itm.degeri.solTaraf);\r\n await gez(itm.degeri.ortaTaraf);\r\n await gez(itm.degeri.sagTaraf);\r\n }\r\n };\r\n\r\n for (const param of parametreler) {\r\n await gez(param);\r\n }\r\n\r\n return sonuc;\r\n}\r\n\r\n/** Parametreleri json ve dosyalar olmak üzere ayırır */\r\n\r\nexport function parametreAyikla(veri: Array): { json: any; dosyalar: { _id: string; dosya: any; objectUrl ?: string } [] } {\r\n const rslt: any = {};\r\n const dosyalar: { _id: string; dosya: any; objectUrl?: string }[] = [];\r\n\r\n const gez = (element: any): any => {\r\n if (element.turu === \"Grup\") {\r\n return this._toFormData(element.degeri).json;\r\n } else if (element.turu === \"Sekme\") {\r\n const sekmeObj: any = {};\r\n if (element.ayarlar?.jsonGrup) {\r\n element.degeri.forEach((sekmeElement: any) => {\r\n sekmeObj[sekmeElement.ismi] = this._toFormData(sekmeElement.degeri).json;\r\n });\r\n } else {\r\n element.degeri.forEach((sekmeElement: any) => {\r\n Object.assign(sekmeObj, this._toFormData(sekmeElement.degeri).json);\r\n });\r\n }\r\n return sekmeObj;\r\n } else if (element.turu === \"2liSatır\") {\r\n return {\r\n [element.degeri.solTaraf.ismi]: element.degeri.solTaraf.degeri,\r\n [element.degeri.sagTaraf.ismi]: element.degeri.sagTaraf.degeri\r\n };\r\n } else if (element.turu === \"3luSatır\") {\r\n return {\r\n [element.degeri.solTaraf.ismi]: element.degeri.solTaraf.degeri,\r\n [element.degeri.ortaTaraf.ismi]: element.degeri.ortaTaraf.degeri,\r\n [element.degeri.sagTaraf.ismi]: element.degeri.sagTaraf.degeri\r\n };\r\n } else {\r\n // 📌 Dosya kriteri: degeri içinde id + dosya + objectUrl olması\r\n if (element.degeri && element.degeri.dosya && element.degeri._id && element.degeri.objectUrl) {\r\n // const id = new FikoYTId().toString();\r\n // element.degeri.id = id; // id atanıyor\r\n\r\n dosyalar.push({\r\n _id: element.degeri._id.toString(),\r\n dosya: element.degeri.dosya,\r\n objectUrl: element.degeri.objectUrl\r\n });\r\n\r\n return element.degeri._id.toString(); // JSON'a sadece id yazılacak\r\n }\r\n\r\n return element.degeri;\r\n }\r\n };\r\n\r\n Array.from(veri).forEach(element => {\r\n rslt[element.ismi] = gez(element);\r\n });\r\n\r\n return { json: rslt, dosyalar };\r\n}","import { Pipe, PipeTransform } from '@angular/core';\n\ntype birim = 'bayt' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB';\ntype kusuratBirimi = {\n [u in birim]: number;\n};\n\nconst VarsayilanBirimler: kusuratBirimi = {\n bayt: 0,\n KB: 0,\n MB: 1,\n GB: 1,\n TB: 2,\n PB: 2\n};\n\n@Pipe({ name: 'toDosyaBoyutu', standalone: true })\nexport class DosyaBoyutuPipe implements PipeTransform {\n private readonly birimler: birim[] = ['bayt', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\n transform(bayt: number = 0, kusurat: number | kusuratBirimi = VarsayilanBirimler): [number, string] {\n if (isNaN(parseFloat(String(bayt))) || !isFinite(bayt)) return [-1, '?'];\n\n let birimIndex = 0;\n\n while (bayt >= 1024) {\n bayt /= 1024;\n birimIndex++;\n }\n\n const unit = this.birimler[birimIndex];\n\n if (typeof kusurat === 'number') {\n return [parseFloat(bayt.toFixed(+ kusurat)), unit];// `${bayt.toFixed( + kusurat)} ${unit}`;\n }\n return [parseFloat(bayt.toFixed(kusurat[unit])), unit];//`${bayt.toFixed(kusurat[unit])} ${unit}`;\n }\n}\n/**\n * \n */\n\nconst FILE_SIZE_UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\nconst FILE_SIZE_UNITS_LONG = ['Bytes', 'Kilobytes', 'Megabytes', 'Gigabytes', 'Pettabytes', 'Exabytes', 'Zettabytes', 'Yottabytes'];\n\n@Pipe({\n name: 'formatFileSize',standalone:true\n})\nexport class FormatFileSizePipe implements PipeTransform {\n transform(sizeInBytes: number, longForm: boolean): string {\n const units = longForm\n ? FILE_SIZE_UNITS_LONG\n : FILE_SIZE_UNITS;\n\n let power = Math.round(Math.log(sizeInBytes) / Math.log(1024));\n power = Math.min(power, units.length - 1);\n\n const size = sizeInBytes / Math.pow(1024, power); // size in new units\n const formattedSize = Math.round(size * 100) / 100; // keep up to 2 decimals\n const unit = units[power];\n\n return `${formattedSize} ${unit}`;\n }\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n AfterViewInit,\n inject\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\n\n@Directive({\n selector: \"[uzunBas]\",\n standalone: true,\n})\nexport class UzunBasDirective implements OnDestroy, AfterViewInit {\n private eventSubscribe!: Subscription;\n threshold = 1000;\n private elementRef = inject(ElementRef);\n private touchStartListener: (() => void) | null = null;\n private touchMoveListener: (() => void) | null = null;\n private isProcessing = false; // Prevent multiple simultaneous executions\n\n // Hareket toleransı - piksel cinsinden (küçük titremeleri yoksay)\n private readonly HAREKET_TOLERANSI = 15;\n private baslangicX = 0;\n private baslangicY = 0;\n private hareketTakibiAktif = false;\n\n // @Output()\n // uzunBasildi = new EventEmitter();\n\n constructor() {\n // const mousedown = fromEvent(elementRef.nativeElement, \"mousedown\").pipe(\n // filter(event => event.button == 0), // Only allow left button (Primary button)\n // map((event) => true) // turn on threshold counter\n // );\n // const touchstart = fromEvent(elementRef.nativeElement, 'touchstart').pipe(map(() => true));\n // const touchEnd = fromEvent(elementRef.nativeElement, 'touchend').pipe(map(() => false));\n // const mouseup = fromEvent(window, \"mouseup\").pipe(\n // filter(event => event.button == 0), // Only allow left button (Primary button)\n // map(() => false) // reset threshold counter\n // );\n // this.eventSubscribe = merge(mousedown, mouseup, touchstart, touchEnd)\n // .pipe(\n // switchMap(state =>\n // state ? timer(this.threshold, 100) : of(null)\n // ),\n // filter(value => value as any)\n // )\n // .subscribe(() => this.uzunBasildi.emit());\n }\n\n\n ngAfterViewInit(): void {\n // Passive touchstart listener to improve performance\n const touchStartHandler = (e: TouchEvent) => this.onTouchstart(e);\n this.elementRef.nativeElement.addEventListener('touchstart', touchStartHandler, { passive: true });\n this.touchStartListener = () => {\n this.elementRef.nativeElement.removeEventListener('touchstart', touchStartHandler);\n };\n\n // Passive touchmove listener to improve performance (replaces @HostListener)\n const touchMoveHandler = (e: TouchEvent) => this.onTouchmove(e);\n this.elementRef.nativeElement.addEventListener('touchmove', touchMoveHandler, { passive: true });\n this.touchMoveListener = () => {\n this.elementRef.nativeElement.removeEventListener('touchmove', touchMoveHandler);\n };\n }\n\n ngOnDestroy(): void {\n if (this._timeout) {\n clearTimeout(this._timeout);\n }\n if (this.eventSubscribe) {\n this.eventSubscribe.unsubscribe();\n }\n if (this.touchStartListener) {\n this.touchStartListener();\n }\n if (this.touchMoveListener) {\n this.touchMoveListener();\n }\n this.isProcessing = false;\n }\n\n @Output()\n uzunBasildi = new EventEmitter();\n\n @Input()\n uzunBasSure = 500;\n\n private _timeout: any;\n\n @HostListener('pointerdown', ['$event']) onMouseDown(e: PointerEvent) {\n if (this._timeout)\n clearTimeout(this._timeout);\n\n if (e.button == 0) {\n // Başlangıç pozisyonunu kaydet\n this.baslangicX = e.clientX;\n this.baslangicY = e.clientY;\n this.hareketTakibiAktif = true;\n\n this._timeout = setTimeout(() => {\n // Prevent multiple simultaneous executions\n if (this.isProcessing) return;\n this.isProcessing = true;\n this.hareketTakibiAktif = false;\n\n // Use requestAnimationFrame for non-blocking execution\n requestAnimationFrame(() => {\n try {\n this.uzunBasildi.emit(e);\n } finally {\n // Reset processing flag after emission completes\n setTimeout(() => {\n this.isProcessing = false;\n }, 50); // Small delay to prevent rapid-fire executions\n }\n });\n }, this.uzunBasSure);\n }\n }\n\n onTouchstart(e: TouchEvent) {\n if (this._timeout)\n clearTimeout(this._timeout);\n\n // Başlangıç pozisyonunu kaydet (touch için)\n if (e.touches.length > 0) {\n this.baslangicX = e.touches[0].clientX;\n this.baslangicY = e.touches[0].clientY;\n this.hareketTakibiAktif = true;\n }\n\n this._timeout = setTimeout(() => {\n // Prevent multiple simultaneous executions\n if (this.isProcessing) return;\n this.isProcessing = true;\n this.hareketTakibiAktif = false;\n\n // Use requestAnimationFrame for non-blocking execution\n requestAnimationFrame(() => {\n try {\n this.uzunBasildi.emit(e);\n } finally {\n // Reset processing flag after emission completes\n setTimeout(() => {\n this.isProcessing = false;\n }, 50); // Small delay to prevent rapid-fire executions\n }\n });\n }, this.uzunBasSure);\n }\n\n @HostListener('pointermove', ['$event']) onPointermove(e: PointerEvent) {\n // Sadece hareket takibi aktifse kontrol et\n if (!this.hareketTakibiAktif || !this._timeout) return;\n\n // Hareketin tolerans sınırını aşıp aşmadığını kontrol et\n const deltaX = Math.abs(e.clientX - this.baslangicX);\n const deltaY = Math.abs(e.clientY - this.baslangicY);\n\n // Sadece tolerans aşıldığında timeout'u iptal et\n if (deltaX > this.HAREKET_TOLERANSI || deltaY > this.HAREKET_TOLERANSI) {\n clearTimeout(this._timeout);\n this._timeout = null;\n this.hareketTakibiAktif = false;\n }\n }\n\n\n @HostListener('touchend') onTouchend() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n this.hareketTakibiAktif = false;\n }\n\n @HostListener('mouseup') onMouseUp() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n this.hareketTakibiAktif = false;\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n this.hareketTakibiAktif = false;\n }\n\n // Passive touchmove handler (called from ngAfterViewInit listener)\n onTouchmove(e: TouchEvent) {\n // Sadece hareket takibi aktifse kontrol et\n if (!this.hareketTakibiAktif || !this._timeout || e.touches.length === 0) return;\n\n // Hareketin tolerans sınırını aşıp aşmadığını kontrol et\n const deltaX = Math.abs(e.touches[0].clientX - this.baslangicX);\n const deltaY = Math.abs(e.touches[0].clientY - this.baslangicY);\n\n // Sadece tolerans aşıldığında timeout'u iptal et\n if (deltaX > this.HAREKET_TOLERANSI || deltaY > this.HAREKET_TOLERANSI) {\n clearTimeout(this._timeout);\n this._timeout = null;\n this.hareketTakibiAktif = false;\n }\n }\n}","import { Directive, EventEmitter, OnInit, Output } from '@angular/core';\n\n@Directive({\n selector: '[onInit]',\n standalone: true,\n})\nexport class OnInitDirective implements OnInit {\n @Output('onInit') initEvent = new EventEmitter();\n\n ngOnInit(): void {\n this.initEvent.emit();\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\n\n@Pipe({\n name: 'sanitizeHtml',\n standalone:true,\n })\n export class SanitizeHtmlPipe implements PipeTransform {\n \n constructor(private _sanitizer:DomSanitizer) {\n }\n \n transform(v:string):SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n }","import { Pipe, PipeTransform } from '@angular/core';\n\nenum Taraf {\n YUKARI = 'up',\n ASAGI = 'down'\n}\n\n@Pipe({ name: 'yuvarla', standalone: true })\nexport class YuvarlaPipe implements PipeTransform {\n /**\n *\n * @param value - some number\n * @param digits - number of digits after the decimal point\n * @param dir - round up or down (floor/ceil)\n * @returns {string} formatted number with a fixed number of digits after the decimal point\n */\n transform(value: number, digits: number = 2, dir: Taraf = Taraf.YUKARI): number {\n const round = dir === Taraf.ASAGI ? Math.floor : Math.ceil;\n return round(value * (10 ** digits)) / (10 ** digits);\n }\n}","import { Injectable, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nexport type AssetType = 'script' | 'style';\nexport interface Asset { url: string; type: AssetType; }\n\ninterface LoadedAsset {\n element: HTMLScriptElement | HTMLLinkElement;\n count: number;\n type: AssetType;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AssetLoaderService {\n private loadedAssets = new Map();\n private assetBundles = new Map();\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n /** Tekil varlık yükleme (async, tekrar yüklemez, sayaçlı) */\n loadOnce(url: string, type: AssetType): Promise {\n if (this.loadedAssets.has(url)) {\n this.loadedAssets.get(url)!.count++;\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n let element: HTMLScriptElement | HTMLLinkElement;\n\n if (type === 'script') {\n element = this.document.createElement('script');\n (element as HTMLScriptElement).src = url;\n (element as HTMLScriptElement).async = true;\n (element as HTMLScriptElement).defer = true;\n element.type = 'text/javascript';\n element.onload = () => resolve();\n element.onerror = () => reject(new Error(`Script load failed: ${url}`));\n this.document.body.appendChild(element);\n } else {\n element = this.document.createElement('link');\n element.rel = 'stylesheet';\n element.type = 'text/css';\n (element as HTMLLinkElement).href = url;\n element.onload = () => resolve();\n element.onerror = () => reject(new Error(`Style load failed: ${url}`));\n this.document.head.appendChild(element);\n }\n\n this.loadedAssets.set(url, { element, count: 1, type });\n });\n }\n\n /** Tekil varlık kaldırma (sayaçlı, DOM'dan siler) */\n unload(url: string): void {\n const asset = this.loadedAssets.get(url);\n if (!asset) return;\n\n asset.count--;\n if (asset.count <= 0) {\n if (asset.type === 'script') {\n this.document.body.removeChild(asset.element);\n } else {\n this.document.head.removeChild(asset.element);\n }\n this.loadedAssets.delete(url);\n }\n }\n\n /** Yüklenmiş mi? */\n isLoaded(url: string): boolean {\n return this.loadedAssets.has(url);\n }\n\n /** Toplu asset yükleme (Promise.all) */\n loadBatch(assets: Asset[]): Promise {\n return Promise.all(assets.map(a => this.loadOnce(a.url, a.type)));\n }\n\n /** Toplu asset kaldırma */\n unloadBatch(urls: string[]): void {\n urls.forEach(url => this.unload(url));\n }\n\n /** Asset bundle tanımlama */\n defineBundle(name: string, assets: Asset[]): void {\n this.assetBundles.set(name, assets);\n }\n\n /** Tanımlı bundle'ı yükle */\n loadBundle(name: string): Promise {\n const assets = this.assetBundles.get(name);\n if (!assets) return Promise.reject(new Error(`Bundle \"${name}\" not found.`));\n return this.loadBatch(assets);\n }\n\n /** Tanımlı bundle'ı kaldır */\n unloadBundle(name: string): void {\n const assets = this.assetBundles.get(name);\n if (!assets) return;\n this.unloadBatch(assets.map(a => a.url));\n }\n\n /** Preload özelliği – dosyayı arka planda indir ama yükleme */\n preloadAsset(url: string, type: AssetType): void {\n const link = this.document.createElement('link');\n link.rel = 'preload';\n link.as = type === 'script' ? 'script' : 'style';\n link.href = url;\n link.crossOrigin = 'anonymous'; // Opsiyonel\n this.document.head.appendChild(link);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, model, input, signal, ViewContainerRef, ViewChild, Injector, inject, OnDestroy, ComponentRef, untracked } from '@angular/core';\nimport { DinamikBilesenRegistry } from './dinamik-bilesen.registry';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'dinamik-bilesen',\n standalone: true,\n imports: [CommonModule, NzSpinModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (yukleniyor() && !aktifVarMi()) {\n \n }\n \n @if (hata()) {\n
{{ hata() }}
\n }\n `,\n styles: [`\n :host { display: contents; }\n .dinamik-bilesen-hata {\n color: var(--py-tehlike, #ff4d4f);\n padding: 8px;\n font-size: 12px;\n }\n `]\n})\nexport class DinamikBilesenRendererComponent implements OnDestroy {\n bilesenId = input.required();\n gorunum = input.required();\n parametreler = model();\n\n yukleniyor = signal(false);\n hata = signal(null);\n aktifVarMi = signal(false);\n\n @ViewChild('hedef', { read: ViewContainerRef, static: true }) hedefRef!: ViewContainerRef;\n\n private injector = inject(Injector);\n private aktifRef: ComponentRef | null = null;\n private compCache = new Map>();\n private cikisSub: Subscription | null = null;\n private yuklemeAbort: AbortController | null = null;\n /** Child → renderer güncelleme döngüsünü önlemek için guard */\n private _childGuncelliyorRendererı = false;\n\n private cacheKey = computed(() => `${this.bilesenId()}_${this.gorunum()}`);\n\n constructor() {\n effect(() => {\n const id = this.bilesenId();\n const gor = this.gorunum();\n const key = this.cacheKey();\n\n untracked(() => {\n if (!id || !gor) return;\n\n const mevcutKey = this.aktifRef ? `${this.aktifRef.instance?.['__bilesenId'] || ''}_${this.aktifRef.instance?.['__gorunum'] || ''}` : '';\n if (key === mevcutKey) {\n this.parametreleriGuncelle(this.parametreler());\n return;\n }\n\n this.bilesenYukle(id, gor, key);\n });\n });\n\n effect(() => {\n const params = this.parametreler();\n untracked(() => {\n // Child kendi güncellemesini yaptıysa renderer tekrar push etmez\n if (this._childGuncelliyorRendererı) return;\n if (this.aktifRef) this.parametreleriGuncelle(params);\n });\n });\n }\n\n private async bilesenYukle(id: string, gorunum: string, key: string) {\n this.yuklemeAbort?.abort();\n const abort = this.yuklemeAbort = new AbortController();\n\n this.yukleniyor.set(true);\n this.hata.set(null);\n\n try {\n const cached = this.compCache.get(key);\n if (cached) {\n if (cached.hostView.destroyed) {\n this.compCache.delete(key);\n } else {\n if (abort.signal.aborted) return;\n this.aktifRefDegistir(cached, id, gorunum);\n return;\n }\n }\n\n const comp = await DinamikBilesenRegistry.goruntumAl(id, gorunum);\n if (abort.signal.aborted) return;\n\n if (!comp) {\n this.hata.set(`'${id}' bileşeninde '${gorunum}' görünümü bulunamadı`);\n return;\n }\n\n const ref = this.hedefRef.createComponent(comp, { injector: this.injector });\n ref.instance['__bilesenId'] = id;\n ref.instance['__gorunum'] = gorunum;\n\n this.compCache.set(key, ref);\n this.aktifRefDegistir(ref, id, gorunum);\n } catch (e: any) {\n if (abort.signal.aborted) return;\n this.hata.set(`Bileşen yüklenemedi: ${e?.message || e}`);\n } finally {\n if (!abort.signal.aborted) this.yukleniyor.set(false);\n }\n }\n\n private aktifRefDegistir(ref: ComponentRef, id: string, gorunum: string) {\n this.cikisSubTemizle();\n while (this.hedefRef.length > 0) this.hedefRef.detach(0);\n this.hedefRef.insert(ref.hostView);\n\n this.aktifRef = ref;\n this.aktifVarMi.set(true);\n this.parametreleriGuncelle(this.parametreler());\n this.cikislariBagla();\n }\n\n private parametreleriGuncelle(params: any) {\n if (!this.aktifRef) return;\n const instance = this.aktifRef.instance;\n\n if ('parametreler' in instance) {\n if (instance.parametreler?.set) {\n instance.parametreler.set(params);\n } else {\n this.aktifRef.setInput('parametreler', params);\n }\n return;\n }\n\n // 'parametreler' inputu yoksa anahtarları tekil input'lara eşle (HMI widget'ları)\n if (params && typeof params === 'object' && !Array.isArray(params)) {\n for (const [anahtar, deger] of Object.entries(params)) {\n if (anahtar in instance) {\n try { this.aktifRef.setInput(anahtar, deger); } catch { }\n }\n }\n }\n }\n\n private cikislariBagla() {\n if (!this.aktifRef) return;\n const instance = this.aktifRef.instance;\n\n // 1) EventEmitter tabanlı çıkış (eski desen: @Output parametrelerChange)\n if (instance.parametrelerChange?.subscribe) {\n this.cikisSub = instance.parametrelerChange.subscribe((yeniDeger: any) => {\n this.parametreler.set(yeniDeger);\n });\n return;\n }\n\n // 2) model() signal tabanlı çıkış (Angular 17+: model() — OutputEmitterRef)\n // model() sinyali aynı zamanda bir WritableSignal'dir; değişimini effect() ile izleriz.\n if (typeof instance.parametreler === 'function' && instance.parametreler.set) {\n // effect() ile child signal'i izle, değişince renderer'ın model'ini güncelle\n const childEffect = effect(() => {\n const yeniDeger = instance.parametreler();\n untracked(() => {\n this._childGuncelliyorRendererı = true;\n this.parametreler.set(yeniDeger);\n this._childGuncelliyorRendererı = false;\n });\n }, { injector: this.injector, allowSignalWrites: true });\n // cleanup için Subscription benzeri bir sarmalayıcı oluştur\n this.cikisSub = { unsubscribe: () => childEffect.destroy() } as any;\n }\n }\n\n private cikisSubTemizle() {\n this.cikisSub?.unsubscribe();\n this.cikisSub = null;\n }\n\n ngOnDestroy() {\n this.yuklemeAbort?.abort();\n this.cikisSubTemizle();\n this.compCache.forEach(ref => {\n if (!ref.hostView.destroyed) ref.destroy();\n });\n this.compCache.clear();\n this.aktifRef = null;\n }\n}\n","import { Injectable, OnDestroy, signal } from '@angular/core';\n\nexport interface IKartGuncelleme {\n kartId: string;\n veri: any;\n kaynak?: string;\n}\n\nexport interface ISunucuKartOlayi {\n tip: 'yeni' | 'guncellendi' | 'silindi';\n kartId: string;\n kaynakKid?: string;\n}\n\nconst KANAL_ADI = 'FikoYT.kart.canli-guncelleme';\nconst SUNUCU_OLAYI = 'FikoYT.paylasim.kart.degisti';\n\n@Injectable({ providedIn: 'root' })\nexport class CanliGuncellemeService implements OnDestroy {\n kartGuncellendi = signal(null);\n kartSilindi = signal(null);\n kartYeni = signal(null);\n /** Sunucudan (Socket.IO) gelen kart değişiklik olayı — diğer kullanıcı/cihazlar */\n sunucuOlayi = signal(null);\n\n private kanal: BroadcastChannel | null = null;\n private tabId = Math.random().toString(36).slice(2, 8);\n private socketBagliMi = false;\n private socketSub: { unsubscribe(): void } | null = null;\n\n constructor() {\n this.kanalBaslat();\n }\n\n /** Socket.IO istemcisini bağlar (FikoYT.io). Tekrarlı çağrı güvenlidir. */\n socketBagla(io: { fromEvent(olay: string): { subscribe(cb: (v: any) => void): any } } | null | undefined) {\n if (this.socketBagliMi || !io?.fromEvent) return;\n try {\n this.socketSub = io.fromEvent(SUNUCU_OLAYI).subscribe((v: any) => {\n if (!v?.tip || !v?.kartId) return;\n this.sunucuOlayi.set({ tip: v.tip, kartId: v.kartId, kaynakKid: v.kaynakKid });\n });\n this.socketBagliMi = true;\n } catch (e) {\n console.warn('Canlı güncelleme socket bağlantısı kurulamadı', e);\n }\n }\n\n private kanalBaslat() {\n try {\n this.kanal = new BroadcastChannel(KANAL_ADI);\n this.kanal.onmessage = (e: MessageEvent) => {\n const { tip, veri, kaynak } = e.data || {};\n if (kaynak === this.tabId) return;\n switch (tip) {\n case 'guncellendi':\n this.kartGuncellendi.set({ kartId: veri.kartId, veri: veri.kart, kaynak });\n break;\n case 'silindi':\n this.kartSilindi.set(veri.kartId);\n break;\n case 'yeni':\n this.kartYeni.set(veri.kart);\n break;\n }\n };\n } catch { }\n }\n\n guncellemeYayin(kartId: string, kart: any) {\n this.kartGuncellendi.set({ kartId, veri: kart });\n this.kanal?.postMessage({ tip: 'guncellendi', veri: { kartId, kart }, kaynak: this.tabId });\n }\n\n silindiYayin(kartId: string) {\n this.kartSilindi.set(kartId);\n this.kanal?.postMessage({ tip: 'silindi', veri: { kartId }, kaynak: this.tabId });\n }\n\n yeniYayin(kart: any) {\n this.kartYeni.set(kart);\n this.kanal?.postMessage({ tip: 'yeni', veri: { kart }, kaynak: this.tabId });\n }\n\n ngOnDestroy() {\n this.kanal?.close();\n this.kanal = null;\n this.socketSub?.unsubscribe();\n this.socketSub = null;\n this.socketBagliMi = false;\n }\n}\n","import { Injectable, effect, inject } from '@angular/core';\nimport { FikoYTRequestService } from '@/src/app/shared/services/fikoyt-request.service';\nimport { DinamikBilesenRegistry } from './dinamik-bilesen.registry';\nimport { CanliGuncellemeService } from './canli-guncelleme.service';\n\nconst DB = 'FikoYT.sistem.DB.hareketler.aggregate';\nconst TTL = 30_000;\n\n@Injectable({ providedIn: 'root' })\nexport class AltKartHesaplamaService {\n private req = inject(FikoYTRequestService);\n private cache = new Map; zaman: number }>();\n\n constructor() {\n // Kart değişince hesap cache'ini geçersiz kıl (bayat veri önleme)\n const canli = inject(CanliGuncellemeService);\n effect(() => {\n const g = canli.kartGuncellendi();\n if (g?.kartId) this.cacheSifirla(g.kartId);\n });\n effect(() => {\n const id = canli.kartSilindi();\n if (id) this.cacheSifirla(id);\n });\n effect(() => {\n const olay = canli.sunucuOlayi();\n if (olay?.kartId) this.cacheSifirla(olay.kartId);\n });\n }\n\n async hesapla(kartId: string, bilesenId: string): Promise> {\n const cacheKey = `${kartId}_${bilesenId}`;\n const cached = this.cache.get(cacheKey);\n if (cached && Date.now() - cached.zaman < TTL) return cached.veri;\n\n const tanim = await DinamikBilesenRegistry.yukle(bilesenId);\n const hesaplamalar = (tanim as any)?.hesaplamalar;\n if (!hesaplamalar?.pipeline?.length) return {};\n\n const pipeline = JSON.parse(\n JSON.stringify(hesaplamalar.pipeline).replace(/\\{\\{kartId\\}\\}/g, kartId)\n );\n\n try {\n const sonuc = await this.req.aggregate(DB, pipeline);\n const veri = this.sonucuIsle(sonuc);\n this.cache.set(cacheKey, { veri, zaman: Date.now() });\n return veri;\n } catch (e) {\n console.warn('[AltKartHesaplama] Aggregate hatası:', bilesenId, e);\n return {};\n }\n }\n\n private sonucuIsle(sonuc: any[]): Record {\n if (!sonuc?.length) return {};\n const result: Record = {};\n for (const item of sonuc) {\n if (item._id != null) {\n result[item._id] = item;\n } else {\n Object.assign(result, item);\n }\n }\n return result;\n }\n\n cacheSifirla(kartId?: string) {\n if (kartId) {\n for (const key of this.cache.keys()) {\n if (key.startsWith(kartId + '_')) this.cache.delete(key);\n }\n } else {\n this.cache.clear();\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nexport interface IBildirimTercihleri {\n sesAcik: boolean;\n masaustuAcik: boolean;\n tabSayaciAcik: boolean;\n epostaAcik: boolean;\n pushAcik: boolean;\n sessizSaatAcik: boolean;\n sessizBaslangic: string;\n sessizBitis: string;\n olayTercihleri: Record;\n oncelikKurallari: {\n acil: { ses: boolean; masaustu: boolean; eposta: boolean };\n normal: { ses: boolean; masaustu: boolean; eposta: boolean };\n dusuk: { ses: boolean; masaustu: boolean; eposta: boolean };\n };\n}\n\nconst STORAGE_KEY = 'fikoyt-bildirim-tercihleri';\n\nconst VARSAYILAN: IBildirimTercihleri = {\n sesAcik: true,\n masaustuAcik: true,\n tabSayaciAcik: true,\n epostaAcik: false,\n pushAcik: true,\n sessizSaatAcik: false,\n sessizBaslangic: '22:00',\n sessizBitis: '08:00',\n olayTercihleri: {\n kart_olusturuldu: true,\n kart_guncellendi: true,\n alt_kart_eklendi: true,\n yorum_eklendi: true,\n atandi: true,\n kart_silindi: true,\n bahsedildi: true,\n hatirlatma: true,\n },\n oncelikKurallari: {\n acil: { ses: true, masaustu: true, eposta: true },\n normal: { ses: true, masaustu: true, eposta: false },\n dusuk: { ses: false, masaustu: false, eposta: false },\n },\n};\n\n@Injectable({ providedIn: 'root' })\nexport class BildirimTercihleriService {\n tercihler = signal({ ...VARSAYILAN });\n\n constructor() { this.yukle(); }\n\n private yukle() {\n try {\n const kayitli = localStorage.getItem(STORAGE_KEY);\n if (kayitli) {\n const parsed = JSON.parse(kayitli);\n this.tercihler.set({\n ...VARSAYILAN, ...parsed,\n olayTercihleri: { ...VARSAYILAN.olayTercihleri, ...parsed.olayTercihleri },\n oncelikKurallari: {\n acil: { ...VARSAYILAN.oncelikKurallari.acil, ...parsed.oncelikKurallari?.acil },\n normal: { ...VARSAYILAN.oncelikKurallari.normal, ...parsed.oncelikKurallari?.normal },\n dusuk: { ...VARSAYILAN.oncelikKurallari.dusuk, ...parsed.oncelikKurallari?.dusuk },\n },\n });\n }\n } catch {}\n }\n\n oncelikKuraliAl(oncelik: 'acil' | 'normal' | 'dusuk'): { ses: boolean; masaustu: boolean; eposta: boolean } {\n return this.tercihler().oncelikKurallari?.[oncelik] ?? VARSAYILAN.oncelikKurallari[oncelik];\n }\n\n kaydet(tercih: Partial) {\n this.tercihler.update(t => ({ ...t, ...tercih }));\n localStorage.setItem(STORAGE_KEY, JSON.stringify(this.tercihler()));\n }\n\n olayTercihKaydet(olay: string, aktif: boolean) {\n this.tercihler.update(t => ({\n ...t,\n olayTercihleri: { ...t.olayTercihleri, [olay]: aktif }\n }));\n localStorage.setItem(STORAGE_KEY, JSON.stringify(this.tercihler()));\n }\n\n olayAktifMi(olay: string): boolean {\n return this.tercihler().olayTercihleri?.[olay] !== false;\n }\n\n sessizSaatteMi(): boolean {\n if (!this.tercihler().sessizSaatAcik) return false;\n const now = new Date();\n const saat = now.getHours() * 60 + now.getMinutes();\n const baslangic = this.saatDakikayaCevir(this.tercihler().sessizBaslangic);\n const bitis = this.saatDakikayaCevir(this.tercihler().sessizBitis);\n if (baslangic > bitis) return saat >= baslangic || saat < bitis;\n return saat >= baslangic && saat < bitis;\n }\n\n private saatDakikayaCevir(saat: string): number {\n const [s, d] = (saat || '00:00').split(':').map(Number);\n return (s || 0) * 60 + (d || 0);\n }\n}\n","import { Injectable, inject, signal, computed, effect, DestroyRef, Injector } from '@angular/core';\nimport { FikoYTService } from '@/src/service/fikoyt.service';\nimport { FikoYTIstekKok } from '@/src/service/modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service';\nimport { BildirimTercihleriService } from './bildirim-tercihleri.service';\n\nexport type BildirimOlayTipi = 'kart_olusturuldu' | 'kart_guncellendi' | 'alt_kart_eklendi' | 'yorum_eklendi' | 'atandi' | 'bahsedildi' | 'kart_silindi' | 'hatirlatma' | 'duyuru';\n\nexport type BildirimOnceligi = 'acil' | 'normal' | 'dusuk';\n\nexport interface IBildirim {\n _id?: string;\n aliciId: string;\n gondericId?: string;\n gondericIsim?: string;\n olay: BildirimOlayTipi;\n kartId?: string;\n kartBaslik?: string;\n mesaj: string;\n okudu: boolean;\n tarih: string;\n oncelik?: BildirimOnceligi;\n okunduTarih?: string;\n hatirlatmaTarihi?: string;\n hatirlatmaAktif?: boolean;\n epostaGonderildi?: boolean;\n}\n\nexport interface IBildirimFiltre {\n olay?: BildirimOlayTipi;\n okudu?: boolean;\n}\n\nexport interface IOlayTipBilgi {\n ikon: string;\n etiket: string;\n renk: string;\n nzRenk: string;\n}\n\nexport interface IBildirimGrubu {\n kartId: string;\n kartBaslik?: string;\n bildirimler: IBildirim[];\n sonBildirim: IBildirim;\n toplam: number;\n okunmamis: number;\n}\n\nconst DB_AGGREGATE = 'FikoYT.sistem.DB.hareketler.aggregate';\nconst DB_GUNCELLE = 'FikoYT.sistem.DB.hareketler.guncelle';\nconst DB_SIL = 'FikoYT.sistem.DB.hareketler.sil';\nconst DB_EKLE = 'FikoYT.sistem.DB.hareketler.ekle';\nconst VT_BILDIRIM = 'FikoYT.sistem.bildirimler';\n\nconst OLAY_TIPI_HARITASI: Record = {\n kart_olusturuldu: { ikon: 'file-add', etiket: 'Oluşturuldu', renk: '#1890ff', nzRenk: 'blue' },\n kart_guncellendi: { ikon: 'edit', etiket: 'Güncellendi', renk: '#fa8c16', nzRenk: 'orange' },\n alt_kart_eklendi: { ikon: 'paper-clip', etiket: 'Alt Kart', renk: '#13c2c2', nzRenk: 'cyan' },\n yorum_eklendi: { ikon: 'message', etiket: 'Yorum', renk: '#52c41a', nzRenk: 'green' },\n atandi: { ikon: 'user', etiket: 'Atandı', renk: '#722ed1', nzRenk: 'purple' },\n bahsedildi: { ikon: 'highlight', etiket: 'Bahsedildi', renk: '#eb2f96', nzRenk: 'magenta' },\n kart_silindi: { ikon: 'delete', etiket: 'Silindi', renk: '#ff4d4f', nzRenk: 'red' },\n hatirlatma: { ikon: 'clock-circle', etiket: 'Hatırlatma', renk: '#faad14', nzRenk: 'gold' },\n duyuru: { ikon: 'notification', etiket: 'Duyuru', renk: '#2f54eb', nzRenk: 'geekblue' },\n};\n\nconst SON_GORULME_KEY = 'fikoyt-bildirim-son-gorulme';\nconst SAYFA_LIMITI = 20;\n\n@Injectable({ providedIn: 'root' })\nexport class BildirimService {\n private fikoYT = inject(FikoYTService);\n private destroyRef = inject(DestroyRef);\n private injector = inject(Injector);\n tercihSvc = inject(BildirimTercihleriService);\n\n bildirimler = signal([]);\n okunmamisSayisi = signal(0);\n yukleniyor = signal(false);\n dahaFazlaVar = signal(true);\n private mevcutSayfa = 0;\n\n grupluBildirimler = computed(() => {\n const liste = this.bildirimler();\n const gruplar = new Map();\n for (const b of liste) {\n const key = b.kartId || b._id || '';\n if (!gruplar.has(key)) gruplar.set(key, []);\n gruplar.get(key)!.push(b);\n }\n return Array.from(gruplar.entries()).map(([kartId, items]) => ({\n kartId,\n kartBaslik: items[0].kartBaslik,\n bildirimler: items,\n sonBildirim: items[0],\n toplam: items.length,\n okunmamis: items.filter(b => !b.okudu).length,\n }));\n });\n\n private hatirlatmaInterval: any = null;\n\n constructor() {\n this.socketDinle();\n this.bildirimleriYukle();\n this.pushBaslat();\n effect(() => { this.tabBasliginiGuncelle(); });\n const hatirlatmaTimeout = setTimeout(() => this.hatirlatmalariKontrolEt(), 3000);\n this.hatirlatmaInterval = setInterval(() => this.hatirlatmalariKontrolEt(), 60_000);\n this.destroyRef.onDestroy(() => {\n clearTimeout(hatirlatmaTimeout);\n clearInterval(this.hatirlatmaInterval);\n });\n }\n\n private socketDinle() {\n try {\n const sub = this.fikoYT.io.fromEvent('FikoYT.sistem.io.bildirim.yeni').subscribe(bildirim => {\n if (!bildirim) return;\n if (bildirim._id && this.bildirimler().some(b => b._id === bildirim._id)) return;\n this.bildirimler.update(liste => [bildirim, ...liste]);\n this.okunmamisSayisi.update(s => s + 1);\n if (this.tercihSvc.olayAktifMi(bildirim.olay)) {\n this.oncelikBazliBildirimUygula(bildirim);\n }\n });\n this.destroyRef.onDestroy(() => sub.unsubscribe());\n } catch {}\n }\n\n private oncelikBazliBildirimUygula(bildirim: IBildirim) {\n const oncelik = bildirim.oncelik || 'normal';\n const kural = this.tercihSvc.oncelikKuraliAl(oncelik);\n if (!this.tercihSvc.sessizSaatteMi()) {\n if (kural.ses && this.tercihSvc.tercihler().sesAcik) this.bildirimSesiCal();\n if (kural.masaustu && this.tercihSvc.tercihler().masaustuAcik) this.masausteBildirimGoster(bildirim);\n }\n }\n\n private get aktifKullaniciId(): string | null {\n return this.fikoYT.kimlik.aktifKullaniciJson()?._id ?? null;\n }\n\n olayTipBilgi(olay: string): IOlayTipBilgi {\n return OLAY_TIPI_HARITASI[olay] || { ikon: 'bell', etiket: olay, renk: '#8c8c8c', nzRenk: 'default' };\n }\n\n private bildirimSesiCal() {\n try {\n const ctx = new AudioContext();\n const osc = ctx.createOscillator();\n const gain = ctx.createGain();\n osc.connect(gain);\n gain.connect(ctx.destination);\n osc.frequency.setValueAtTime(800, ctx.currentTime);\n osc.frequency.setValueAtTime(600, ctx.currentTime + 0.1);\n gain.gain.setValueAtTime(0.3, ctx.currentTime);\n gain.gain.exponentialRampToValueAtTime(0.01, ctx.currentTime + 0.3);\n osc.start(ctx.currentTime);\n osc.stop(ctx.currentTime + 0.3);\n } catch {}\n }\n\n private async masausteBildirimGoster(bildirim: IBildirim) {\n if (!('Notification' in window)) return;\n if (Notification.permission === 'default') {\n await Notification.requestPermission();\n }\n if (Notification.permission !== 'granted') return;\n try {\n const n = new Notification(bildirim.gondericIsim || 'FikoYT', {\n body: bildirim.mesaj,\n icon: '/simgeler/logo.webp',\n tag: bildirim._id || 'bildirim',\n silent: true,\n });\n n.onclick = () => { window.focus(); n.close(); };\n setTimeout(() => n.close(), 5000);\n } catch {}\n }\n\n private tabBasliginiGuncelle() {\n if (!this.tercihSvc.tercihler().tabSayaciAcik) return;\n const sayi = this.okunmamisSayisi();\n const orijinalBaslik = document.title.replace(/^\\(\\d+\\)\\s*/, '');\n document.title = sayi > 0 ? `(${sayi}) ${orijinalBaslik}` : orijinalBaslik;\n }\n\n async bildirimleriYukle(filtre?: IBildirimFiltre): Promise {\n if (!this.aktifKullaniciId) return;\n this.yukleniyor.set(true);\n this.mevcutSayfa = 0;\n try {\n const match: any = { vt: VT_BILDIRIM, aliciId: this.aktifKullaniciId };\n if (filtre?.olay) match.olay = filtre.olay;\n if (filtre?.okudu !== undefined) match.okudu = filtre.okudu;\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_AGGREGATE });\n istek.parametreler = { aggregate: [\n { $match: match }, { $sort: { tarih: -1 } }, { $limit: SAYFA_LIMITI }\n ]};\n await istek.isteSync();\n const liste = (istek.cevap?.sonuc || []) as IBildirim[];\n this.bildirimler.set(liste);\n this.dahaFazlaVar.set(liste.length >= SAYFA_LIMITI);\n const istek2 = new FikoYTIstekKok({ metod: 'POST', komut: DB_AGGREGATE });\n istek2.parametreler = { aggregate: [\n { $match: { vt: VT_BILDIRIM, aliciId: this.aktifKullaniciId, okudu: false } },\n { $count: 'sayi' }\n ]};\n await istek2.isteSync();\n this.okunmamisSayisi.set((istek2.cevap?.sonuc as any)?.[0]?.sayi || 0);\n } catch {} finally { this.yukleniyor.set(false); }\n }\n\n async dahaFazlaYukle(filtre?: IBildirimFiltre): Promise {\n if (!this.aktifKullaniciId || this.yukleniyor()) return;\n this.mevcutSayfa++;\n this.yukleniyor.set(true);\n try {\n const match: any = { vt: VT_BILDIRIM, aliciId: this.aktifKullaniciId };\n if (filtre?.olay) match.olay = filtre.olay;\n if (filtre?.okudu !== undefined) match.okudu = filtre.okudu;\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_AGGREGATE });\n istek.parametreler = { aggregate: [\n { $match: match }, { $sort: { tarih: -1 } },\n { $skip: this.mevcutSayfa * SAYFA_LIMITI }, { $limit: SAYFA_LIMITI }\n ]};\n await istek.isteSync();\n const yeniler = (istek.cevap?.sonuc || []) as IBildirim[];\n this.bildirimler.update(liste => [...liste, ...yeniler]);\n this.dahaFazlaVar.set(yeniler.length >= SAYFA_LIMITI);\n } catch {} finally { this.yukleniyor.set(false); }\n }\n\n async okunduIsaretle(bildirimId: string): Promise {\n const bildirim = this.bildirimler().find(b => b._id === bildirimId);\n if (!bildirim || bildirim.okudu) return;\n const okunduTarih = new Date().toISOString();\n this.bildirimler.update(liste => liste.map(b => b._id === bildirimId ? { ...b, okudu: true, okunduTarih } : b));\n this.okunmamisSayisi.update(s => Math.max(0, s - 1));\n try {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_GUNCELLE });\n const fd = new FormData();\n fd.append('req_body', JSON.stringify({ filter: { _id: bildirimId, vt: VT_BILDIRIM }, veri: { okudu: true, okunduTarih } }));\n istek.parametreler = fd;\n await istek.isteSync();\n this.bildirimLogKaydet(bildirimId, 'okundu');\n } catch {}\n }\n\n async okunmadiIsaretle(bildirimId: string): Promise {\n const bildirim = this.bildirimler().find(b => b._id === bildirimId);\n if (!bildirim || !bildirim.okudu) return;\n this.bildirimler.update(liste => liste.map(b => b._id === bildirimId ? { ...b, okudu: false, okunduTarih: undefined } : b));\n this.okunmamisSayisi.update(s => s + 1);\n try {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_GUNCELLE });\n const fd = new FormData();\n fd.append('req_body', JSON.stringify({ filter: { _id: bildirimId, vt: VT_BILDIRIM }, veri: { okudu: false } }));\n istek.parametreler = fd;\n await istek.isteSync();\n this.bildirimLogKaydet(bildirimId, 'okunmadi_yapildi');\n } catch {}\n }\n\n async tumunuOkunduYap(): Promise {\n if (!this.aktifKullaniciId) return;\n const okunduTarih = new Date().toISOString();\n this.bildirimler.update(liste => liste.map(b => ({ ...b, okudu: true, okunduTarih: b.okunduTarih || okunduTarih })));\n this.okunmamisSayisi.set(0);\n try {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_GUNCELLE });\n const fd = new FormData();\n fd.append('req_body', JSON.stringify({ filter: { vt: VT_BILDIRIM, aliciId: this.aktifKullaniciId, okudu: false }, veri: { okudu: true, okunduTarih }, updateMany: true }));\n istek.parametreler = fd;\n await istek.isteSync();\n this.bildirimLogKaydet('toplu', 'tumunu_okundu_yap');\n } catch {}\n }\n\n async bildirimSil(bildirimId: string): Promise {\n this.bildirimler.update(liste => liste.filter(b => b._id !== bildirimId));\n try {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_SIL });\n const fd = new FormData();\n fd.append('req_body', JSON.stringify({ _id: bildirimId, vt: VT_BILDIRIM }));\n istek.parametreler = fd;\n await istek.isteSync();\n this.bildirimLogKaydet(bildirimId, 'silindi');\n } catch {}\n }\n\n async topluSil(idler: string[]): Promise {\n if (!idler.length) return;\n this.bildirimler.update(liste => liste.filter(b => !idler.includes(b._id!)));\n try {\n for (const id of idler) {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_SIL });\n const fd = new FormData();\n fd.append('req_body', JSON.stringify({ _id: id, vt: VT_BILDIRIM }));\n istek.parametreler = fd;\n await istek.isteSync();\n this.bildirimLogKaydet(id, 'silindi', 'toplu silme');\n }\n } catch {}\n }\n\n async bildirimGonder(aliciId: string, olay: BildirimOlayTipi, kartId: string, kartBaslik: string, mesaj: string, oncelik: 'acil' | 'normal' | 'dusuk' = 'normal'): Promise {\n const gondericId = this.aktifKullaniciId;\n const gondericIsim = this.fikoYT.kimlik.aktifKullaniciJson()?.isim || '';\n const yeni: any = {\n vt: VT_BILDIRIM, aliciId, gondericId: gondericId || undefined, gondericIsim, olay,\n kartId, kartBaslik, mesaj, okudu: false, tarih: new Date().toISOString(), oncelik,\n };\n try {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_EKLE });\n const fd = new FormData();\n fd.append('req_body', JSON.stringify(yeni));\n istek.parametreler = fd;\n await istek.isteSync();\n const kayitliId = istek.cevap?.sonuc?._id;\n if (kayitliId) yeni._id = kayitliId;\n try { this.fikoYT.io?.emit('FikoYT.sistem.io.bildirim', yeni); } catch {}\n if (kayitliId) this.bildirimLogKaydet(kayitliId, 'gonderildi', `alici: ${aliciId}, olay: ${olay}`);\n } catch {}\n }\n\n sonGorulmeKaydet() {\n localStorage.setItem(SON_GORULME_KEY, new Date().toISOString());\n }\n\n get sonGorulmeZamani(): string | null {\n return localStorage.getItem(SON_GORULME_KEY);\n }\n\n gondericBasHarfleri(isim?: string): string {\n if (!isim) return '?';\n const parcalar = isim.trim().split(/\\s+/).filter(p => p.length > 0);\n if (parcalar.length === 0) return '?';\n if (parcalar.length === 1) return parcalar[0][0].toUpperCase();\n return (parcalar[0][0] + parcalar[parcalar.length - 1][0]).toUpperCase();\n }\n\n async browserBildirimIzniIste() {\n if (!('Notification' in window)) return;\n if (Notification.permission === 'default') {\n const izin = await Notification.requestPermission();\n if (izin === 'granted') this.pushBaslat();\n }\n }\n\n private async pushBaslat(): Promise {\n try {\n const { PushService } = await import('./push.service');\n const pushSvc = this.injector.get(PushService);\n await pushSvc.aboneDurumuKontrol();\n if (pushSvc.destekleniyor() && !pushSvc.abone()) {\n if (Notification.permission === 'granted') {\n await pushSvc.aboneOl();\n }\n }\n } catch {}\n }\n\n async hatirlatmaOlustur(kartId: string, kartBaslik: string, hatirlatmaTarihi: string): Promise {\n if (!this.aktifKullaniciId) return;\n const yeni: any = {\n vt: VT_BILDIRIM,\n aliciId: this.aktifKullaniciId,\n gondericId: this.aktifKullaniciId,\n gondericIsim: this.fikoYT.kimlik.aktifKullaniciJson()?.isim || '',\n olay: 'hatirlatma',\n kartId, kartBaslik,\n mesaj: `\"${kartBaslik || 'Kart'}\" için hatırlatma`,\n okudu: false,\n tarih: new Date().toISOString(),\n oncelik: 'normal' as BildirimOnceligi,\n hatirlatmaTarihi,\n hatirlatmaAktif: true,\n };\n try {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_EKLE });\n const fd = new FormData();\n fd.append('req_body', JSON.stringify(yeni));\n istek.parametreler = fd;\n await istek.isteSync();\n } catch {}\n }\n\n private async hatirlatmalariKontrolEt(): Promise {\n if (!this.aktifKullaniciId) return;\n try {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_AGGREGATE });\n istek.parametreler = { aggregate: [\n { $match: {\n vt: VT_BILDIRIM,\n aliciId: this.aktifKullaniciId,\n olay: 'hatirlatma',\n hatirlatmaAktif: true,\n hatirlatmaTarihi: { $lte: new Date().toISOString() },\n }},\n { $limit: 10 },\n ]};\n await istek.isteSync();\n const hatirlatmalar = (istek.cevap?.sonuc || []) as IBildirim[];\n const mevcutIdler = new Set(this.bildirimler().map(b => b._id));\n for (const h of hatirlatmalar) {\n if (!mevcutIdler.has(h._id)) {\n this.bildirimler.update(liste => [h, ...liste]);\n this.okunmamisSayisi.update(s => s + 1);\n if (!this.tercihSvc.sessizSaatteMi()) {\n if (this.tercihSvc.tercihler().sesAcik) this.bildirimSesiCal();\n if (this.tercihSvc.tercihler().masaustuAcik) this.masausteBildirimGoster(h);\n }\n }\n if (h._id) {\n const guncIstek = new FikoYTIstekKok({ metod: 'POST', komut: DB_GUNCELLE });\n const fd = new FormData();\n fd.append('req_body', JSON.stringify({ filter: { _id: h._id }, veri: { hatirlatmaAktif: false } }));\n guncIstek.parametreler = fd;\n await guncIstek.isteSync();\n }\n }\n } catch {}\n }\n\n private bildirimLogKaydet(bildirimId: string, aksiyon: string, detay?: string) {\n try {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: DB_EKLE });\n const fd = new FormData();\n fd.append('req_body', JSON.stringify({\n vt: 'FikoYT.sistem.bildirim_loglari',\n bildirimId,\n kullaniciId: this.aktifKullaniciId,\n aksiyon,\n detay: detay || '',\n zaman: new Date().toISOString(),\n }));\n istek.parametreler = fd;\n istek.isteSync();\n } catch {}\n }\n\n static zamanOnce(tarih: string): string {\n const fark = Date.now() - new Date(tarih).getTime();\n const dk = Math.floor(fark / 60000);\n if (dk < 1) return 'Az önce';\n if (dk < 60) return dk + ' dk';\n const saat = Math.floor(dk / 60);\n if (saat < 24) return saat + ' saat';\n const gun = Math.floor(saat / 24);\n if (gun === 1) return 'Dün';\n if (gun < 7) return gun + ' gün';\n const t = new Date(tarih);\n return t.toLocaleDateString('tr-TR', { day: 'numeric', month: 'short' });\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nexport interface ITema {\n id: string;\n baslik: string;\n aciklama: string;\n onizlemeRenkler: [string, string, string];\n}\n\nexport interface ITemaZamanlama {\n acik: boolean;\n geceSaat: number;\n gunduzSaat: number;\n}\n\nconst ZAMANLAMA_KEY = 'fikoyt-tema-zamanlama';\n\n@Injectable({ providedIn: 'root' })\nexport class TemaService {\n private STORAGE_KEY = 'fikoyt-tema';\n private BOYUT_KEY = 'fikoyt-yazi-boyutu';\n\n aktifTema = signal('varsayilan');\n karanlikMod = signal(false);\n yaziBoyutu = signal(14);\n temaZamanlama = signal({ acik: false, geceSaat: 20, gunduzSaat: 7 });\n\n private zamanlamaInterval: any = null;\n\n temalar: ITema[] = [\n { id: 'varsayilan', baslik: 'Varsayılan', aciklama: 'Klasik FikoYT', onizlemeRenkler: ['#1890ff', '#f5f5f5', '#333'] },\n { id: 'okyanus', baslik: 'Okyanus', aciklama: 'Derin mavi tonları', onizlemeRenkler: ['#0077b6', '#caf0f8', '#023e8a'] },\n { id: 'orman', baslik: 'Orman', aciklama: 'Doğal yeşil tonları', onizlemeRenkler: ['#2d6a4f', '#d8f3dc', '#1b4332'] },\n { id: 'gunbatimi', baslik: 'Gün Batımı', aciklama: 'Sıcak turuncu tonları', onizlemeRenkler: ['#e85d04', '#fff3e0', '#6a040f'] },\n { id: 'mor-ruya', baslik: 'Mor Rüya', aciklama: 'Mistik mor tonları', onizlemeRenkler: ['#7b2cbf', '#f3e5f5', '#3c096c'] },\n { id: 'kuzey-isiklari', baslik: 'Kuzey Işıkları', aciklama: 'Aurora renkleri', onizlemeRenkler: ['#00b4d8', '#e0f7fa', '#0077b6'] },\n ];\n\n constructor() {\n this.yukle();\n this.zamanliTemaBaslat();\n }\n\n private yukle() {\n const kayitli = localStorage.getItem(this.STORAGE_KEY);\n if (kayitli) {\n try {\n const { tema, karanlik } = JSON.parse(kayitli);\n this.aktifTema.set(tema || 'varsayilan');\n this.karanlikMod.set(!!karanlik);\n } catch { /* bozuk veri */ }\n } else {\n const eskiKey = localStorage.getItem('fikoyt-tema-karanlik');\n if (eskiKey === '1') this.karanlikMod.set(true);\n }\n const boyut = localStorage.getItem(this.BOYUT_KEY);\n if (boyut) this.yaziBoyutu.set(parseInt(boyut) || 14);\n\n try {\n const zamKayitli = localStorage.getItem(ZAMANLAMA_KEY);\n if (zamKayitli) this.temaZamanlama.set({ ...this.temaZamanlama(), ...JSON.parse(zamKayitli) });\n } catch {}\n\n this.uygula();\n }\n\n temaDegistir(temaId: string) {\n this.aktifTema.set(temaId);\n this.kaydetVeUygula();\n }\n\n karanlikToggle() {\n this.karanlikMod.update(k => !k);\n this.kaydetVeUygula();\n }\n\n karanlikAyarla(deger: boolean) {\n this.karanlikMod.set(deger);\n this.kaydetVeUygula();\n }\n\n yaziBoyutuDegistir(boyut: number) {\n this.yaziBoyutu.set(boyut);\n localStorage.setItem(this.BOYUT_KEY, boyut.toString());\n document.documentElement.style.fontSize = boyut + 'px';\n }\n\n zamanlamaKaydet(zamanlama: Partial) {\n this.temaZamanlama.update(z => ({ ...z, ...zamanlama }));\n localStorage.setItem(ZAMANLAMA_KEY, JSON.stringify(this.temaZamanlama()));\n this.zamanliTemaKontrol();\n }\n\n private zamanliTemaBaslat() {\n this.zamanliTemaKontrol();\n this.zamanlamaInterval = setInterval(() => this.zamanliTemaKontrol(), 60_000);\n }\n\n private zamanliTemaKontrol() {\n const z = this.temaZamanlama();\n if (!z.acik) return;\n const saat = new Date().getHours();\n const geceVaktiMi = saat >= z.geceSaat || saat < z.gunduzSaat;\n if (geceVaktiMi && !this.karanlikMod()) {\n this.karanlikMod.set(true);\n this.kaydetVeUygula();\n } else if (!geceVaktiMi && this.karanlikMod()) {\n this.karanlikMod.set(false);\n this.kaydetVeUygula();\n }\n }\n\n private kaydetVeUygula() {\n localStorage.setItem(this.STORAGE_KEY, JSON.stringify({\n tema: this.aktifTema(),\n karanlik: this.karanlikMod()\n }));\n localStorage.setItem('fikoyt-tema-karanlik', this.karanlikMod() ? '1' : '0');\n this.uygula();\n }\n\n private uygula() {\n const body = document.body;\n const html = document.documentElement;\n this.temalar.forEach(t => {\n body.classList.remove('tema-' + t.id);\n html.classList.remove('tema-' + t.id);\n });\n body.classList.remove('tema-karanlik');\n html.classList.remove('tema-karanlik');\n\n const tema = this.aktifTema();\n if (tema !== 'varsayilan') {\n body.classList.add('tema-' + tema);\n html.classList.add('tema-' + tema);\n }\n if (this.karanlikMod()) {\n body.classList.add('tema-karanlik');\n html.classList.add('tema-karanlik');\n }\n\n document.documentElement.style.fontSize = this.yaziBoyutu() + 'px';\n }\n}\n","@if (FikoYT.kimlik.aktifKullaniciJson()) {\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"avatar\"\r\n\r\n \r\n {{ (FikoYT.kimlik.aktifKullaniciJson().isim?.[0] || '') + (FikoYT.kimlik.aktifKullaniciJson().soyIsim?.[0] || '') }}\r\n \r\n
\r\n
\r\n {{ FikoYT.kimlik.aktifKullaniciJson().isim }} {{ FikoYT.kimlik.aktifKullaniciJson().soyIsim }}\r\n {{ FikoYT.kimlik.aktifKullaniciJson()?.ePosta }}\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 (aktifSekme === 'profil') {\r\n\r\n \r\n
\r\n \r\n Internet\r\n \r\n \r\n Sunucu\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n 🖥️\r\n {{ FikoYT.kimlik.cihazlar().desktop }}\r\n Masaüstü\r\n
\r\n
\r\n 📱\r\n {{ FikoYT.kimlik.cihazlar().mobile }}\r\n Mobil\r\n
\r\n
\r\n 📟\r\n {{ FikoYT.kimlik.cihazlar().tablet }}\r\n Tablet\r\n
\r\n
\r\n ⚙️\r\n {{ FikoYT.kimlik.cihazlar().machine }}\r\n Makine\r\n
\r\n
\r\n\r\n @if (FikoYT.kimlik.aktifKullaniciJson()?.sonGiris) {\r\n
\r\n 🕓\r\n Son giriş: {{ zamanOnce(FikoYT.kimlik.aktifKullaniciJson().sonGiris) }}\r\n
\r\n }\r\n
\r\n 📍\r\n Toplam {{ toplamOturum }} aktif oturum\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 (aktifSekme === 'bildirimler') {\r\n\r\n
\r\n @if (bildirimSvc.bildirimler().length === 0) {\r\n
\r\n 🔕\r\n Bildirim yok\r\n
\r\n } @else {\r\n @for (b of bildirimSvc.bildirimler().slice(0, 5); track b._id || $index) {\r\n
\r\n \r\n {{ bildirimSvc.gondericBasHarfleri(b.gondericIsim) }}\r\n \r\n
\r\n @if (b.gondericIsim) {\r\n {{ b.gondericIsim }}\r\n }\r\n {{ b.mesaj }}\r\n {{ zamanOnce(b.tarih) }}\r\n
\r\n
\r\n @if (!b.okudu) {\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 Tüm Bildirimleri Gör\r\n →\r\n \r\n\r\n }\r\n\r\n \r\n @if (aktifSekme === 'ayarlar') {\r\n\r\n
\r\n \r\n
\r\n Tema\r\n
\r\n @for (tema of temaSvc.temalar; track tema.id) {\r\n \r\n }\r\n
\r\n
\r\n 🌙 Karanlık Mod\r\n \r\n
\r\n
\r\n 🕐 Otomatik Koyu/Açık\r\n \r\n
\r\n @if (temaSvc.temaZamanlama().acik) {\r\n
\r\n ☀️ {{ temaSvc.temaZamanlama().gunduzSaat }}:00 — 🌙 {{ temaSvc.temaZamanlama().geceSaat }}:00\r\n
\r\n }\r\n
\r\n\r\n \r\n
\r\n Yazı Boyutu\r\n
\r\n A\r\n \r\n A\r\n {{ temaSvc.yaziBoyutu() }}px\r\n
\r\n
\r\n\r\n \r\n
\r\n Görünüm\r\n
\r\n 🔤 Kompakt Yazı\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n Bildirimler\r\n
\r\n 🔊 Bildirim sesi\r\n \r\n
\r\n
\r\n 🔔 Masaüstü bildirimi\r\n \r\n
\r\n
\r\n 🔢 Tab sayacı\r\n \r\n
\r\n
\r\n 🌙 Sessiz Saatler\r\n \r\n
\r\n @if (tercihSvc.tercihler().sessizSaatAcik) {\r\n
\r\n \r\n —\r\n \r\n
\r\n }\r\n
\r\n\r\n \r\n
\r\n Olay Bildirimleri\r\n @for (tip of olayTipleri; track tip.olay) {\r\n
\r\n {{ tip.etiket }}\r\n \r\n
\r\n }\r\n
\r\n\r\n \r\n
\r\n Gizlilik\r\n
\r\n 🟢 Çevrimiçi Durumu\r\n \r\n
\r\n
\r\n 👁️ Profili Herkese Aç\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n Tüm Ayarlar\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 \r\n\r\n \r\n
\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\r\nimport { FikoYTKokBilesenComponent } from '../../../../kok-bilesen/kok-bilesen.component';\r\nimport { RouterLink, RouterModule } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BildirimService, IBildirim } from '../../../../servisler/bildirim.service';\r\nimport { BildirimTercihleriService } from '../../../../servisler/bildirim-tercihleri.service';\r\nimport { TemaService } from '../../../../servisler/tema.service';\r\n\r\n\r\n@Component({\r\n selector: 'fikoyt-diyalog-kullanici-menu',\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [FormsModule, RouterModule, RouterLink],\r\n templateUrl: \"./fikoyt-diyalog-kullanici-menu.component.html\",\r\n styleUrl: \"./fikoyt-diyalog-kullanici-menu.component.less\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FikoYTDiyalogKullaniciMenuComponent extends FikoYTKokBilesenComponent {\r\n\r\n aktifSekme: 'profil' | 'bildirimler' | 'ayarlar' = 'profil';\r\n\r\n get superYoneticiMi(): boolean {\r\n const k = this.FikoYT.kimlik.aktifKullaniciJson();\r\n const yetkiler: string[] = k?.yetkiler || k?.veri?.yetkiler || [];\r\n return yetkiler.some(y => y === 'Süper Yönetici' || y === 'Super Yonetici');\r\n }\r\n bildirimSvc = inject(BildirimService);\r\n tercihSvc = inject(BildirimTercihleriService);\r\n temaSvc = inject(TemaService);\r\n olayTipleri = [\r\n { olay: 'kart_olusturuldu', etiket: 'Kart oluşturuldu' },\r\n { olay: 'kart_guncellendi', etiket: 'Kart güncellendi' },\r\n { olay: 'alt_kart_eklendi', etiket: 'Alt kart eklendi' },\r\n { olay: 'yorum_eklendi', etiket: 'Yorum eklendi' },\r\n { olay: 'atandi', etiket: 'Atandı' },\r\n { olay: 'kart_silindi', etiket: 'Kart silindi' },\r\n { olay: 'bahsedildi', etiket: 'Bahsedildi' },\r\n ];\r\n ayarlar = {\r\n kompaktYazi: false,\r\n cevrimichiDurum: true,\r\n profilHerkesGorsun: true,\r\n };\r\n\r\n form: any = { \"desktop\": 0, \"machine\": 0, \"mobile\": 0, \"tablet\": 0, \"tv\": 0 };\r\n\r\n get toplamOturum(): number {\r\n const c = this.FikoYT.kimlik.cihazlar();\r\n return (c.desktop || 0) + (c.mobile || 0) + (c.tablet || 0) + (c.machine || 0);\r\n }\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n tiklandiCikisYap() {\r\n this.FikoYT.kimlik.cikisYap().then(() => {\r\n this.CD.detectChanges();\r\n })\r\n }\r\n\r\n bildirimTiklandi(b: IBildirim) {\r\n if (!b.okudu) this.bildirimSvc.okunduIsaretle(b._id!);\r\n if (b.kartId) this.router.navigate(['/\\u{1F3E0}/\\u{1F468}/\\u{1F6A8}']);\r\n }\r\n\r\n zamanOnce(tarih: string): string {\r\n return BildirimService.zamanOnce(tarih);\r\n }\r\n\r\n olayTercihDegistir(olay: string, aktif: boolean) {\r\n this.tercihSvc.olayTercihKaydet(olay, aktif);\r\n }\r\n}\r\n","import { Injectable, TemplateRef, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BaslikPortalService {\r\n readonly sagTarafTemplate = signal | null>(null);\r\n}\r\n","
\r\n \"Site\r\n\r\n \"Site\r\n\r\n @if (yolGoster()) {\r\n \r\n }\r\n\r\n\r\n \r\n @if (baslikPortal.sagTarafTemplate()) {\r\n \r\n }\r\n \r\n @if (FikoYT.kimlik.aktifKullaniciJson()) {\r\n \"Site\r\n } @else {\r\n \"Site\r\n }\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n","import { NgOptimizedImage } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, input, output } from '@angular/core';\r\nimport { animate, group, query, style, transition, trigger } from '@angular/animations';\r\nimport { NzBreadCrumbComponent } from 'ng-zorro-antd/breadcrumb';\r\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\r\nimport { FikoYTKokBilesenComponent } from '../../../../kok-bilesen/kok-bilesen.component';\r\nimport { NzTooltipModule } from 'ng-zorro-antd/tooltip';\r\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\r\nimport { NzInputModule } from 'ng-zorro-antd/input';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FikoYTDiyalogKullaniciMenuComponent } from '../fikoyt-diyalog-kullanici-menu/fikoyt-diyalog-kullanici-menu.component';\r\nimport { BaslikPortalService } from './baslik-portal.service';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\n\r\n\r\n@Component({\r\n selector: 'fikoyt-uygulama-baslik',\r\n standalone: true,\r\n imports: [FormsModule, NgOptimizedImage, NzBreadCrumbComponent, NzPopconfirmModule, NzInputModule, NzTooltipModule, NzTypographyModule, FikoYTDiyalogKullaniciMenuComponent, NgTemplateOutlet],\r\n templateUrl: \"./fikoyt-uygulama-baslik.component.html\",\r\n styleUrl: \"./fikoyt-uygulama-baslik.component.less\",\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FikoYTUygBaslikComponent extends FikoYTKokBilesenComponent {\r\n\r\n baslikPortal = inject(BaslikPortalService);\r\n\r\n readonly solSimgeTiklandi = output();\r\n readonly kullaniciSimgeTiklandi = output();\r\n readonly logoTiklandi = output();\r\n readonly altBaslikTiklandi = output();\r\n readonly altBaslik = input({\r\n ismi: \"baslik\",\r\n turu: \"Yazı\",\r\n degeri: \"FikoYT\",\r\n ayarlar: {\r\n solSimge: \"🏡\"\r\n }\r\n });\r\n readonly yolGoster = input(false);\r\n new: any;\r\n\r\n form: any = {};\r\n // Not: FikoYT.degisti subscription zaten FikoYTKokBilesenComponent tarafindan yonetiliyor.\r\n // Cifte subscription kaldirildi — gereksiz CD tetiklemesini onler.\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n tiklandiCikisYap() {\r\n this.FikoYT.kimlik.cikisYap().then(() => {\r\n\r\n })\r\n }\r\n}\r\n","/**\n * FikoYT UI — @fikoyt/shared kütüphanesine taşınan ortak çekirdek.\n *\n * NOT: Bu çekirdek, fikoyt-sistem'e özel BAĞIMLILIĞI OLMAYAN\n * (decorators, directives, extensions, helpers, interfaces, pipes,\n * services ve dinamik-bilesen çekirdeği) modülleri dışa açar.\n *\n * paylasim-sistemi ve fiko-three-js gibi uygulama-özel bağımlılığı\n * olan modüller BİLİNÇLİ olarak buradan dışarıda bırakıldı.\n */\n\n// Decorators\nexport * from '../decorators/debounce';\nexport * from '../decorators/dinamik-bilesen';\n\n// Directives\nexport * from '../directives/zamanliGoster.directive';\n\n// Extensions & Helpers\nexport * from '../extensions/extensions';\nexport * from '../helpers/FikoYTId';\nexport * from '../helpers/durations';\n\n// Interfaces (uygulama-özel bağımlılığı olmayanlar)\nexport * from '../interfaces/IAlan';\nexport * from '../interfaces/IDinamikBilesen.interface';\nexport * from '../interfaces/IGrup';\nexport * from '../interfaces/IKart.interface';\n// IParametre üst dosyası kendi tip setini içerir;\n// alt IParametre/IParametre.ts ile name çakışmasını önlemek için sadece üstü açıyoruz.\nexport * from '../interfaces/IParametre';\n// IParametreSeti.interface paylaşım sistemine (ISablon) bağımlıdır; kapsam dışı.\n\n// Pipes\nexport * from '../pipes/dosya-boyutu.pipe';\nexport * from '../pipes/filoyt-uzun-bas.pipe';\nexport * from '../pipes/onInit.pipe';\nexport * from '../pipes/sanitize.pipe';\nexport * from '../pipes/yuvarla.pipe';\n\n// Services\nexport * from '../services/asset-loader.service';\n\n// Dinamik Bileşen çekirdeği\nexport * from './lib/dinamik-bilesen';\n\n// Uygulama Başlık Bileşeni\nexport * from './lib/fikoyt-uygulama-baslik/fikoyt-uygulama-baslik.component';\nexport * from './lib/fikoyt-uygulama-baslik/baslik-portal.service';\n\n// Kullanıcı Menü Bileşeni\nexport * from './lib/fikoyt-diyalog-kullanici-menu/fikoyt-diyalog-kullanici-menu.component';\n","import { inject } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\r\n\r\nconst CIHAZ_STORAGE_KEY = 'fikoyt_cihaz_kimlik';\r\nconst CIHAZ_CONFIG_KEY = 'fikoyt_cihaz_konfig';\r\nconst CIHAZ_DURUM_KEY = 'fikoyt_cihaz_durum';\r\n\r\n/**\r\n * Cihaz Guard — Sadece localStorage kontrolü\r\n *\r\n * Guard'ın TEK görevi: localStorage'da cihaz kaydı var mı?\r\n * - Varsa → geçir (shell polling + Socket.IO ile sunucu doğrulaması yapar)\r\n * - Yoksa → aktivasyona yönlendir\r\n *\r\n * Neden DB sorgusu YOK:\r\n * - canActivateChild her child navigasyonda tetikleniyor\r\n * - DB sorgusu başarısız olunca döngü oluşuyordu\r\n * - Shell zaten 15sn polling + Socket.IO ile durum kontrolü yapıyor\r\n * - Askıda/iptal gibi durumlar shell tarafından yönetiliyor\r\n */\r\nexport const cihazGuard = async (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n) => {\r\n const router = inject(Router);\r\n\r\n const cihazKimlik = localStorage.getItem(CIHAZ_STORAGE_KEY);\r\n if (!cihazKimlik) {\r\n // Federation host'unda hmi-pano remote'u `/hmi-pano` altında mount edilir;\r\n // aktivasyon route'u da o ağacın kardeşidir. Eski monolit emoji-yol\r\n // (`/🧩/📟/aktivasyon`) host'ta tanımlı olmadığı için `**`'a düşüp ana\r\n // sayfaya atıyordu — doğru federation yolu:\r\n return router.createUrlTree(['/hmi-pano/aktivasyon']);\r\n }\r\n\r\n // Cihaz kaydı var — geçir\r\n // Durum kontrolü (aktif/askıda/iptal) shell component tarafından yapılır\r\n return true;\r\n};\r\n\r\n// ═══ Yardımcı fonksiyonlar ═══\r\n\r\nexport function getAktifCihazKonfig(): any | null {\r\n const raw = localStorage.getItem(CIHAZ_CONFIG_KEY);\r\n if (!raw) return null;\r\n try { return JSON.parse(raw); } catch { return null; }\r\n}\r\n\r\nexport function setCihazKimlik(kimlik: string): void {\r\n localStorage.setItem(CIHAZ_STORAGE_KEY, kimlik);\r\n}\r\n\r\nexport function clearCihazKayit(): void {\r\n localStorage.removeItem(CIHAZ_STORAGE_KEY);\r\n localStorage.removeItem(CIHAZ_CONFIG_KEY);\r\n localStorage.removeItem(CIHAZ_DURUM_KEY);\r\n}\r\n\r\nexport function getCihazDurum(): string | null {\r\n return localStorage.getItem(CIHAZ_DURUM_KEY);\r\n}\r\n\r\nexport function setCihazDurum(durum: string): void {\r\n localStorage.setItem(CIHAZ_DURUM_KEY, durum);\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { CanDeactivateFn, RouterStateSnapshot } from '@angular/router';\r\nimport { PanoDurumService } from '@uygulamalar/hmi-pano/services/pano-durum.service';\r\n\r\nconst HMI_PANO_PREFIX = '/hmi-pano/';\r\nconst HMI_PANO_PREFIX_DECODED = '/hmi-pano/';\r\n\r\n/**\r\n * Kart takılıyken personel sayfasından geri tuşu ile saçma route'lara\r\n * (yukleniyor, bosta, yetkisiz) gidilmesini engeller.\r\n *\r\n * HMI dışına (admin panel, paylaşım vs.) çıkışa izin verir - kullanıcı\r\n * bilinçli olarak üst menüden başka sayfaya gidebilir.\r\n */\r\nexport const kartAktifGuard: CanDeactivateFn = (\r\n _component, _currentRoute, _currentState, nextState?: RouterStateSnapshot\r\n) => {\r\n const durum = inject(PanoDurumService);\r\n\r\n // Kart takılı değilse her yere gidebilir\r\n if (!durum.sonPersonel()) return true;\r\n\r\n const hedef = nextState?.url || '';\r\n\r\n // HMI dışına çıkış → izin ver (admin panel, paylaşım vs.)\r\n const hmiIci = hedef.startsWith(HMI_PANO_PREFIX) || hedef.startsWith(HMI_PANO_PREFIX_DECODED);\r\n if (!hmiIci) return true;\r\n\r\n // HMI içi - personel alt route'larına izin ver\r\n if (hedef.includes('/personel')) return true;\r\n\r\n // Kart takılıyken bosta/yukleniyor/yetkisiz gibi route'lara gidişi engelle\r\n return false;\r\n};\r\n","import { Routes } from '@angular/router';\r\nimport { cihazGuard } from '../../guards/cihaz.guard';\r\nimport { kartAktifGuard } from './guards/kart-aktif.guard';\r\n\r\nexport const HMI_PANO_ROUTES: Routes = [\r\n // Aktivasyon ekranı — guard yok, herkes erişebilir\r\n {\r\n path: 'aktivasyon',\r\n loadComponent: () => import('./aktivasyon/aktivasyon.component').then(m => m.HmiAktivasyonComponent),\r\n data: { baslik: 'Cihaz Aktivasyonu', simge: '🔑' },\r\n },\r\n // Ana HMI pano — cihazGuard ile korumalı\r\n {\r\n path: '',\r\n loadComponent: () => import('./hmi-pano-shell.component').then(m => m.HmiPanoShellComponent),\r\n data: { baslik: 'HMI Pano', simge: '📟' },\r\n canActivateChild: [cihazGuard],\r\n children: [\r\n { path: '', redirectTo: 'pano', pathMatch: 'full' },\r\n {\r\n path: 'pano',\r\n loadComponent: () => import('./pano/pano.component').then(m => m.HmiPanoPanoComponent),\r\n data: { baslik: 'Pano Ekranı', simge: '📊' },\r\n children: [\r\n {\r\n path: '',\r\n loadComponent: () => import('./pano/pages/bosta/bosta.component').then(m => m.HmiPanoBostaComponent),\r\n data: { baslik: 'Boşta', simge: '📡' },\r\n },\r\n {\r\n path: 'personel',\r\n loadComponent: () => import('./pano/pages/personel/personel.component').then(m => m.HmiPanoPersonelShellComponent),\r\n canDeactivate: [kartAktifGuard],\r\n data: { baslik: 'Personel Paneli', simge: '👤' },\r\n children: [\r\n {\r\n path: '',\r\n loadComponent: () => import('./dashboard/dashboard.component').then(m => m.HmiDashboardComponent),\r\n data: { baslik: 'Dashboard', simge: '📊' },\r\n },\r\n {\r\n path: 'ana-sayfa',\r\n loadComponent: () => import('./pano/pages/personel/pages/ana-sayfa/ana-sayfa.component').then(m => m.HmiPanoPersonelAnaSayfaComponent),\r\n data: { baslik: 'Ana Sayfa', simge: '🏠' },\r\n },\r\n {\n path: 'puantaj',\n loadComponent: () => import('./pano/pages/personel/pages/puantaj/puantaj.component').then(m => m.HmiPuantajComponent),\n data: { baslik: 'Puantaj', simge: '⏱️' },\n },\n {\n path: 'pdks',\n loadComponent: () => import('./pano/pages/personel/pages/puantaj/puantaj.component').then(m => m.HmiPuantajComponent),\n data: { baslik: 'PDKS', simge: '⏱️' },\n },\n {\r\n path: 'rapor',\r\n loadComponent: () => import('./pano/pages/personel/pages/pdks/pdks-aylik-ozet.component').then(m => m.PdksAylikOzetComponent),\r\n data: { baslik: 'PDKS Rapor', simge: '📊' },\r\n },\r\n {\r\n path: 'yonetim',\r\n loadComponent: () => import('./pano/pages/personel/pages/yonetim/personel.component').then(m => m.HmiPanoPersonelComponent),\r\n data: { baslik: 'Personel Yönetimi', simge: '👥' },\r\n },\r\n {\r\n path: 'projeler',\r\n loadComponent: () => import('./pano/pages/personel/pages/projeler/projeler.component').then(m => m.HmiPanoProjelerComponent),\r\n data: { baslik: 'Projeler', simge: '📁' },\r\n children: [\r\n { path: '', redirectTo: 'ana-sayfa', pathMatch: 'full' },\r\n {\r\n path: 'ana-sayfa',\r\n loadComponent: () => import('./pano/pages/personel/pages/projeler/pages/ana-sayfa/ana-sayfa.component').then(m => m.HmiProjelerAnaSayfaComponent),\r\n data: { baslik: 'Projeler Ana Sayfa', simge: '📋' },\r\n },\r\n {\r\n path: 'pano',\r\n loadComponent: () => import('./pano/pages/personel/pages/projeler/pages/pano/pano.component').then(m => m.HmiProjelerPanoComponent),\r\n data: { baslik: 'Proje Panosu', simge: '📊' },\r\n },\r\n ],\r\n },\r\n {\r\n path: 'uretim',\r\n loadComponent: () => import('./pano/pages/personel/pages/uretim/uretim.component').then(m => m.HmiPanoUretimComponent),\r\n data: { baslik: 'Üretim', simge: '⚙️' },\r\n children: [\r\n { path: '', redirectTo: 'ana-sayfa', pathMatch: 'full' },\r\n {\r\n path: 'ana-sayfa',\r\n loadComponent: () => import('./pano/pages/personel/pages/uretim/pages/ana-sayfa/ana-sayfa.component').then(m => m.HmiUretimAnaSayfaComponent),\r\n data: { baslik: 'Üretim Ana Sayfa', simge: '⚙️' },\r\n },\r\n ],\r\n },\r\n {\r\n path: 'satis',\r\n loadComponent: () => import('./pano/pages/personel/pages/satis/satis.component').then(m => m.HmiPanoSatisComponent),\r\n data: { baslik: 'Satış', simge: '🛒' },\r\n children: [\r\n { path: '', redirectTo: 'ana-sayfa', pathMatch: 'full' },\r\n {\r\n path: 'ana-sayfa',\r\n loadComponent: () => import('./pano/pages/personel/pages/satis/pages/ana-sayfa/ana-sayfa.component').then(m => m.HmiSatisAnaSayfaComponent),\r\n data: { baslik: 'Satış Ana Sayfa', simge: '🛒' },\r\n },\r\n ],\r\n },\r\n {\r\n path: 'yonetim-kayit',\r\n loadComponent: () => import('./pano/pages/personel/pages/yonetim-kayit/yonetim-kayit.component').then(m => m.HmiPanoYonetimKayitComponent),\r\n data: { baslik: 'Yönetim', simge: '🏢' },\r\n children: [\r\n { path: '', redirectTo: 'ana-sayfa', pathMatch: 'full' },\r\n {\r\n path: 'ana-sayfa',\r\n loadComponent: () => import('./pano/pages/personel/pages/yonetim-kayit/pages/ana-sayfa/ana-sayfa.component').then(m => m.HmiYonetimAnaSayfaComponent),\r\n data: { baslik: 'Yönetim Ana Sayfa', simge: '🏢' },\r\n },\r\n ],\r\n },\r\n {\r\n path: 'posta',\r\n loadComponent: () => import('./pano/pages/personel/pages/posta/posta.component').then(m => m.HmiPostaComponent),\r\n data: { baslik: 'Posta', simge: '📧' },\r\n },\r\n {\r\n path: 'widget-editor/:widgetId',\r\n loadComponent: () => import('@fikoyt-ui/paylasim-sistemi/fiko-tasarim-editoru/fiko-tasarim-editoru.component').then(m => m.FikoTasarimEditoruComponent),\r\n data: { baslik: 'Widget Düzenle', simge: '🎨' },\r\n },\r\n ],\r\n },\r\n {\r\n path: 'yetkisiz',\r\n loadComponent: () => import('./pano/pages/yetkisiz/yetkisiz.component').then(m => m.HmiPanoYetkisizComponent),\r\n data: { baslik: 'Yetkisiz Erişim', simge: '🚫' },\r\n },\r\n {\r\n path: 'yukleniyor',\r\n loadComponent: () => import('./pano/pages/yukleniyor/yukleniyor.component').then(m => m.HmiPanoYukleniyorComponent),\r\n data: { baslik: 'Yükleniyor', simge: '⏳' },\r\n },\r\n ],\r\n },\r\n {\r\n path: 'ayarlar',\r\n loadComponent: () => import('./ayarlar/ayarlar.component').then(m => m.HmiPanoAyarlarComponent),\r\n data: { baslik: 'Cihaz Ayarları', simge: '⚙️' },\r\n },\r\n ],\r\n },\r\n];\r\n","import { inject } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from \"@angular/router\";\nimport { Router } from \"@angular/router\";\nimport { FikoYTService } from \"@/src/service/fikoyt.service\";\n\nexport const uyelerGiremezGuard = (childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const fikoytService = inject(FikoYTService);\n const router = inject(Router);\n\n if (fikoytService.kimlik.aktifKullaniciJson()) {\n return false;\n }\n\n return true;\n};\n\nexport const uyeOlmayanGiremezGuard = (childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const fikoytService = inject(FikoYTService);\n const router = inject(Router);\n\n if (!fikoytService.kimlik.aktifKullaniciJson()) {\n return router.createUrlTree(['/giris'], {\n queryParams: { sonraki: state.url }\n });\n }\n return true;\n};","\nimport { Component, input, InputSignal, model } from '@angular/core';\nimport { FikoYTKokBilesenComponent } from '../../../../kok-bilesen/kok-bilesen.component';\nimport { IKart } from '../../../interfaces/IKart.interface';\n\n\n@Component({\n selector: 'fikoyt-kart',\n standalone: true,\n imports: [],\n templateUrl: \"./fikoyt-kart.component.html\",\n // styleUrl: \"./fikoyt-uygulama-baslik.component.scss\",\n\n})\nexport class FikoYTKartComponent extends FikoYTKokBilesenComponent {\n kart: InputSignal> = input(null);\n\n constructor() {\n super();\n\n }\n\n}\n","","import { NgOptimizedImage } from '@angular/common';\nimport { Component, viewChild } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NzAlertComponent } from 'ng-zorro-antd/alert';\nimport { NzButtonComponent } from 'ng-zorro-antd/button';\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\nimport { NzDividerComponent } from 'ng-zorro-antd/divider';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\nimport { FormsModule } from '@angular/forms';\nimport { FikoYTKokBilesenComponent } from '../../../../../service/kok-bilesen/kok-bilesen.component';\nimport { FikoYTKartComponent } from '../../../../../service/fikoyt-ui/src/lib/fikoyt-kart/fikoyt-kart.component';\nimport { FikoYTDalgaComponent } from '../../../../../service/fikoyt-ui/src/lib/fikoyt-dalga/fikoyt-dalga.component';\nimport { IstekOlayTuru } from '../../../../../service/fikoyt.istek.service';\n\n@Component({\n selector: 'fikoyt-giris-yap',\n imports: [FormsModule, NgOptimizedImage, FikoYTKartComponent, NzAlertComponent, NzInputModule, NzButtonComponent, NzIconModule, NzTypographyModule, RouterLink, NzWaveModule, NzDividerComponent],\n templateUrl: './giris-yap.component.html',\n standalone: true,\n styleUrl: './giris-yap.component.less'\n})\nexport class GirisYapComponent extends FikoYTKokBilesenComponent {\n readonly rippleComponent = viewChild.required('ripple');\n\n form: any = {\n kullaniciAdi: '',\n parola: '',\n };\n\n gonder() {\n const formData: FormData = new FormData();\n\n\n formData.append('req_body', JSON.stringify(this.form));\n\n this.FikoYT.istekler.fapisteV1('POST', 'FikoYT.sistem.giris.yap', { vucutParametreler: formData }).subscribe((snc: any) => {\n if (snc.turu == IstekOlayTuru.Cevaplandi) {\n if (snc.sonuc.body.durum.hata == true) {\n let hataMesajlari = \"\";\n snc.sonuc.body.durum.hatalar.forEach((hata: any) => {\n hataMesajlari += hata.mesaj + \"\\n\";\n });\n\n this.nzNotification.error(\"Hatalar Var\", hataMesajlari, {\n nzStyle: {\n \"white-space\": \"pre-line\",\n }\n });\n } else {\n this.nzNotification.success(\"Giriş Başarılı\", \"Sisteme Girişiniz Yapılmıştır\");\n /** */\n this.FikoYT.istekler.fapisteV1('POST', 'FikoYT.sistem.aktif-kullanici.bilgi', { vucutParametreler: formData }).subscribe((snc: any) => {\n if (snc.turu == IstekOlayTuru.Cevaplandi) {\n if (snc?.sonuc?.body?.durum?.hata != true) {\n // console.log(snc);\n setTimeout(() => {\n this.FikoYT.kimlik.aktifKullaniciJson.set(snc?.sonuc?.body?.sonuc);\n this.FikoYT.parametreler[\"t\"] = Math.random();\n this.CD.detectChanges();\n }, 0);\n }\n }\n\n })\n\n\n\n this.router.navigate([\"/\"]);\n }\n\n };\n });\n }\n}\n","\r\n \r\n \"Site\r\n \r\n\r\n
\r\n Kullanıcı Adı :\r\n \r\n \r\n \r\n\r\n Parola :\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
","
\n
\n
\n\n
\n @if (image()) {\n \"Profile\"\n\n } @else {\n
\n 👨‍💼\n
\n }\n
\n
\n
","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nimport { Component, input, model, signal } from '@angular/core';\nimport { FikoYTKokBilesenComponent } from '../../../../kok-bilesen/kok-bilesen.component';\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\n\n\n@Component({\n selector: 'fikoyt-yuvarlak-resim',\n standalone: true,\n imports: [NzWaveModule],\n templateUrl: \"./fikoyt-yuvarlak-resim.component.html\",\n // styleUrl: \"./fikoyt-uygulama-baslik.component.scss\",\n animations: [\n trigger('imageChange', [\n state(\n 'hidden',\n style({\n opacity: 0,\n })\n ),\n state(\n 'visible',\n style({\n opacity: 1,\n })\n ),\n transition('hidden => visible', [animate('500ms ease-in')]),\n transition('visible => hidden', [animate('500ms ease-out')]),\n ]),\n ],\n})\nexport class FikoYTYuvarlakResimComponent extends FikoYTKokBilesenComponent {\n\n image = model(null);\n imageUrl = model(null);\n size = input(128);\n borderSize = input(20);\n borderColor = input(\"#1976d2\");\n backgroundColor = input(\"#f0f0f0\");\n\n isImageVisible = model(false);\n themeService = {\n backgroundColor: '#F0F0F0', // Buraya tema renginizi tanımlayın\n };\n\n\n constructor() {\n super();\n }\n\n // Avatar tıklandığında resim seçimi\n async onAvatarClick(): Promise {\n const fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = 'image/*'; // Sadece resim dosyalarını kabul et\n fileInput.click();\n\n fileInput.onchange = async () => {\n const file = fileInput.files?.[0];\n if (file) {\n this.changeImage(file);\n }\n };\n\n // try {\n // if ('showOpenFilePicker' in window) {\n // const [fileHandle] = await (window as any).showOpenFilePicker({\n // types: [\n // {\n // description: 'Images',\n // accept: {\n // 'image/*': ['.webp', '.webp', '.webp', '.gif', '.webp'],\n // },\n // },\n // ],\n // multiple: false,\n // });\n // const file = await fileHandle.getFile();\n // this.changeImage(file);\n // } else {\n // alert('Tarayıcınız bu özelliği desteklemiyor.');\n // }\n // } catch (error) {\n // console.error('Dosya seçimi iptal edildi veya hata oluştu:', error);\n // }\n }\n\n\n private changeImage(file: File): void {\n this.isImageVisible.set(this.image() ? false : true); // Önce resmi görünmez yap\n this.CD.detectChanges();\n const reader = new FileReader();\n reader.onload = (e: any) => {\n setTimeout(() => {\n this.image.set(e.target.result); // Resmi değiştir\n this.imageUrl.set(file);\n this.isImageVisible.set(true); // Yeni resmi görünür yap\n this.CD.detectChanges();\n }, 500); // Görünmez olduktan sonra resmi değiştir\n };\n reader.readAsDataURL(file);\n }\n\n resimSil(): void {\n this.isImageVisible.set(false); // Önce resmi görünmez yap\n this.imageUrl.set(null);\n this.CD.detectChanges();\n setTimeout(() => {\n this.image.set(null); // Resmi değiştir\n this.imageUrl.set(null);\n this.isImageVisible.set(false); // Yeni resmi görünür yap\n this.CD.detectChanges();\n }, 500); // Görünmez olduktan sonra resmi değiştir\n\n\n }\n}\n","import { NgOptimizedImage } from '@angular/common';\nimport { Component, viewChild } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NzAlertComponent } from 'ng-zorro-antd/alert';\nimport { NzButtonComponent } from 'ng-zorro-antd/button';\nimport { NzCheckboxComponent } from 'ng-zorro-antd/checkbox';\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\nimport { FormsModule } from '@angular/forms';\nimport { FikoYTKokBilesenComponent } from '../../../../../service/kok-bilesen/kok-bilesen.component';\nimport { FikoYTKartComponent } from '../../../../../service/fikoyt-ui/src/lib/fikoyt-kart/fikoyt-kart.component';\nimport { FikoYTDalgaComponent } from '../../../../../service/fikoyt-ui/src/lib/fikoyt-dalga/fikoyt-dalga.component';\nimport { FikoYTYuvarlakResimComponent } from '../../../../../service/fikoyt-ui/src/lib/fikoyt-yuvarlak-resim/fikoyt-yuvarlak-resim.component';\nimport { IstekOlayTuru } from '../../../../../service/fikoyt.istek.service';\n\n@Component({\n selector: 'fikoyt-aramiza-katil',\n imports: [FormsModule,\n NgOptimizedImage, RouterLink, FikoYTKartComponent, NzWaveModule, NzAlertComponent, NzInputModule, NzButtonComponent, NzIconModule, NzTypographyModule, NzCheckboxComponent, FikoYTYuvarlakResimComponent],\n templateUrl: './aramiza-katil.component.html',\n standalone: true,\n styleUrl: './aramiza-katil.component.less'\n})\nexport class AramizaKatilComponent extends FikoYTKokBilesenComponent {\n\n readonly rippleComponent = viewChild.required('ripple');\n\n dosyaProfilResmi: File | null = null;\n\n form: any = {\n kullaniciAdi: '',\n ePosta: '',\n parola: '',\n parolaTekrar: '',\n isim: '',\n soyIsim: '',\n anlasma: false,\n };\n\n imageChange($event: File | null) {\n this.dosyaProfilResmi = $event;\n }\n\n gonder() {\n const formData: FormData = new FormData();\n\n // formData.append(this.idProfilresmi, this.dosyaProfilResmi)\n // console.log(this.formUye)\n // this.form.profilResmi = this.idProfilresmi\n if (this.dosyaProfilResmi != null) {\n let id: string = this.FikoYT.fikoIdUret();\n formData.append(id, this.dosyaProfilResmi);\n this.form.profilResmi = id;\n }\n\n\n formData.append('req_body', JSON.stringify(this.form));\n\n this.FikoYT.istekler.fapisteV1('POST', 'FikoYT.sistem.uye.ol', { vucutParametreler: formData }).subscribe((snc: any) => {\n if (snc.turu == IstekOlayTuru.Cevaplandi) {\n if (snc.sonuc.body.durum.hata == true) {\n let hataMesajlari = \"\";\n snc.sonuc.body.durum.hatalar.forEach((hata: any) => {\n hataMesajlari += hata.mesaj + \"\\n\";\n });\n\n this.nzNotification.error(\"Hatalar Var\", hataMesajlari, {\n nzStyle: {\n \"white-space\": \"pre-line\",\n }\n });\n } else {\n this.nzNotification.success(\"Kayıt Başarılı\", \"Kaydınız Onaylandıktan Sonra Hesabınız Aktif Edilecektir\");\n // this.router.navigate([\"/\"]);\n }\n\n\n\n };\n });\n }\n}\n","\r\n \r\n \"Site\r\n\r\n \r\n \r\n \r\n\r\n Adınız :\r\n \r\n \r\n \r\n\r\n Soy Adınız :\r\n \r\n \r\n \r\n\r\n Kullanıcı Adı :\r\n \r\n \r\n \r\n\r\n E-Posta :\r\n \r\n \r\n \r\n\r\n Parola :\r\n \r\n \r\n \r\n\r\n Parola Tekrar :\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n","import { FikoYTKokBilesenComponent } from '../../../../../service/kok-bilesen/kok-bilesen.component';\nimport { FikoYTKartComponent } from '../../../../../service/fikoyt-ui/src/lib/fikoyt-kart/fikoyt-kart.component';\nimport { FikoYTDalgaComponent } from '../../../../../service/fikoyt-ui/src/lib/fikoyt-dalga/fikoyt-dalga.component';\nimport { NgOptimizedImage } from '@angular/common';\nimport { Component, viewChild } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NzAlertComponent } from 'ng-zorro-antd/alert';\nimport { NzButtonComponent } from 'ng-zorro-antd/button';\nimport { NzWaveModule } from 'ng-zorro-antd/core/wave';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\n\n\n@Component({\n selector: 'fikoyt-sifre-sifirla',\n imports: [\n NgOptimizedImage, RouterLink, FikoYTKartComponent, NzWaveModule, NzAlertComponent, NzInputModule, NzButtonComponent, NzIconModule, NzTypographyModule],\n templateUrl: './sifre-sifirla.component.html',\n standalone: true,\n styleUrl: './sifre-sifirla.component.less'\n})\nexport class SifreSifirlaComponent extends FikoYTKokBilesenComponent {\n readonly rippleComponent = viewChild.required('ripple');\n\n\n}\n","\r\n \r\n \"Site\r\n\r\n \r\n\r\n E-Posta :\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n","
\n @for (wave of waves; track wave; let i = $index) {\n
\n }\n \n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, Input, Renderer2 } from '@angular/core';\nimport { FikoYTKokBilesenComponent } from '../../../../kok-bilesen/kok-bilesen.component';\n\n\n@Component({\n selector: 'fikoyt-dalga',\n standalone: true,\n imports: [CommonModule,],\n templateUrl: \"./fikoyt-dalga.component.html\",\n // styleUrl: \"./fikoyt-uygulama-baslik.component.scss\",\n\n})\nexport class FikoYTDalgaComponent extends FikoYTKokBilesenComponent {\n @Input() color: string = 'rgb(4, 0, 255)'; // Ripple rengi\n @Input() duration: number = 1000; // Animasyon süresi (ms)\n @Input() delay: number = 1000; // Gecikme (ms)\n @Input() repeat: boolean = true; // Tekrar durumu\n @Input() waveCount: number = 2; // Dalga sayısı\n @Input() shape: 'circle' | 'rectangle' = 'circle'; // Şekil tipi\n @Input() borderRadius: string = '24px'; // Dikdörtgen için radius\n\n waves: number[] = []; // Dalga dizisi\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n super();\n\n }\n\n ngOnInit(): void {\n this.generateWaves();\n }\n\n override ngAfterViewInit(): void {\n\n }\n\n generateWaves(): void {\n this.waves = Array(this.waveCount).fill(0).map((_, i) => i); // Dalga indexleri\n }\n\n // triggerRipple(x: number = 0, y: number = 0) {\n // const hostElement = this.el.nativeElement;\n\n // // Ripple divini oluştur\n // const ripple = this.renderer.createElement('div');\n // this.renderer.addClass(ripple, 'ripple');\n // this.renderer.setStyle(ripple, 'width', `${hostElement.offsetWidth * 2}px`);\n // this.renderer.setStyle(\n // ripple,\n // 'height',\n // `${hostElement.offsetHeight * 2}px`\n // );\n // this.renderer.setStyle(ripple, 'animation-duration', `${this.duration}ms`);\n\n // // Ripple'in başlangıç pozisyonunu ayarla\n // this.renderer.setStyle(ripple, 'left', `${x}px`);\n // this.renderer.setStyle(ripple, 'top', `${y}px`);\n\n // // Ripple'i DOM'a ekle\n // this.renderer.appendChild(hostElement, ripple);\n\n // // Ripple'in DOM'dan kaldırılması\n // setTimeout(() => {\n // this.renderer.removeChild(hostElement, ripple);\n // }, this.duration);\n // }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { IKart, IKartTuru, IIcerik, IVT, IYollar } from '@/src/service/fikoyt-ui/interfaces/IKart.interface';\nimport { IParametreSetiGrubu } from '@/src/service/fikoyt-ui/interfaces/IParametreSeti.interface';\nimport { ISablon } from '@/src/service/fikoyt-ui/src/lib/paylasim-sistemi/sablon-editoru/sablon.interface';\nimport { FikoYTId } from '@/src/service/fikoyt-ui/helpers/FikoYTId';\nimport { personelAcilirKutu, departmanAcilirKutu } from '../projeler/hmi-ortak-helpers';\n\nconst UYG = 'FikoYT.sistem.hmi.yonetim';\n\n@Injectable({ providedIn: 'root' })\nexport class HmiYonetimService {\n paylasimYapildi = new EventEmitter(true);\n aktifIcerikNo = 0;\n\n kart: IKart = {\n _id: new FikoYTId().toString(),\n vt: 'FikoYT.sistem.hareketler' as IVT,\n yol: 'FikoYT.sistem.hareketler.kalem' as IYollar,\n turu: IKartTuru.KART,\n gizlilik: 'Herkese Açık',\n kisiler: [],\n veri: {\n solSimge: { aciklama: undefined, baslik: 'HMI', renkArka: '#722ed1', renkYazi: '#fff' },\n kurdela: { aciklama: undefined, baslik: 'Yönetim', renkArka: undefined, renkYazi: undefined },\n icerikler: [\n { _id: new FikoYTId().toString(), html: '', aciklama: '', sifre: null } as IIcerik,\n ],\n },\n };\n\n readonly parametreSetleri: IParametreSetiGrubu[] = [\n /* {\n id: 'hmi.personel',\n baslik: 'Personel',\n simge: '👤',\n aciklama: 'Personel kaydı oluştur',\n renk: 'linear-gradient(135deg, #0d47a1, #1e88e5)',\n kaynak: 'kod',\n bilesen: 'personel',\n parametreler: [\n { turu: 'Yazı', ismi: 'ad', baslik: 'Ad', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'soyad', baslik: 'Soyad', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'sicilNo', baslik: 'Sicil No' },\n departmanAcilirKutu('departman', 'Departman'),\n { turu: 'Yazı', ismi: 'unvan', baslik: 'Ünvan' },\n { turu: 'Yazı', ismi: 'gorev', baslik: 'Görev' },\n { turu: 'Yazı', ismi: 'telefon', baslik: 'Telefon', ayarlar: { solSimge: '📱' } },\n { turu: 'Yazı', ismi: 'eposta', baslik: 'E-posta', ayarlar: { solSimge: '📧' } },\n { turu: 'Tarih', ismi: 'iseGirisTarihi', baslik: 'İşe Giriş Tarihi' },\n ],\n sablon: {\n genislik: 520, yukseklik: 160, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%)' },\n bolgeler: [],\n elementler: [\n // Sol accent çizgi\n { id: 'pe0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 5, yukseklik: 160, stil: { fill: '#3b82f6' } },\n // Avatar daire arka plan\n { id: 'pe1a', tur: 'sekil', sekilTuru: 'daire', x: 5, y: 18, genislik: 72, yukseklik: 72, stil: { fill: 'rgba(59,130,246,0.15)', stroke: 'rgba(59,130,246,0.3)', strokeWidth: 2 } },\n { id: 'pe1', tur: 'sabit-metin', icerik: '👤', x: 5, y: 18, genislik: 72, yukseklik: 72, stil: { fontSize: 32, textAlign: 'center', verticalAlign: 'center' } },\n // Ad soyad\n { id: 'pe2', tur: 'parametre-metin', parametreAnahtari: 'ad', x: 22, y: 20, genislik: 180, yukseklik: 30, stil: { fontSize: 20, fontWeight: '700', color: '#f1f5f9', verticalAlign: 'center' } },\n { id: 'pe2a', tur: 'parametre-metin', parametreAnahtari: 'soyad', x: 22, y: 38, genislik: 220, yukseklik: 26, stil: { fontSize: 16, fontWeight: '500', color: '#93c5fd', verticalAlign: 'center' } },\n // Ünvan chip\n { id: 'pe3bg', tur: 'sekil', sekilTuru: 'dikdortgen', x: 22, y: 60, genislik: 140, yukseklik: 22, stil: { fill: 'rgba(59,130,246,0.12)', borderRadius: 11 } },\n { id: 'pe3', tur: 'parametre-metin', parametreAnahtari: 'unvan', x: 22, y: 60, genislik: 140, yukseklik: 22, stil: { fontSize: 10, fontWeight: '500', color: '#60a5fa', textAlign: 'center', verticalAlign: 'center' } },\n // Alt çizgi\n { id: 'pe4', tur: 'sekil', sekilTuru: 'dikdortgen', x: 3, y: 88, genislik: 92, yukseklik: 1, stil: { fill: 'rgba(255,255,255,0.06)' } },\n // Etiket\n { id: 'pe7', tur: 'sabit-metin', icerik: 'PERSONEL', x: 3, y: 90, genislik: 92, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(148,163,184,0.35)', verticalAlign: 'center', letterSpacing: 3, textAlign: 'center' } },\n ],\n } as ISablon,\n altKartSablonlari: [\n { id: 'hmi.personel.adres', baslik: 'Adres Bilgisi', simge: '📍', bilesen: 'adres-bilgisi' },\n { id: 'hmi.personel.izin', baslik: 'İzin Kaydı', simge: '📅', bilesen: 'izin-kaydi' },\n { id: 'hmi.personel.egitim', baslik: 'Eğitim Kaydı', simge: '📚', bilesen: 'egitim-kaydi' },\n ],\n },\n {\n id: 'hmi.departman',\n baslik: 'Departman',\n simge: '🏢',\n aciklama: 'Departman tanımla',\n renk: 'linear-gradient(135deg, #bf360c, #ff6e40)',\n kaynak: 'kod',\n bilesen: 'departman',\n parametreler: [\n { turu: 'Yazı', ismi: 'departmanAdi', baslik: 'Departman Adı', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'departmanKodu', baslik: 'Departman Kodu' },\n departmanAcilirKutu('ustDepartman', 'Üst Departman'),\n personelAcilirKutu('yonetici', 'Departman Yöneticisi'),\n { turu: 'Renk', ismi: 'renk', baslik: 'Renk' },\n { turu: 'Yazı Alanı', ismi: 'aciklama', baslik: 'Açıklama' },\n ],\n sablon: {\n genislik: 520, yukseklik: 130, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(135deg, #1a0a00 0%, #7c2d12 100%)' },\n bolgeler: [],\n elementler: [\n // Sol accent\n { id: 'dp0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 5, yukseklik: 130, stil: { fill: '#f97316' } },\n // İkon\n { id: 'dp1', tur: 'sabit-metin', icerik: '🏢', x: 5, y: 16, genislik: 56, yukseklik: 56, stil: { fontSize: 28, textAlign: 'center', verticalAlign: 'center' } },\n // Departman adı\n { id: 'dp2', tur: 'parametre-metin', parametreAnahtari: 'departmanAdi', x: 18, y: 20, genislik: 360, yukseklik: 30, stil: { fontSize: 20, fontWeight: '700', color: '#fed7aa', verticalAlign: 'center' } },\n // Kod chip\n { id: 'dp3bg', tur: 'sekil', sekilTuru: 'dikdortgen', x: 18, y: 52, genislik: 100, yukseklik: 20, stil: { fill: 'rgba(249,115,22,0.15)', borderRadius: 10 } },\n { id: 'dp3', tur: 'parametre-metin', parametreAnahtari: 'departmanKodu', x: 18, y: 52, genislik: 100, yukseklik: 20, stil: { fontSize: 9, fontWeight: '600', color: '#fb923c', textAlign: 'center', verticalAlign: 'center', letterSpacing: 1 } },\n // Alt çizgi + etiket\n { id: 'dp6', tur: 'sekil', sekilTuru: 'dikdortgen', x: 3, y: 82, genislik: 92, yukseklik: 1, stil: { fill: 'rgba(255,255,255,0.06)' } },\n { id: 'dp7', tur: 'sabit-metin', icerik: 'DEPARTMAN', x: 3, y: 84, genislik: 92, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(251,146,60,0.3)', verticalAlign: 'center', letterSpacing: 3, textAlign: 'center' } },\n ],\n } as ISablon,\n altKartSablonlari: [\n { id: 'hmi.departman.duyuru', baslik: 'Duyuru', simge: '📢', bilesen: 'duyuru' },\n ],\n },\n {\n id: 'hmi.tedarikci',\n baslik: 'Tedarikçi',\n simge: '🏭',\n aciklama: 'Tedarikçi / firma kaydı',\n renk: 'linear-gradient(135deg, #4a148c, #ab47bc)',\n kaynak: 'kod',\n bilesen: 'tedarikci',\n parametreler: [\n { turu: 'Yazı', ismi: 'firmaAdi', baslik: 'Firma Adı', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'yetkili', baslik: 'Yetkili Kişi' },\n { turu: 'Yazı', ismi: 'telefon', baslik: 'Telefon', ayarlar: { solSimge: '📱' } },\n { turu: 'Yazı', ismi: 'eposta', baslik: 'E-posta', ayarlar: { solSimge: '📧' } },\n { turu: 'Yazı', ismi: 'adres', baslik: 'Adres' },\n { turu: 'Yazı', ismi: 'vergiNo', baslik: 'Vergi No' },\n { turu: 'Açılır Kutu', ismi: 'kategori', baslik: 'Kategori', ayarlar: {\n secenekler: [\n { label: 'Hammadde', value: 'Hammadde' }, { label: 'Yardımcı Malzeme', value: 'Yardımcı Malzeme' },\n { label: 'Makine/Ekipman', value: 'Makine/Ekipman' }, { label: 'Hizmet', value: 'Hizmet' },\n { label: 'Lojistik', value: 'Lojistik' }, { label: 'Diğer', value: 'Diğer' },\n ],\n } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ],\n sablon: {\n genislik: 520, yukseklik: 140, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(135deg, #0f0720 0%, #312e81 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'td0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 5, yukseklik: 140, stil: { fill: '#8b5cf6' } },\n // İkon\n { id: 'td1', tur: 'sabit-metin', icerik: '🏭', x: 5, y: 16, genislik: 56, yukseklik: 56, stil: { fontSize: 28, textAlign: 'center', verticalAlign: 'center' } },\n // Firma adı\n { id: 'td2', tur: 'parametre-metin', parametreAnahtari: 'firmaAdi', x: 18, y: 18, genislik: 380, yukseklik: 28, stil: { fontSize: 18, fontWeight: '700', color: '#e0e7ff', verticalAlign: 'center' } },\n // Yetkili\n { id: 'td3', tur: 'parametre-metin', parametreAnahtari: 'yetkili', x: 18, y: 42, genislik: 300, yukseklik: 20, stil: { fontSize: 12, fontWeight: '400', color: '#a5b4fc', verticalAlign: 'center' } },\n // Kategori chip\n { id: 'td4bg', tur: 'sekil', sekilTuru: 'dikdortgen', x: 18, y: 62, genislik: 110, yukseklik: 20, stil: { fill: 'rgba(139,92,246,0.15)', borderRadius: 10 } },\n { id: 'td4', tur: 'parametre-metin', parametreAnahtari: 'kategori', x: 18, y: 62, genislik: 110, yukseklik: 20, stil: { fontSize: 9, fontWeight: '500', color: '#a78bfa', textAlign: 'center', verticalAlign: 'center' } },\n // Etiket\n { id: 'td6', tur: 'sekil', sekilTuru: 'dikdortgen', x: 3, y: 88, genislik: 92, yukseklik: 1, stil: { fill: 'rgba(255,255,255,0.06)' } },\n { id: 'td9', tur: 'sabit-metin', icerik: 'TEDARİKÇİ', x: 3, y: 90, genislik: 92, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(167,139,250,0.3)', verticalAlign: 'center', letterSpacing: 3, textAlign: 'center' } },\n ],\n } as ISablon,\n altKartSablonlari: [\n { id: 'hmi.tedarikci.degerlendirme', baslik: 'Değerlendirme', simge: '⭐', bilesen: 'degerlendirme' },\n ],\n },\n {\n id: 'hmi.bakim-talebi',\n baslik: 'Bakım Talebi',\n simge: '🔧',\n aciklama: 'Arıza ve bakım talebi oluştur',\n renk: 'linear-gradient(135deg, #b71c1c, #e53935)',\n kaynak: 'kod',\n bilesen: 'bakim-talebi',\n altGruplar: [\n {\n id: 'hmi.bakim-talebi.ekle',\n baslik: 'Yeni Talep',\n simge: '🔧',\n aciklama: 'Bakım talebi oluştur',\n parametreler: [\n { turu: 'Otomatik Kod', ismi: 'talepNo', baslik: 'Talep No', ayarlar: { kodFormat: '{PREFIX}-{YIL}-{AY}-{SAYI:3}', kodPrefix: 'BT' } },\n { turu: 'Yazı', ismi: 'makine', baslik: 'Makine', ayarlar: { zorunlu: true } },\n {\n turu: 'Açılır Kutu', ismi: 'arizaTuru', baslik: 'Arıza Türü', ayarlar: {\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Mekanik', value: 'Mekanik', simge: '🔩' },\n { label: 'Elektrik', value: 'Elektrik', simge: '⚡' },\n { label: 'Hidrolik', value: 'Hidrolik', simge: '💧' },\n { label: 'Pnömatik', value: 'Pnömatik', simge: '💨' },\n { label: 'Yazılım', value: 'Yazılım', simge: '💻' },\n { label: 'Diğer', value: 'Diğer', simge: '❓' },\n ],\n }\n },\n {\n turu: 'Açılır Kutu', ismi: 'aciliyet', baslik: 'Aciliyet', ayarlar: {\n itemSablon: { aktif: true, simgeGoster: false, renkGoster: true, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Düşük', value: 'Düşük', renk: '#8c8c8c' },\n { label: 'Orta', value: 'Orta', renk: '#fa8c16' },\n { label: 'Yüksek', value: 'Yüksek', renk: '#f5222d' },\n { label: 'Acil Durum', value: 'Acil Durum', renk: '#a8071a' },\n ],\n }\n },\n { turu: 'Yazı Alanı', ismi: 'aciklama', baslik: 'Açıklama', ayarlar: { zorunlu: true } },\n personelAcilirKutu('raporEden', 'Rapor Eden'),\n ],\n sayfaKurallari: { yeniSayfaEngelle: true },\n sablon: {\n genislik: 520, yukseklik: 220, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #3a0a0a 0%, #b71c1c 50%, #e53935 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'bt0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 5, stil: { fill: 'rgba(255,255,255,0.15)' } },\n { id: 'bt1', tur: 'sabit-metin', icerik: '🔧', x: 5, y: 8, genislik: 50, yukseklik: 50, stil: { fontSize: 32, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'bt2', tur: 'parametre-metin', parametreAnahtari: 'makine', x: 5, y: 24, genislik: 420, yukseklik: 36, stil: { fontSize: 22, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'bt7', tur: 'sabit-metin', icerik: '◆ BAKIM TALEBİ', x: 3, y: 92, genislik: 200, yukseklik: 16, stil: { fontSize: 8, fontWeight: '600', color: 'rgba(255,255,255,0.25)', letterSpacing: 2 } },\n ],\n } as ISablon,\n altKartSablonlari: [\n {\n id: 'hmi.bakim.guncelleme',\n baslik: 'Güncelleme',\n simge: '🔄',\n parametreler: [\n {\n turu: 'Açılır Kutu', ismi: 'durum', baslik: 'Durum', ayarlar: {\n zorunlu: true,\n itemSablon: { aktif: true, simgeGoster: false, renkGoster: true, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Bekliyor', value: 'Bekliyor', renk: '#8c8c8c' },\n { label: 'İnceleniyor', value: 'İnceleniyor', renk: '#1890ff' },\n { label: 'Parça Bekleniyor', value: 'Parça Bekleniyor', renk: '#fa8c16' },\n { label: 'Onarılıyor', value: 'Onarılıyor', renk: '#13c2c2' },\n { label: 'Tamamlandı', value: 'Tamamlandı', renk: '#52c41a' },\n ],\n }\n },\n { turu: 'Yazı', ismi: 'tahminiSure', baslik: 'Tahmini Süre' },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ],\n sablon: {\n genislik: 520, yukseklik: 180, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(160deg, #1a1a2e 0%, #2d1b1b 50%, #3a1a1a 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'btg0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 6, yukseklik: 180, stil: { fill: '#e53935' } },\n { id: 'btg1', tur: 'sabit-metin', icerik: '🔄', x: 4, y: 8, genislik: 40, yukseklik: 40, stil: { fontSize: 24, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'btg2', tur: 'sabit-metin', icerik: 'BAKIM GÜNCELLEMESİ', x: 14, y: 8, genislik: 220, yukseklik: 18, stil: { fontSize: 9, fontWeight: '700', color: '#ef9a9a', letterSpacing: 2, verticalAlign: 'center' } },\n { id: 'btg3a', tur: 'sekil', sekilTuru: 'dikdortgen', x: 15, y: 35, genislik: 180, yukseklik: 34, stil: { fill: 'rgba(229,57,53,0.15)', borderRadius: 17 } },\n { id: 'btg3', tur: 'parametre-render', parametreAnahtari: 'durum', x: 15, y: 35, genislik: 180, yukseklik: 34, stil: { fontSize: 15, fontWeight: '700', color: '#ffffff', textAlign: 'center', verticalAlign: 'center' } },\n ],\n } as ISablon,\n },\n { id: 'hmi.bakim.durum', baslik: 'Durum Güncelleme', simge: '🔄', bilesen: 'durum-guncelleme' },\n { id: 'hmi.bakim.gorev', baslik: 'Görev', simge: '✅', bilesen: 'gorev' },\n { id: 'hmi.bakim.maliyet', baslik: 'Maliyet', simge: '💰', bilesen: 'maliyet-kalemi' },\n ],\n },\n ],\n }, */\n ];\n\n icerikEkle(ek: any = null) {\n if (!ek) {\n ek = { turu: 'UYGULAMAICERIK', _id: '', parametreler: [] };\n }\n this.kart?.veri?.icerikler?.push({\n _id: new FikoYTId().toString(), aciklama: '', html: '', ek, sifre: null,\n }) ?? 0;\n }\n\n sifirla() {\n this.kart = {\n _id: new FikoYTId().toString(),\n vt: 'FikoYT.sistem.hareketler' as IVT,\n yol: 'FikoYT.sistem.hareketler.kalem' as IYollar,\n turu: IKartTuru.KART,\n gizlilik: 'Herkese Açık',\n kisiler: [],\n veri: {\n solSimge: { aciklama: undefined, baslik: 'HMI', renkArka: '#722ed1', renkYazi: '#fff' },\n kurdela: { aciklama: undefined, baslik: 'Yönetim', renkArka: undefined, renkYazi: undefined },\n icerikler: [],\n },\n };\n this.icerikEkle();\n }\n\n aktifEtSonSayfa() {\n this.aktifIcerikNo = (this.kart?.veri?.icerikler?.length ?? 1) - 1;\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { IKart, IKartTuru, IIcerik, IVT, IYollar } from '@/src/service/fikoyt-ui/interfaces/IKart.interface';\nimport { IParametreSetiGrubu } from '@/src/service/fikoyt-ui/interfaces/IParametreSeti.interface';\nimport { ISablon } from '@/src/service/fikoyt-ui/src/lib/paylasim-sistemi/sablon-editoru/sablon.interface';\nimport { FikoYTId } from '@/src/service/fikoyt-ui/helpers/FikoYTId';\nimport { musteriAcilirKutu, firmaAcilirKutu, TR_RX_FN } from '../projeler/hmi-ortak-helpers';\n\nconst UYG = 'FikoYT.sistem.hmi.satis';\n\n@Injectable({ providedIn: 'root' })\nexport class HmiSatisService {\n paylasimYapildi = new EventEmitter(true);\n aktifIcerikNo = 0;\n\n kart: IKart = {\n _id: new FikoYTId().toString(),\n vt: 'FikoYT.sistem.hareketler' as IVT,\n yol: 'FikoYT.sistem.hareketler.kalem' as IYollar,\n turu: IKartTuru.KART,\n gizlilik: 'Herkese Açık',\n kisiler: [],\n veri: {\n solSimge: { aciklama: undefined, baslik: 'HMI', renkArka: '#ff9800', renkYazi: '#fff' },\n kurdela: { aciklama: undefined, baslik: 'Satış', renkArka: undefined, renkYazi: undefined },\n icerikler: [\n { _id: new FikoYTId().toString(), html: '', aciklama: '', sifre: null } as IIcerik,\n ],\n },\n };\n\n readonly parametreSetleri: IParametreSetiGrubu[] = [\n /* {\n id: 'hmi.siparis',\n baslik: 'Sipariş',\n simge: '🛒',\n aciklama: 'Sipariş kaydı oluştur',\n renk: 'linear-gradient(135deg, #e65100, #ff9800)',\n kaynak: 'kod',\n bilesen: 'siparis',\n parametreler: [\n { turu: 'Otomatik Kod', ismi: 'siparisNo', baslik: 'Sipariş No', ayarlar: { kodFormat: '{PREFIX}-{YIL}-{AY}-{SAYI:3}', kodPrefix: 'SP' } },\n { ...musteriAcilirKutu('musteri', 'Müşteri'), ayarlar: { ...musteriAcilirKutu('musteri', 'Müşteri').ayarlar, zorunlu: true } } as any,\n { turu: 'Yazı', ismi: 'urunAdi', baslik: 'Ürün Adı', ayarlar: { zorunlu: true } },\n { turu: 'Sayı', ismi: 'miktar', baslik: 'Miktar', ayarlar: { min: 1 } },\n { turu: 'Açılır Kutu', ismi: 'birim', baslik: 'Birim', ayarlar: {\n secenekler: [\n { label: 'Adet', value: 'Adet' }, { label: 'Kg', value: 'Kg' }, { label: 'Ton', value: 'Ton' },\n { label: 'Metre', value: 'Metre' }, { label: 'Takım', value: 'Takım' },\n ],\n } },\n { turu: 'Sayı', ismi: 'birimFiyat', baslik: 'Birim Fiyat', ayarlar: { min: 0, adim: 0.01 } },\n { turu: 'Açılır Kutu', ismi: 'paraBirimi', baslik: 'Para Birimi', ayarlar: {\n secenekler: [\n { label: '₺ TRY', value: 'TRY' }, { label: '$ USD', value: 'USD' }, { label: '€ EUR', value: 'EUR' },\n ],\n } },\n { turu: 'Tarih', ismi: 'teslimTarihi', baslik: 'Teslim Tarihi' },\n { turu: 'Açılır Kutu', ismi: 'durum', baslik: 'Durum', ayarlar: {\n itemSablon: { aktif: true, simgeGoster: false, renkGoster: true, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Bekliyor', value: 'Bekliyor', renk: '#8c8c8c' },\n { label: 'Onaylandı', value: 'Onaylandı', renk: '#1890ff' },\n { label: 'Üretimde', value: 'Üretimde', renk: '#fa8c16' },\n { label: 'Hazır', value: 'Hazır', renk: '#52c41a' },\n { label: 'Sevk Edildi', value: 'Sevk Edildi', renk: '#13c2c2' },\n { label: 'İptal', value: 'İptal', renk: '#f5222d' },\n ],\n } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ],\n sayfaKurallari: { yeniSayfaEngelle: true },\n sablon: {\n genislik: 520, yukseklik: 260, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #3e1a00 0%, #e65100 50%, #ff9800 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'sp0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 5, stil: { fill: 'rgba(255,255,255,0.15)' } },\n { id: 'sp1', tur: 'sabit-metin', icerik: '🛒', x: 5, y: 8, genislik: 50, yukseklik: 50, stil: { fontSize: 32, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'sp1a', tur: 'parametre-render', parametreAnahtari: 'siparisNo', x: 16, y: 8, genislik: 160, yukseklik: 18, stil: { fontSize: 9, fontWeight: '700', color: 'rgba(255,224,178,0.7)', letterSpacing: 2, verticalAlign: 'center' } },\n { id: 'sp2', tur: 'parametre-metin', parametreAnahtari: 'musteri', x: 5, y: 20, genislik: 320, yukseklik: 30, stil: { fontSize: 20, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'sp3', tur: 'parametre-metin', parametreAnahtari: 'urunAdi', x: 5, y: 34, genislik: 400, yukseklik: 26, stil: { fontSize: 15, fontWeight: '500', color: '#ffe0b2', verticalAlign: 'center' } },\n { id: 'sp9a', tur: 'sekil', sekilTuru: 'dikdortgen', x: 72, y: 54, genislik: 120, yukseklik: 30, stil: { fill: 'rgba(255,255,255,0.08)', borderRadius: 15 } },\n { id: 'sp9', tur: 'parametre-render', parametreAnahtari: 'durum', x: 72, y: 54, genislik: 120, yukseklik: 30, stil: { fontSize: 12, fontWeight: '700', color: '#ffffff', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'sp11', tur: 'sabit-metin', icerik: '◆ SİPARİŞ', x: 60, y: 92, genislik: 200, yukseklik: 16, stil: { fontSize: 8, fontWeight: '600', color: 'rgba(255,224,178,0.3)', verticalAlign: 'center', letterSpacing: 2, textAlign: 'right' } },\n ],\n } as ISablon,\n altKartSablonlari: [\n { id: 'hmi.siparis.kalem', baslik: 'Sipariş Kalemi', simge: '📦', bilesen: 'siparis-kalemi' },\n { id: 'hmi.siparis.durum', baslik: 'Durum Güncelleme', simge: '🔄', parametreler: [\n { turu: 'Açılır Kutu', ismi: 'durum', baslik: 'Durum', ayarlar: { zorunlu: true, secenekler: [\n { label: 'Bekliyor', value: 'Bekliyor', renk: '#8c8c8c' }, { label: 'Onaylandı', value: 'Onaylandı', renk: '#1890ff' },\n { label: 'Üretimde', value: 'Üretimde', renk: '#fa8c16' }, { label: 'Hazır', value: 'Hazır', renk: '#52c41a' },\n { label: 'Sevk Edildi', value: 'Sevk Edildi', renk: '#13c2c2' }, { label: 'İptal', value: 'İptal', renk: '#f5222d' },\n ], itemSablon: { aktif: true, renkGoster: true } } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Açıklama' },\n ] },\n ],\n },\n {\n id: 'hmi.teklif',\n baslik: 'Teklif',\n simge: '📑',\n aciklama: 'Teklif hazırla',\n renk: 'linear-gradient(135deg, #1a237e, #5c6bc0)',\n kaynak: 'kod',\n bilesen: 'teklif',\n parametreler: [\n { turu: 'Otomatik Kod', ismi: 'teklifNo', baslik: 'Teklif No', ayarlar: { kodFormat: '{PREFIX}-{YIL}-{AY}-{SAYI:3}', kodPrefix: 'TK' } },\n { ...firmaAcilirKutu('firma', 'Firma / Müşteri'), ayarlar: { ...firmaAcilirKutu('firma', 'Firma / Müşteri').ayarlar, zorunlu: true } } as any,\n { turu: 'Yazı', ismi: 'yetkili', baslik: 'Yetkili Kişi' },\n { turu: 'Yazı', ismi: 'urunAdi', baslik: 'Ürün / Hizmet', ayarlar: { zorunlu: true } },\n { turu: 'Sayı', ismi: 'miktar', baslik: 'Miktar', ayarlar: { min: 1 } },\n { turu: 'Sayı', ismi: 'birimFiyat', baslik: 'Birim Fiyat', ayarlar: { min: 0, adim: 0.01 } },\n { turu: 'Açılır Kutu', ismi: 'paraBirimi', baslik: 'Para Birimi', ayarlar: {\n secenekler: [\n { label: '₺ TRY', value: 'TRY' }, { label: '$ USD', value: 'USD' }, { label: '€ EUR', value: 'EUR' },\n ],\n } },\n { turu: 'Tarih', ismi: 'gecerlilikTarihi', baslik: 'Geçerlilik Tarihi' },\n { turu: 'Açılır Kutu', ismi: 'durum', baslik: 'Durum', ayarlar: {\n itemSablon: { aktif: true, simgeGoster: false, renkGoster: true, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Taslak', value: 'Taslak', renk: '#8c8c8c' },\n { label: 'Gönderildi', value: 'Gönderildi', renk: '#1890ff' },\n { label: 'Kabul Edildi', value: 'Kabul Edildi', renk: '#52c41a' },\n { label: 'Reddedildi', value: 'Reddedildi', renk: '#f5222d' },\n ],\n } },\n { turu: 'Yazı Alanı', ismi: 'aciklama', baslik: 'Açıklama / Notlar' },\n ],\n sayfaKurallari: { yeniSayfaEngelle: true },\n sablon: {\n genislik: 520, yukseklik: 280, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #0a0e2a 0%, #1a237e 50%, #5c6bc0 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'tk0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 5, stil: { fill: 'rgba(255,255,255,0.12)' } },\n { id: 'tk1', tur: 'sabit-metin', icerik: '📑', x: 5, y: 6, genislik: 50, yukseklik: 50, stil: { fontSize: 32, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'tk1a', tur: 'parametre-render', parametreAnahtari: 'teklifNo', x: 16, y: 8, genislik: 160, yukseklik: 18, stil: { fontSize: 9, fontWeight: '700', color: 'rgba(159,168,218,0.7)', letterSpacing: 2, verticalAlign: 'center' } },\n { id: 'tk2', tur: 'parametre-metin', parametreAnahtari: 'firma', x: 5, y: 20, genislik: 350, yukseklik: 32, stil: { fontSize: 20, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'tk10', tur: 'sabit-metin', icerik: '◆ TEKLİF', x: 60, y: 92, genislik: 200, yukseklik: 16, stil: { fontSize: 8, fontWeight: '600', color: 'rgba(159,168,218,0.3)', verticalAlign: 'center', letterSpacing: 2, textAlign: 'right' } },\n ],\n } as ISablon,\n altKartSablonlari: [\n { id: 'hmi.teklif.revizyon', baslik: 'Revizyon', simge: '🔄', bilesen: 'revizyon' },\n { id: 'hmi.teklif.durum', baslik: 'Durum Güncelleme', simge: '🔄', parametreler: [\n { turu: 'Açılır Kutu', ismi: 'durum', baslik: 'Durum', ayarlar: { zorunlu: true, secenekler: [\n { label: 'Taslak', value: 'Taslak', renk: '#8c8c8c' }, { label: 'Gönderildi', value: 'Gönderildi', renk: '#1890ff' },\n { label: 'Kabul Edildi', value: 'Kabul Edildi', renk: '#52c41a' }, { label: 'Reddedildi', value: 'Reddedildi', renk: '#f5222d' },\n ], itemSablon: { aktif: true, renkGoster: true } } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Açıklama' },\n ] },\n ],\n },\n {\n id: 'hmi.musteri',\n baslik: 'Müşteri',\n simge: '🏪',\n aciklama: 'Müşteri kaydı oluştur',\n renk: 'linear-gradient(135deg, #004d40, #00bfa5)',\n kaynak: 'kod',\n bilesen: 'musteri',\n parametreler: [\n { turu: 'Yazı', ismi: 'firmaAdi', baslik: 'Firma Adı', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'yetkili', baslik: 'Yetkili Kişi' },\n { turu: 'Yazı', ismi: 'telefon', baslik: 'Telefon', ayarlar: { solSimge: '📱' } },\n { turu: 'Yazı', ismi: 'eposta', baslik: 'E-posta', ayarlar: { solSimge: '📧' } },\n { turu: 'Yazı', ismi: 'adres', baslik: 'Adres' },\n { turu: 'Yazı', ismi: 'vergiNo', baslik: 'Vergi No' },\n { turu: 'Açılır Kutu', ismi: 'sektor', baslik: 'Sektör', ayarlar: {\n secenekler: [\n { label: 'Otomotiv', value: 'Otomotiv' }, { label: 'Makine', value: 'Makine' },\n { label: 'İnşaat', value: 'İnşaat' }, { label: 'Enerji', value: 'Enerji' },\n { label: 'Savunma', value: 'Savunma' }, { label: 'Gıda', value: 'Gıda' },\n { label: 'Diğer', value: 'Diğer' },\n ],\n } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ],\n sablon: {\n genislik: 520, yukseklik: 200, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #002420 0%, #004d40 50%, #00bfa5 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'mu0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 5, stil: { fill: 'rgba(255,255,255,0.12)' } },\n { id: 'mu1', tur: 'sabit-metin', icerik: '🏪', x: 5, y: 6, genislik: 46, yukseklik: 46, stil: { fontSize: 28, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'mu2', tur: 'parametre-metin', parametreAnahtari: 'firmaAdi', x: 5, y: 22, genislik: 400, yukseklik: 34, stil: { fontSize: 22, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'mu9', tur: 'sabit-metin', icerik: '◆ MÜŞTERİ KAYDI', x: 3, y: 88, genislik: 200, yukseklik: 16, stil: { fontSize: 8, fontWeight: '600', color: 'rgba(167,255,235,0.3)', verticalAlign: 'center', letterSpacing: 2 } },\n ],\n } as ISablon,\n altKartSablonlari: [\n { id: 'hmi.musteri.gorusme', baslik: 'Görüşme Notu', simge: '💬', bilesen: 'gorusme-notu' },\n ],\n }, */\n ];\n\n icerikEkle(ek: any = null) {\n if (!ek) {\n ek = { turu: 'UYGULAMAICERIK', _id: '', parametreler: [] };\n }\n this.kart?.veri?.icerikler?.push({\n _id: new FikoYTId().toString(), aciklama: '', html: '', ek, sifre: null,\n }) ?? 0;\n }\n\n sifirla() {\n this.kart = {\n _id: new FikoYTId().toString(),\n vt: 'FikoYT.sistem.hareketler' as IVT,\n yol: 'FikoYT.sistem.hareketler.kalem' as IYollar,\n turu: IKartTuru.KART,\n gizlilik: 'Herkese Açık',\n kisiler: [],\n veri: {\n solSimge: { aciklama: undefined, baslik: 'HMI', renkArka: '#ff9800', renkYazi: '#fff' },\n kurdela: { aciklama: undefined, baslik: 'Satış', renkArka: undefined, renkYazi: undefined },\n icerikler: [],\n },\n };\n this.icerikEkle();\n }\n\n aktifEtSonSayfa() {\n this.aktifIcerikNo = (this.kart?.veri?.icerikler?.length ?? 1) - 1;\n }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { IKart, IKartTuru, IIcerik, IVT, IYollar } from '@/src/service/fikoyt-ui/interfaces/IKart.interface';\nimport { IParametreSetiGrubu } from '@/src/service/fikoyt-ui/interfaces/IParametreSeti.interface';\nimport { ISablon } from '@/src/service/fikoyt-ui/src/lib/paylasim-sistemi/sablon-editoru/sablon.interface';\nimport { FikoYTId } from '@/src/service/fikoyt-ui/helpers/FikoYTId';\nimport { personelAcilirKutu, TR_RX_FN } from '../projeler/hmi-ortak-helpers';\n\nconst UYG = 'FikoYT.sistem.hmi.uretim';\n\n@Injectable({ providedIn: 'root' })\nexport class HmiUretimService {\n paylasimYapildi = new EventEmitter(true);\n aktifIcerikNo = 0;\n\n kart: IKart = {\n _id: new FikoYTId().toString(),\n vt: 'FikoYT.sistem.hareketler' as IVT,\n yol: 'FikoYT.sistem.hareketler.kalem' as IYollar,\n turu: IKartTuru.KART,\n gizlilik: 'Herkese Açık',\n kisiler: [],\n veri: {\n solSimge: { aciklama: undefined, baslik: 'HMI', renkArka: '#f5222d', renkYazi: '#fff' },\n kurdela: { aciklama: undefined, baslik: 'Üretim', renkArka: undefined, renkYazi: undefined },\n icerikler: [\n { _id: new FikoYTId().toString(), html: '', aciklama: '', sifre: null } as IIcerik,\n ],\n },\n };\n\n readonly parametreSetleri: IParametreSetiGrubu[] = [\n /* {\n id: 'hmi.makine-tanimi',\n baslik: 'Makine Tanımı',\n simge: '⚙️',\n aciklama: 'Makine ve tezgah tanımla',\n renk: 'linear-gradient(135deg, #78350f, #f59e0b)',\n kaynak: 'kod',\n bilesen: 'makine-tanimi',\n altKartSablonlari: [\n {\n id: 'hmi.makine.bakim-plani',\n baslik: 'Bakım Planı',\n simge: '🔧',\n parametreler: [\n { turu: 'Yazı', ismi: 'bakimTuru', baslik: 'Bakım Türü', ayarlar: { zorunlu: true, placeholder: 'Örn: Yağ Değişimi' } },\n {\n turu: 'Açılır Kutu', ismi: 'periyot', baslik: 'Periyot', ayarlar: {\n zorunlu: true,\n secenekler: [\n { label: 'Günlük', value: 'Günlük' },\n { label: 'Haftalık', value: 'Haftalık' },\n { label: 'Aylık', value: 'Aylık' },\n { label: 'Yıllık', value: 'Yıllık' },\n ],\n }\n },\n { turu: 'Sayı', ismi: 'sure', baslik: 'Süre (Dakika)', ayarlar: { min: 1 } },\n { turu: 'Yazı', ismi: 'sonrakiTarih', baslik: 'Sonraki Tarih', ayarlar: { placeholder: 'YYYY-MM-DD' } },\n { turu: 'Yazı', ismi: 'sorumlu', baslik: 'Sorumlu', ayarlar: { placeholder: 'Teknisyen adı' } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar', ayarlar: { placeholder: 'Özel talimatlar...' } },\n ],\n sablon: {\n genislik: 520, yukseklik: 220, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #1a1a2e 0%, #0f3460 50%, #16213e 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'bp0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 4, stil: { fill: 'rgba(3,105,161,0.6)' } },\n { id: 'bp1', tur: 'sabit-metin', icerik: '🔧', x: 5, y: 6, genislik: 44, yukseklik: 44, stil: { fontSize: 28, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'bp2', tur: 'parametre-metin', parametreAnahtari: 'bakimTuru', x: 14, y: 6, genislik: 280, yukseklik: 26, stil: { fontSize: 16, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'bp3', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 35, genislik: 6, yukseklik: 185, stil: { fill: '#0369a1' } },\n { id: 'bp4', tur: 'sabit-metin', icerik: 'PERİYOT', x: 10, y: 45, genislik: 100, yukseklik: 10, stil: { fontSize: 6, fontWeight: '700', color: 'rgba(255,255,255,0.3)', letterSpacing: 2 } },\n { id: 'bp5', tur: 'parametre-metin', parametreAnahtari: 'periyot', x: 10, y: 52, genislik: 120, yukseklik: 20, stil: { fontSize: 13, fontWeight: '700', color: '#7dd3fc', verticalAlign: 'center' } },\n { id: 'bp6', tur: 'sabit-metin', icerik: 'SÜRE', x: 135, y: 45, genislik: 60, yukseklik: 10, stil: { fontSize: 6, fontWeight: '700', color: 'rgba(255,255,255,0.3)', letterSpacing: 2 } },\n { id: 'bp7', tur: 'parametre-metin', parametreAnahtari: 'sure', x: 135, y: 52, genislik: 50, yukseklik: 20, stil: { fontSize: 13, fontWeight: '600', color: '#94a3b8', verticalAlign: 'center' } },\n { id: 'bp7a', tur: 'sabit-metin', icerik: 'dk', x: 155, y: 53, genislik: 30, yukseklik: 18, stil: { fontSize: 8, fontWeight: '600', color: 'rgba(148,163,184,0.6)', verticalAlign: 'center' } },\n { id: 'bp8', tur: 'sabit-metin', icerik: 'SONRAKİ', x: 200, y: 45, genislik: 80, yukseklik: 10, stil: { fontSize: 6, fontWeight: '700', color: 'rgba(255,255,255,0.3)', letterSpacing: 2 } },\n { id: 'bp9', tur: 'parametre-metin', parametreAnahtari: 'sonrakiTarih', x: 200, y: 52, genislik: 100, yukseklik: 20, stil: { fontSize: 11, fontWeight: '600', color: '#94a3b8', verticalAlign: 'center' } },\n { id: 'bp10', tur: 'sabit-metin', icerik: 'SORUMLU', x: 10, y: 85, genislik: 80, yukseklik: 10, stil: { fontSize: 6, fontWeight: '700', color: 'rgba(255,255,255,0.3)', letterSpacing: 2 } },\n { id: 'bp11', tur: 'parametre-metin', parametreAnahtari: 'sorumlu', x: 10, y: 92, genislik: 180, yukseklik: 18, stil: { fontSize: 11, fontWeight: '600', color: '#94a3b8', verticalAlign: 'center' } },\n { id: 'bp12', tur: 'sekil', sekilTuru: 'dikdortgen', x: 5, y: 115, genislik: 460, yukseklik: 3, stil: { fill: 'rgba(255,255,255,0.08)', borderRadius: 2 } },\n { id: 'bp13', tur: 'sabit-metin', icerik: 'NOTLAR', x: 8, y: 120, genislik: 60, yukseklik: 10, stil: { fontSize: 6, fontWeight: '700', color: 'rgba(255,255,255,0.25)', letterSpacing: 2 } },\n { id: 'bp14', tur: 'parametre-metin', parametreAnahtari: 'notlar', x: 8, y: 128, genislik: 470, yukseklik: 40, stil: { fontSize: 10, fontWeight: '500', color: '#64748b', lineHeight: 1.3 } },\n { id: 'bp15', tur: 'sekil', sekilTuru: 'dikdortgen', x: 5, y: 175, genislik: 460, yukseklik: 2, stil: { fill: 'rgba(3,105,161,0.3)' } },\n { id: 'bp16', tur: 'sabit-metin', icerik: '◆ BAKIM PLANI', x: 5, y: 185, genislik: 120, yukseklik: 14, stil: { fontSize: 7, fontWeight: '600', color: 'rgba(3,105,161,0.4)', letterSpacing: 2 } },\n ],\n } as ISablon,\n },\n { id: 'hmi.makine.ariza-kaydi', baslik: 'Arıza Kaydı', simge: '⚠️', bilesen: 'ariza-kaydi' },\n ],\n },\n {\n id: 'hmi.is-emri',\n baslik: 'İş Emri',\n simge: '📋',\n aciklama: 'İş emri oluştur ve takip et',\n renk: 'linear-gradient(135deg, #1a237e, #1565c0)',\n kaynak: 'kod',\n bilesen: 'is-emri',\n altGruplar: [\n {\n id: 'hmi.is-emri.ekle',\n baslik: 'Yeni İş Emri',\n simge: '📋',\n aciklama: 'İş emri oluştur',\n parametreler: [\n { turu: 'Otomatik Kod', ismi: 'emirNo', baslik: 'Emir No', ayarlar: { kodFormat: '{PREFIX}-{YIL}-{AY}-{SAYI:3}', kodPrefix: 'IE' } },\n { turu: 'Yazı', ismi: 'urunAdi', baslik: 'Ürün Adı', ayarlar: { zorunlu: true } },\n { turu: 'Sayı', ismi: 'miktar', baslik: 'Miktar', ayarlar: { min: 1 } },\n {\n turu: 'Açılır Kutu', ismi: 'birim', baslik: 'Birim', ayarlar: {\n secenekler: [\n { label: 'Adet', value: 'Adet' }, { label: 'Kg', value: 'Kg' }, { label: 'Metre', value: 'Metre' },\n { label: 'Litre', value: 'Litre' }, { label: 'Ton', value: 'Ton' },\n ],\n }\n },\n {\n turu: 'Açılır Kutu', ismi: 'oncelik', baslik: 'Öncelik', ayarlar: {\n itemSablon: { aktif: true, simgeGoster: false, renkGoster: true, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Normal', value: 'Normal', renk: '#52c41a' },\n { label: 'Acil', value: 'Acil', renk: '#fa8c16' },\n { label: 'Kritik', value: 'Kritik', renk: '#f5222d' },\n ],\n }\n },\n { turu: 'Tarih', ismi: 'hedefTarih', baslik: 'Hedef Tarih' },\n personelAcilirKutu('sorumlu', 'Sorumlu'),\n { turu: 'Yazı Alanı', ismi: 'aciklama', baslik: 'Açıklama' },\n ],\n sayfaKurallari: { yeniSayfaEngelle: true },\n sablon: {\n genislik: 520, yukseklik: 240, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #0d1a3a 0%, #1a237e 50%, #1565c0 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'ie0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 5, stil: { fill: 'rgba(255,255,255,0.15)' } },\n { id: 'ie1', tur: 'sabit-metin', icerik: '📋', x: 5, y: 8, genislik: 50, yukseklik: 50, stil: { fontSize: 32, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'ie1a', tur: 'sekil', sekilTuru: 'dikdortgen', x: 16, y: 8, genislik: 80, yukseklik: 22, stil: { fill: 'rgba(255,255,255,0.1)', borderRadius: 4 } },\n { id: 'ie1b', tur: 'sabit-metin', icerik: 'İŞ EMRİ', x: 16, y: 8, genislik: 80, yukseklik: 22, stil: { fontSize: 9, fontWeight: '700', color: 'rgba(144,202,249,0.8)', textAlign: 'center', verticalAlign: 'center', letterSpacing: 2 } },\n { id: 'ie1c', tur: 'parametre-render', parametreAnahtari: 'emirNo', x: 55, y: 8, genislik: 160, yukseklik: 22, stil: { fontSize: 9, fontWeight: '600', color: 'rgba(144,202,249,0.6)', letterSpacing: 1, verticalAlign: 'center' } },\n { id: 'ie2', tur: 'parametre-metin', parametreAnahtari: 'urunAdi', x: 5, y: 22, genislik: 420, yukseklik: 40, stil: { fontSize: 22, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'ie3', tur: 'parametre-render', parametreAnahtari: 'miktar', x: 5, y: 48, genislik: 80, yukseklik: 36, stil: { fontSize: 28, fontWeight: '800', color: '#90caf9', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'ie3a', tur: 'parametre-render', parametreAnahtari: 'birim', x: 22, y: 52, genislik: 60, yukseklik: 20, stil: { fontSize: 12, fontWeight: '600', color: 'rgba(144,202,249,0.7)', verticalAlign: 'center' } },\n { id: 'ie4a', tur: 'sekil', sekilTuru: 'dikdortgen', x: 55, y: 48, genislik: 100, yukseklik: 30, stil: { fill: 'rgba(255,255,255,0.08)', borderRadius: 15 } },\n { id: 'ie4', tur: 'parametre-render', parametreAnahtari: 'oncelik', x: 55, y: 48, genislik: 100, yukseklik: 30, stil: { fontSize: 12, fontWeight: '700', color: '#ffffff', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'ie5', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 80, genislik: 520, yukseklik: 50, stil: { fill: 'rgba(0,0,0,0.25)' } },\n { id: 'ie5a', tur: 'sabit-metin', icerik: 'HEDEF TARİH', x: 5, y: 82, genislik: 120, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(255,255,255,0.35)', letterSpacing: 2 } },\n { id: 'ie5b', tur: 'parametre-render', parametreAnahtari: 'hedefTarih', x: 5, y: 88, genislik: 160, yukseklik: 24, stil: { fontSize: 14, fontWeight: '600', color: '#90caf9', verticalAlign: 'center' } },\n ],\n } as ISablon,\n altKartSablonlari: [\n {\n id: 'hmi.is-emri.durum-guncelle',\n baslik: 'Durum Güncelle',\n simge: '🔄',\n parametreler: [\n {\n turu: 'Açılır Kutu', ismi: 'durum', baslik: 'Durum', ayarlar: {\n zorunlu: true,\n itemSablon: { aktif: true, simgeGoster: false, renkGoster: true, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Başladı', value: 'Başladı', renk: '#1890ff' },\n { label: 'Devam', value: 'Devam', renk: '#13c2c2' },\n { label: 'Beklemede', value: 'Beklemede', renk: '#fa8c16' },\n { label: 'Tamamlandı', value: 'Tamamlandı', renk: '#52c41a' },\n { label: 'İptal', value: 'İptal', renk: '#f5222d' },\n ],\n }\n },\n { turu: 'Sayı', ismi: 'ilerleme', baslik: 'İlerleme %', ayarlar: { min: 0, maks: 100 } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ],\n sablon: {\n genislik: 520, yukseklik: 200, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(160deg, #0d1b2a 0%, #1b2838 40%, #1a3a5f 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'ied0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 6, yukseklik: 200, stil: { fill: '#1565c0' } },\n { id: 'ied1', tur: 'sabit-metin', icerik: '🔄', x: 4, y: 8, genislik: 40, yukseklik: 40, stil: { fontSize: 24, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'ied2', tur: 'sabit-metin', icerik: 'DURUM GÜNCELLEMESİ', x: 14, y: 8, genislik: 200, yukseklik: 18, stil: { fontSize: 9, fontWeight: '700', color: '#90caf9', letterSpacing: 2, verticalAlign: 'center' } },\n { id: 'ied3a', tur: 'sekil', sekilTuru: 'dikdortgen', x: 15, y: 32, genislik: 180, yukseklik: 34, stil: { fill: 'rgba(21,101,192,0.15)', borderRadius: 17 } },\n { id: 'ied3', tur: 'parametre-render', parametreAnahtari: 'durum', x: 15, y: 32, genislik: 180, yukseklik: 34, stil: { fontSize: 15, fontWeight: '700', color: '#ffffff', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'ied4', tur: 'parametre-render', parametreAnahtari: 'ilerleme', x: 55, y: 32, genislik: 100, yukseklik: 44, stil: { fontSize: 36, fontWeight: '900', color: '#90caf9', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'ied4a', tur: 'sabit-metin', icerik: '%', x: 75, y: 36, genislik: 30, yukseklik: 20, stil: { fontSize: 16, fontWeight: '600', color: '#90caf9', verticalAlign: 'center' } },\n { id: 'ied5', tur: 'sekil', sekilTuru: 'dikdortgen', x: 4, y: 75, genislik: 450, yukseklik: 5, stil: { fill: 'rgba(255,255,255,0.06)', borderRadius: 3 } },\n { id: 'ied6', tur: 'sabit-metin', icerik: 'İLERLEME', x: 4, y: 85, genislik: 100, yukseklik: 14, stil: { fontSize: 7, fontWeight: '600', color: 'rgba(255,255,255,0.25)', letterSpacing: 2 } },\n ],\n } as ISablon,\n },\n {\n id: 'hmi.is-emri.kalite-kontrol',\n baslik: 'Kalite Kontrol',\n simge: '✅',\n parametreler: [\n {\n turu: 'Açılır Kutu', ismi: 'sonuc', baslik: 'Sonuç', ayarlar: {\n zorunlu: true,\n itemSablon: { aktif: true, simgeGoster: false, renkGoster: true, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Uygun', value: 'Uygun', renk: '#52c41a' },\n { label: 'Uygun Değil', value: 'Uygun Değil', renk: '#f5222d' },\n { label: 'Şartlı Kabul', value: 'Şartlı Kabul', renk: '#fa8c16' },\n ],\n }\n },\n { turu: 'Yazı', ismi: 'olcum', baslik: 'Ölçüm Değeri' },\n { turu: 'Yazı', ismi: 'tolerans', baslik: 'Tolerans' },\n { turu: 'Yazı Alanı', ismi: 'hataTanimi', baslik: 'Hata Tanımı' },\n personelAcilirKutu('onaylayan', 'Onaylayan'),\n ],\n sablon: {\n genislik: 520, yukseklik: 200, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(160deg, #0d1b2a 0%, #1b3a2a 50%, #1b5e20 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'iekk0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 6, yukseklik: 200, stil: { fill: '#43a047' } },\n { id: 'iekk1', tur: 'sabit-metin', icerik: '✅', x: 4, y: 8, genislik: 40, yukseklik: 40, stil: { fontSize: 24, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'iekk2', tur: 'sabit-metin', icerik: 'KALİTE KONTROL', x: 14, y: 8, genislik: 200, yukseklik: 18, stil: { fontSize: 9, fontWeight: '700', color: '#66bb6a', letterSpacing: 2, verticalAlign: 'center' } },\n { id: 'iekk3a', tur: 'sekil', sekilTuru: 'dikdortgen', x: 15, y: 35, genislik: 160, yukseklik: 34, stil: { fill: 'rgba(67,160,71,0.15)', borderRadius: 17 } },\n { id: 'iekk3', tur: 'parametre-render', parametreAnahtari: 'sonuc', x: 15, y: 35, genislik: 160, yukseklik: 34, stil: { fontSize: 15, fontWeight: '700', color: '#ffffff', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'iekk4', tur: 'sabit-metin', icerik: 'ÖLÇÜM', x: 55, y: 32, genislik: 80, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(255,255,255,0.35)', letterSpacing: 2 } },\n { id: 'iekk5', tur: 'parametre-render', parametreAnahtari: 'olcum', x: 55, y: 40, genislik: 120, yukseklik: 24, stil: { fontSize: 14, fontWeight: '600', color: '#a5d6a7', verticalAlign: 'center' } },\n ],\n } as ISablon,\n },\n { id: 'hmi.is-emri.uretim-kaydi', baslik: 'Üretim Kaydı', simge: '📊', bilesen: 'uretim-kaydi' },\n ],\n },\n ],\n },\n {\n id: 'hmi.kalite',\n baslik: 'Kalite Kontrol',\n simge: '✅',\n aciklama: 'Kalite kontrol formu',\n renk: 'linear-gradient(135deg, #1b5e20, #43a047)',\n kaynak: 'kod',\n bilesen: 'kalite',\n parametreler: [\n { turu: 'Otomatik Kod', ismi: 'kontrolNo', baslik: 'Kontrol No', ayarlar: { kodFormat: '{PREFIX}-{YIL}-{AY}-{SAYI:3}', kodPrefix: 'KK' } },\n { turu: 'Yazı', ismi: 'urunAdi', baslik: 'Ürün Adı', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'partNo', baslik: 'Part No' },\n { turu: 'Sayı', ismi: 'olcuDeger', baslik: 'Ölçü Değer' },\n { turu: 'Sayı', ismi: 'toleransAlt', baslik: 'Tolerans Alt' },\n { turu: 'Sayı', ismi: 'toleransUst', baslik: 'Tolerans Üst' },\n {\n turu: 'Açılır Kutu', ismi: 'sonuc', baslik: 'Sonuç', ayarlar: {\n itemSablon: { aktif: true, simgeGoster: false, renkGoster: true, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Uygun', value: 'Uygun', renk: '#52c41a' },\n { label: 'Uygun Değil', value: 'Uygun Değil', renk: '#f5222d' },\n { label: 'Şartlı Kabul', value: 'Şartlı Kabul', renk: '#fa8c16' },\n ],\n }\n },\n personelAcilirKutu('kontrolEden', 'Kontrol Eden'),\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ],\n sablon: {\n genislik: 520, yukseklik: 240, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #0a2e10 0%, #1b5e20 50%, #43a047 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'kk0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 5, stil: { fill: 'rgba(255,255,255,0.12)' } },\n { id: 'kk1', tur: 'sabit-metin', icerik: '✅', x: 5, y: 8, genislik: 50, yukseklik: 50, stil: { fontSize: 32, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'kk1a', tur: 'parametre-render', parametreAnahtari: 'kontrolNo', x: 16, y: 10, genislik: 160, yukseklik: 18, stil: { fontSize: 9, fontWeight: '700', color: 'rgba(165,214,167,0.7)', letterSpacing: 2, verticalAlign: 'center' } },\n { id: 'kk2', tur: 'parametre-metin', parametreAnahtari: 'urunAdi', x: 5, y: 24, genislik: 320, yukseklik: 36, stil: { fontSize: 20, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'kk6a', tur: 'sekil', sekilTuru: 'dikdortgen', x: 70, y: 54, genislik: 140, yukseklik: 36, stil: { fill: 'rgba(255,255,255,0.08)', borderRadius: 18 } },\n { id: 'kk6', tur: 'parametre-render', parametreAnahtari: 'sonuc', x: 70, y: 54, genislik: 140, yukseklik: 36, stil: { fontSize: 16, fontWeight: '800', color: '#ffffff', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'kk8', tur: 'sabit-metin', icerik: '◆ KALİTE KONTROL FORMU', x: 55, y: 90, genislik: 250, yukseklik: 22, stil: { fontSize: 8, fontWeight: '600', color: 'rgba(165,214,167,0.3)', verticalAlign: 'center', letterSpacing: 2, textAlign: 'right' } },\n ],\n } as ISablon,\n altKartSablonlari: [\n { id: 'hmi.kalite.olcum', baslik: 'Ölçüm', simge: '📏', bilesen: 'kalite-olcum' },\n ],\n },\n {\n id: 'hmi.uretim-sayac',\n baslik: 'Üretim Sayacı',\n simge: '📊',\n aciklama: 'Tezgah üretim takibi',\n renk: 'linear-gradient(135deg, #311b92, #7c4dff)',\n kaynak: 'kod',\n bilesen: 'uretim-sayac',\n parametreler: [\n { turu: 'Yazı', ismi: 'tezgah', baslik: 'Tezgah', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'urun', baslik: 'Ürün' },\n { turu: 'Sayı', ismi: 'hedef', baslik: 'Hedef', ayarlar: { min: 1, olaylar: { degisti: `var v = form.find(function(p){return p.ismi==='verimlilik'}); var g = form.find(function(p){return p.ismi==='gerceklesen'})?.degeri||0; if(v && itm.degeri>0) v.degeri=Math.round((g/itm.degeri)*100);` } } },\n { turu: 'Sayı', ismi: 'gerceklesen', baslik: 'Gerçekleşen', ayarlar: { olaylar: { degisti: `var v = form.find(function(p){return p.ismi==='verimlilik'}); var h = form.find(function(p){return p.ismi==='hedef'})?.degeri||0; if(v && h>0) v.degeri=Math.round((itm.degeri/h)*100);` } } },\n { turu: 'Sayı', ismi: 'fire', baslik: 'Fire' },\n { turu: 'Sayı', ismi: 'verimlilik', baslik: 'Verimlilik %', ayarlar: { sadeceOkunur: true } },\n ],\n sablon: {\n genislik: 520, yukseklik: 200, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #1a0a3e 0%, #311b92 50%, #7c4dff 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'us0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 5, stil: { fill: 'rgba(255,255,255,0.12)' } },\n { id: 'us1', tur: 'sabit-metin', icerik: '📊', x: 5, y: 6, genislik: 46, yukseklik: 46, stil: { fontSize: 28, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'us2', tur: 'parametre-metin', parametreAnahtari: 'tezgah', x: 15, y: 6, genislik: 260, yukseklik: 28, stil: { fontSize: 18, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'us4', tur: 'sabit-metin', icerik: 'HEDEF', x: 5, y: 40, genislik: 100, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(179,157,219,0.6)', letterSpacing: 2, textAlign: 'center' } },\n { id: 'us5', tur: 'parametre-render', parametreAnahtari: 'hedef', x: 5, y: 46, genislik: 100, yukseklik: 36, stil: { fontSize: 30, fontWeight: '900', color: '#b39ddb', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'us6', tur: 'sabit-metin', icerik: 'GERÇEKLEŞEN', x: 28, y: 40, genislik: 120, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(124,77,255,0.8)', letterSpacing: 2, textAlign: 'center' } },\n { id: 'us7', tur: 'parametre-render', parametreAnahtari: 'gerceklesen', x: 28, y: 46, genislik: 120, yukseklik: 36, stil: { fontSize: 30, fontWeight: '900', color: '#7c4dff', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'us8', tur: 'sabit-metin', icerik: 'FİRE', x: 55, y: 40, genislik: 80, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(255,138,128,0.6)', letterSpacing: 2, textAlign: 'center' } },\n { id: 'us9', tur: 'parametre-render', parametreAnahtari: 'fire', x: 55, y: 46, genislik: 80, yukseklik: 36, stil: { fontSize: 30, fontWeight: '900', color: '#ff8a80', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'us16', tur: 'sabit-metin', icerik: '◆ ÜRETİM SAYACI', x: 3, y: 86, genislik: 200, yukseklik: 18, stil: { fontSize: 8, fontWeight: '600', color: 'rgba(179,157,219,0.35)', verticalAlign: 'center', letterSpacing: 2 } },\n ],\n } as ISablon,\n altKartSablonlari: [\n { id: 'hmi.uretim-sayac.durus', baslik: 'Duruş Kaydı', simge: '⏸️', bilesen: 'durus-kaydi' },\n ],\n },\n {\n id: 'hmi.vardiya-devir',\n baslik: 'Vardiya Devir Teslim',\n simge: '🔄',\n aciklama: 'Vardiya devir teslim kaydı',\n renk: 'linear-gradient(135deg, #004d40, #00897b)',\n kaynak: 'kod',\n bilesen: 'vardiya-devir',\n parametreler: [\n {\n turu: 'Açılır Kutu', ismi: 'vardiya', baslik: 'Vardiya', ayarlar: {\n zorunlu: true,\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Sabah (06-14)', value: 'Sabah', simge: '☀️' },\n { label: 'Öğle (14-22)', value: 'Öğle', simge: '🌤️' },\n { label: 'Gece (22-06)', value: 'Gece', simge: '🌙' },\n ],\n }\n },\n { ...personelAcilirKutu('devreden', 'Devreden'), ayarlar: { ...personelAcilirKutu('devreden', 'Devreden').ayarlar, zorunlu: true } } as any,\n { ...personelAcilirKutu('devralan', 'Devralan'), ayarlar: { ...personelAcilirKutu('devralan', 'Devralan').ayarlar, zorunlu: true } } as any,\n {\n turu: 'Açılır Kutu', ismi: 'makineDurumu', baslik: 'Makine Durumu', ayarlar: {\n itemSablon: { aktif: true, simgeGoster: false, renkGoster: true, aciklamaGoster: false, resimGoster: false },\n secenekler: [\n { label: 'Çalışıyor', value: 'Çalışıyor', renk: '#52c41a' },\n { label: 'Arızalı', value: 'Arızalı', renk: '#f5222d' },\n { label: 'Bakımda', value: 'Bakımda', renk: '#fa8c16' },\n { label: 'Boşta', value: 'Boşta', renk: '#8c8c8c' },\n ],\n }\n },\n { turu: 'Sayı', ismi: 'uretimAdedi', baslik: 'Üretim Adedi' },\n { turu: 'Sayı', ismi: 'fireAdedi', baslik: 'Fire Adedi' },\n { turu: 'Yazı Alanı', ismi: 'bekleyenIsler', baslik: 'Bekleyen İşler' },\n { turu: 'Yazı Alanı', ismi: 'onemliNotlar', baslik: 'Önemli Notlar' },\n ],\n sablon: {\n genislik: 520, yukseklik: 260, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #002620 0%, #004d40 50%, #00897b 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'vd0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 5, stil: { fill: 'rgba(255,255,255,0.12)' } },\n { id: 'vd1', tur: 'sabit-metin', icerik: '🔄', x: 5, y: 8, genislik: 50, yukseklik: 50, stil: { fontSize: 32, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'vd1b', tur: 'parametre-render', parametreAnahtari: 'vardiya', x: 16, y: 10, genislik: 140, yukseklik: 26, stil: { fontSize: 12, fontWeight: '700', color: '#a7ffeb', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'vd11', tur: 'sabit-metin', icerik: '◆ VARDİYA DEVİR TESLİM', x: 3, y: 90, genislik: 250, yukseklik: 26, stil: { fontSize: 8, fontWeight: '600', color: 'rgba(167,255,235,0.35)', verticalAlign: 'center', letterSpacing: 2 } },\n ],\n } as ISablon,\n altKartSablonlari: [\n { id: 'hmi.vardiya.not', baslik: 'Vardiya Notu', simge: '📋', bilesen: 'vardiya-notu' },\n ],\n }, */\n ];\n\n icerikEkle(ek: any = null) {\n if (!ek) {\n ek = { turu: 'UYGULAMAICERIK', _id: '', parametreler: [] };\n }\n this.kart?.veri?.icerikler?.push({\n _id: new FikoYTId().toString(), aciklama: '', html: '', ek, sifre: null,\n }) ?? 0;\n }\n\n sifirla() {\n this.kart = {\n _id: new FikoYTId().toString(),\n vt: 'FikoYT.sistem.hareketler' as IVT,\n yol: 'FikoYT.sistem.hareketler.kalem' as IYollar,\n turu: IKartTuru.KART,\n gizlilik: 'Herkese Açık',\n kisiler: [],\n veri: {\n solSimge: { aciklama: undefined, baslik: 'HMI', renkArka: '#f5222d', renkYazi: '#fff' },\n kurdela: { aciklama: undefined, baslik: 'Üretim', renkArka: undefined, renkYazi: undefined },\n icerikler: [],\n },\n };\n this.icerikEkle();\n }\n\n aktifEtSonSayfa() {\n this.aktifIcerikNo = (this.kart?.veri?.icerikler?.length ?? 1) - 1;\n }\n}\n","export const TR_MAP_STR = `{i:'[iİ]',İ:'[iİ]',ı:'[ıI]',I:'[ıI]',ş:'[şŞ]',Ş:'[şŞ]',ç:'[çÇ]',Ç:'[çÇ]',ö:'[öÖ]',Ö:'[öÖ]',ü:'[üÜ]',Ü:'[üÜ]',ğ:'[ğĞ]',Ğ:'[ğĞ]'}`;\nexport const TR_RX_FN = `var trMap = ${TR_MAP_STR}; var rx = deger ? Array.from(deger).map(function(c){return trMap[c]||c}).join('') : '';`;\n\nconst LOOKUP_ICERIKLER = `{\"$lookup\":{\"from\":\"hareketler\",\"localField\":\"veri.icerikler\",\"foreignField\":\"_id\",\"as\":\"veri.icerikler\"}}`;\nconst PV_FN = `var ic=scnk.veri?.icerikler?.[0]; var p=(ic?.ek?.parametreler||[]); function _pv(n){var v=(p.find(function(x){return x.ismi===n})||{}).degeri; if(v!=null&&v!=='') return v; var e=ic?.ek; return e?e[n]||'':'';}`;\n\nexport function departmanAcilirKutu(ismi: string, baslik: string): any {\n return {\n turu: 'Açılır Kutu', ismi, baslik, ayarlar: {\n arama: true, silme: true, solSimge: '🏢',\n hizliEkle: 'Departman',\n hizliEkleSetId: 'hmi.departman',\n hizliEkleKaynakSetleri: [DEPARTMAN_HIZLI_SET],\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: true, resimGoster: false },\n secenekItm: `\n ${PV_FN}\n var adi = _pv('departmanAdi') || ('Departman #' + String(scnk._id).slice(-4));\n var kodu = _pv('departmanKodu');\n return { value: scnk._id, label: adi, simge: '🏢', aciklama: kodu }\n `,\n fapiAyarlar: {\n vt: 'FikoYT.sistem.hareketler',\n uygulama: 'FikoYT.sistem.hmi.yonetim',\n solSimge: { baslik: 'HMI', renkArka: '#722ed1', renkYazi: '#fff' },\n kurdela: { baslik: 'Yönetim' },\n pipeFunc: `${TR_RX_FN}\n var m = { \"silindi\": {\"$ne\":true} };\n var pipe = [ {\"$match\": m}, ${LOOKUP_ICERIKLER}, {\"$match\":{\"veri.icerikler.ek._secilenSetId\":\"hmi.departman\"}} ];\n if (rx) pipe.push({\"$match\":{\"veri.icerikler.ek.parametreler\":{\"$elemMatch\":{\"ismi\":\"departmanAdi\",\"degeri\":{\"$regex\":rx,\"$options\":\"i\"}}}}});\n pipe.push({\"$sort\":{_id:-1}}, {\"$limit\":20}, {\"$project\":{_id:1,\"veri.icerikler\":1}});\n return pipe`,\n },\n }\n };\n}\n\n// Tam parametre seti — hızlı ekle'de tüm alanlar gösterilir\nconst PERSONEL_HIZLI_SET = {\n id: 'hmi.personel', baslik: 'Personel', simge: '👤', kaynak: 'kod',\n parametreler: [\n { turu: 'Yazı', ismi: 'ad', baslik: 'Ad', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'soyad', baslik: 'Soyad', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'sicilNo', baslik: 'Sicil No' },\n departmanAcilirKutu('departman', 'Departman'),\n { turu: 'Yazı', ismi: 'unvan', baslik: 'Ünvan' },\n { turu: 'Yazı', ismi: 'gorev', baslik: 'Görev' },\n { turu: 'Yazı', ismi: 'telefon', baslik: 'Telefon', ayarlar: { solSimge: '📱' } },\n { turu: 'Yazı', ismi: 'eposta', baslik: 'E-posta', ayarlar: { solSimge: '📧' } },\n { turu: 'Tarih', ismi: 'iseGirisTarihi', baslik: 'İşe Giriş Tarihi' },\n ],\n};\n\nconst DEPARTMAN_HIZLI_SET = {\n id: 'hmi.departman', baslik: 'Departman', simge: '🏢', kaynak: 'kod',\n parametreler: [\n { turu: 'Yazı', ismi: 'departmanAdi', baslik: 'Departman Adı', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'departmanKodu', baslik: 'Departman Kodu' },\n departmanAcilirKutu('ustDepartman', 'Üst Departman'),\n personelAcilirKutu('yonetici', 'Departman Yöneticisi'),\n { turu: 'Renk', ismi: 'renk', baslik: 'Renk' },\n { turu: 'Yazı Alanı', ismi: 'aciklama', baslik: 'Açıklama' },\n ],\n};\n\nconst MUSTERI_HIZLI_SET = {\n id: 'hmi.musteri', baslik: 'Müşteri', simge: '🏪', kaynak: 'kod',\n parametreler: [\n { turu: 'Yazı', ismi: 'firmaAdi', baslik: 'Firma Adı', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'yetkili', baslik: 'Yetkili Kişi' },\n { turu: 'Yazı', ismi: 'telefon', baslik: 'Telefon', ayarlar: { solSimge: '📱' } },\n { turu: 'Yazı', ismi: 'eposta', baslik: 'E-posta', ayarlar: { solSimge: '📧' } },\n { turu: 'Yazı', ismi: 'adres', baslik: 'Adres' },\n { turu: 'Yazı', ismi: 'vergiNo', baslik: 'Vergi No' },\n { turu: 'Açılır Kutu', ismi: 'kategori', baslik: 'Kategori', ayarlar: {\n secenekler: [\n { label: 'Hammadde', value: 'Hammadde' }, { label: 'Yardımcı Malzeme', value: 'Yardımcı Malzeme' },\n { label: 'Makine/Ekipman', value: 'Makine/Ekipman' }, { label: 'Hizmet', value: 'Hizmet' },\n { label: 'Lojistik', value: 'Lojistik' }, { label: 'Diğer', value: 'Diğer' },\n ],\n } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ],\n};\n\nexport function personelAcilirKutu(ismi: string, baslik: string): any {\n return {\n turu: 'Açılır Kutu', ismi, baslik, ayarlar: {\n arama: true, silme: true, solSimge: '👤',\n hizliEkle: 'Personel',\n hizliEkleSetId: 'hmi.personel',\n hizliEkleKaynakSetleri: [PERSONEL_HIZLI_SET],\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: true, resimGoster: false },\n secenekItm: `\n ${PV_FN}\n var isim = (_pv('ad') + ' ' + _pv('soyad')).trim() || _pv('unvan') || ('Personel #' + String(scnk._id).slice(-4));\n return { value: scnk._id, label: isim, simge: '👤', aciklama: [_pv('unvan'), _pv('gorev')].filter(Boolean).join(' · ') }\n `,\n fapiAyarlar: {\n vt: 'FikoYT.sistem.hareketler',\n uygulama: 'FikoYT.sistem.hmi.yonetim',\n solSimge: { baslik: 'HMI', renkArka: '#722ed1', renkYazi: '#fff' },\n kurdela: { baslik: 'Yönetim' },\n pipeFunc: `${TR_RX_FN}\n var m = { \"silindi\": {\"$ne\":true} };\n var pipe = [ {\"$match\": m}, ${LOOKUP_ICERIKLER}, {\"$match\":{\"veri.icerikler.ek._secilenSetId\":\"hmi.personel\"}} ];\n if (rx) pipe.push({\"$match\":{\"veri.icerikler.ek.parametreler\":{\"$elemMatch\":{\"ismi\":{\"$in\":[\"ad\",\"soyad\"]},\"degeri\":{\"$regex\":rx,\"$options\":\"i\"}}}}});\n pipe.push({\"$sort\":{_id:-1}}, {\"$limit\":15}, {\"$project\":{_id:1,\"veri.icerikler\":1}});\n return pipe`,\n },\n }\n };\n}\n\nexport function musteriAcilirKutu(ismi: string, baslik: string): any {\n return {\n turu: 'Açılır Kutu', ismi, baslik, ayarlar: {\n arama: true, silme: true, solSimge: '🏪',\n hizliEkle: 'Müşteri',\n hizliEkleSetId: 'hmi.musteri',\n hizliEkleKaynakSetleri: [MUSTERI_HIZLI_SET],\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: true, resimGoster: false },\n secenekItm: `\n ${PV_FN}\n var firma = _pv('firmaAdi');\n var yetkili = _pv('yetkili');\n return { value: scnk._id, label: firma || ('Müşteri #' + String(scnk._id).slice(-4)), simge: '🏪', aciklama: yetkili }\n `,\n fapiAyarlar: {\n vt: 'FikoYT.sistem.hareketler',\n uygulama: 'FikoYT.sistem.hmi.satis',\n solSimge: { baslik: 'HMI', renkArka: '#722ed1', renkYazi: '#fff' },\n kurdela: { baslik: 'Satış' },\n pipeFunc: `${TR_RX_FN}\n var m = { \"silindi\": {\"$ne\":true} };\n var pipe = [ {\"$match\": m}, ${LOOKUP_ICERIKLER}, {\"$match\":{\"veri.icerikler.ek._secilenSetId\":\"hmi.musteri\"}} ];\n if (rx) pipe.push({\"$match\":{\"veri.icerikler.ek.parametreler\":{\"$elemMatch\":{\"ismi\":\"firmaAdi\",\"degeri\":{\"$regex\":rx,\"$options\":\"i\"}}}}});\n pipe.push({\"$sort\":{_id:-1}}, {\"$limit\":15}, {\"$project\":{_id:1,\"veri.icerikler\":1}});\n return pipe`,\n },\n }\n };\n}\n\nexport function projeAcilirKutu(ismi: string, baslik: string, coklu = false): any {\n return {\n turu: 'Açılır Kutu', ismi, baslik, ayarlar: {\n arama: true, silme: true, solSimge: '📂', coklu,\n hizliEkle: 'Proje', hizliEkleSetId: 'hmi.proje.ekle',\n hizliEkleAlanlar: [{ ismi: 'projeAdi', baslik: 'Proje Adı', zorunlu: true }, { ismi: 'kategoriAdi', baslik: 'Kategori' }],\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: true, resimGoster: false },\n secenekItm: `\n ${PV_FN}\n var adi = _pv('projeAdi') || _pv('kategoriAdi') || '';\n if(!adi) adi = 'Proje #' + String(scnk._id).slice(-4);\n var durum = _pv('durum') || '';\n var musteri = _pv('musteri') || '';\n return { value: scnk._id, label: adi, simge: '📂', aciklama: [musteri, durum].filter(Boolean).join(' · ') }\n `,\n fapiAyarlar: {\n vt: 'FikoYT.sistem.hareketler',\n uygulama: 'FikoYT.sistem.uyar-dokum',\n solSimge: { baslik: 'Proje', renkArka: '#0891b2', renkYazi: '#fff' },\n pipeFunc: `${TR_RX_FN}\n var m = { \"silindi\": {\"$ne\":true} };\n var pipe = [ {\"$match\": m}, ${LOOKUP_ICERIKLER}, {\"$match\":{\"veri.icerikler.ek._secilenSetId\":{\"$regex\":\"^hmi\\\\\\\\.proje\"}}} ];\n if (rx) pipe.push({\"$match\":{\"veri.icerikler.ek.parametreler\":{\"$elemMatch\":{\"ismi\":\"projeAdi\",\"degeri\":{\"$regex\":rx,\"$options\":\"i\"}}}}});\n pipe.push({\"$sort\":{_id:-1}}, {\"$limit\":20}, {\"$project\":{_id:1,\"veri.icerikler\":1}});\n return pipe`,\n },\n }\n };\n}\n\nexport function siparisAcilirKutu(ismi: string, baslik: string, coklu = false): any {\n return {\n turu: 'Açılır Kutu', ismi, baslik, ayarlar: {\n arama: true, silme: true, solSimge: '🛒', coklu,\n hizliEkle: 'Sipariş', hizliEkleSetId: 'hmi.siparis',\n hizliEkleAlanlar: [{ ismi: 'siparisNo', baslik: 'Sipariş No', zorunlu: true }, { ismi: 'urunAdi', baslik: 'Başlık' }, { ismi: 'musteri', baslik: 'Müşteri' }],\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: true, resimGoster: false },\n secenekItm: `\n ${PV_FN}\n var no = _pv('siparisNo') || _pv('urunAdi');\n return { value: scnk._id, label: no || ('Sipariş #' + String(scnk._id).slice(-4)), simge: '🛒', aciklama: [_pv('musteri'), _pv('durum')].filter(Boolean).join(' · ') }\n `,\n fapiAyarlar: {\n vt: 'FikoYT.sistem.hareketler',\n uygulama: 'FikoYT.sistem.hmi.satis',\n solSimge: { baslik: 'HMI', renkArka: '#722ed1', renkYazi: '#fff' },\n kurdela: { baslik: 'Satış' },\n pipeFunc: `${TR_RX_FN}\n var m = { \"silindi\": {\"$ne\":true} };\n var pipe = [ {\"$match\": m}, ${LOOKUP_ICERIKLER}, {\"$match\":{\"veri.icerikler.ek._secilenSetId\":\"hmi.siparis\"}} ];\n if (rx) pipe.push({\"$match\":{\"veri.icerikler.ek.parametreler\":{\"$elemMatch\":{\"ismi\":\"siparisNo\",\"degeri\":{\"$regex\":rx,\"$options\":\"i\"}}}}});\n pipe.push({\"$sort\":{_id:-1}}, {\"$limit\":20}, {\"$project\":{_id:1,\"veri.icerikler\":1}});\n return pipe`,\n },\n }\n };\n}\n\nexport function camParcaAcilirKutu(ismi: string, baslik: string, coklu = false): any {\n return {\n turu: 'Açılır Kutu', ismi, baslik, ayarlar: {\n arama: true, silme: true, solSimge: '🔷', coklu,\n hizliEkle: 'Cam Parça', hizliEkleSetId: 'cam.parca',\n hizliEkleAlanlar: [{ ismi: 'parcaAdi', baslik: 'Parça Adı', zorunlu: true }, { ismi: 'malzeme', baslik: 'Malzeme' }, { ismi: 'adet', baslik: 'Adet' }],\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: true, resimGoster: false },\n secenekItm: `\n var p = (scnk.veri?.icerikler?.[0]?.ek?.parametreler || []);\n ${PV_FN}\n var adi = _pv('parcaAdi') || ('Parça #' + String(scnk._id).slice(-4));\n return { value: scnk._id, label: adi, simge: '🔷', aciklama: [_pv('malzeme'), _pv('durum')].filter(Boolean).join(' · ') }\n `,\n fapiAyarlar: {\n vt: 'FikoYT.sistem.hareketler',\n solSimge: { baslik: 'Cam', renkArka: '#0891b2', renkYazi: '#fff' },\n pipeFunc: `${TR_RX_FN}\n var m = { \"silindi\": {\"$ne\":true} };\n var pipe = [ {\"$match\": m}, ${LOOKUP_ICERIKLER}, {\"$match\":{\"veri.icerikler.ek._secilenSetId\":\"cam.parca\"}} ];\n if (rx) pipe.push({\"$match\":{\"veri.icerikler.ek.parametreler\":{\"$elemMatch\":{\"ismi\":\"parcaAdi\",\"degeri\":{\"$regex\":rx,\"$options\":\"i\"}}}}});\n pipe.push({\"$sort\":{_id:-1}}, {\"$limit\":20}, {\"$project\":{_id:1,\"veri.icerikler\":1}});\n return pipe`,\n },\n }\n };\n}\n\nexport function camKutukAcilirKutu(ismi: string, baslik: string, coklu = false): any {\n return {\n turu: 'Açılır Kutu', ismi, baslik, ayarlar: {\n arama: true, silme: true, solSimge: '🪵', coklu,\n hizliEkle: 'Kütük', hizliEkleSetId: 'cam.kutuk',\n hizliEkleAlanlar: [{ ismi: 'malzeme', baslik: 'Malzeme', zorunlu: true }, { ismi: 'en', baslik: 'En (mm)' }, { ismi: 'boy', baslik: 'Boy (mm)' }],\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: true, resimGoster: false },\n secenekItm: `\n ${PV_FN}\n var malzeme = _pv('malzeme');\n var olcu = [_pv('en'),_pv('boy'),_pv('yukseklik')].filter(Boolean).join('x');\n return { value: scnk._id, label: malzeme || ('Kütük #' + String(scnk._id).slice(-4)), simge: '🪵', aciklama: [olcu ? olcu+'mm' : '', _pv('durum')].filter(Boolean).join(' · ') }\n `,\n fapiAyarlar: {\n vt: 'FikoYT.sistem.hareketler',\n solSimge: { baslik: 'Cam', renkArka: '#0891b2', renkYazi: '#fff' },\n pipeFunc: `${TR_RX_FN}\n var m = { \"silindi\": {\"$ne\":true} };\n var pipe = [ {\"$match\": m}, ${LOOKUP_ICERIKLER}, {\"$match\":{\"veri.icerikler.ek._secilenSetId\":\"cam.kutuk\"}} ];\n if (rx) pipe.push({\"$match\":{\"veri.icerikler.ek.parametreler\":{\"$elemMatch\":{\"ismi\":\"malzeme\",\"degeri\":{\"$regex\":rx,\"$options\":\"i\"}}}}});\n pipe.push({\"$sort\":{_id:-1}}, {\"$limit\":20}, {\"$project\":{_id:1,\"veri.icerikler\":1}});\n return pipe`,\n },\n }\n };\n}\n\nexport function firmaAcilirKutu(ismi: string, baslik: string): any {\n return {\n turu: 'Açılır Kutu', ismi, baslik, ayarlar: {\n arama: true, silme: true, solSimge: '🏪',\n hizliEkle: 'Firma',\n hizliEkleSetId: 'hmi.musteri',\n hizliEkleKaynakSetleri: [MUSTERI_HIZLI_SET],\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: true, resimGoster: false },\n secenekItm: `\n ${PV_FN}\n var firma = _pv('firmaAdi');\n var yetkili = _pv('yetkili');\n var setId = ic?.ek?._secilenSetId || '';\n var simge = setId === 'hmi.tedarikci' ? '🏭' : '🏪';\n return { value: scnk._id, label: firma || ('Firma #' + String(scnk._id).slice(-4)), simge: simge, aciklama: yetkili }\n `,\n fapiAyarlar: {\n vt: 'FikoYT.sistem.hareketler',\n uygulama: 'FikoYT.sistem.hmi.satis',\n solSimge: { baslik: 'HMI', renkArka: '#722ed1', renkYazi: '#fff' },\n kurdela: { baslik: 'Satış' },\n pipeFunc: `${TR_RX_FN}\n var m = { \"silindi\": {\"$ne\":true} };\n var pipe = [ {\"$match\": m}, ${LOOKUP_ICERIKLER}, {\"$match\":{\"veri.icerikler.ek._secilenSetId\":{\"$in\":[\"hmi.musteri\",\"hmi.tedarikci\"]}}} ];\n if (rx) pipe.push({\"$match\":{\"veri.icerikler.ek.parametreler\":{\"$elemMatch\":{\"ismi\":\"firmaAdi\",\"degeri\":{\"$regex\":rx,\"$options\":\"i\"}}}}});\n pipe.push({\"$sort\":{_id:-1}}, {\"$limit\":15}, {\"$project\":{_id:1,\"veri.icerikler\":1}});\n return pipe`,\n },\n }\n };\n}\n","import { Injectable, signal, EventEmitter } from '@angular/core';\nimport { IKart, IKartTuru, IIcerik, IVT, IYollar } from '@/src/service/fikoyt-ui/interfaces/IKart.interface';\nimport { IParametreSetiGrubu } from '@/src/service/fikoyt-ui/interfaces/IParametreSeti.interface';\nimport { ISablon } from '@/src/service/fikoyt-ui/src/lib/paylasim-sistemi/sablon-editoru/sablon.interface';\nimport { FikoYTId } from '@/src/service/fikoyt-ui/helpers/FikoYTId';\nimport { personelAcilirKutu, musteriAcilirKutu, firmaAcilirKutu, TR_RX_FN } from './hmi-ortak-helpers';\n\n@Injectable({ providedIn: 'root' })\nexport class HmiProjelerService {\n paylasimYapildi = new EventEmitter(true);\n aktifIcerikNo = 0;\n\n kart: IKart = {\n _id: new FikoYTId().toString(),\n vt: 'FikoYT.sistem.hareketler' as IVT,\n yol: 'FikoYT.sistem.hareketler.kalem' as IYollar,\n turu: IKartTuru.KART,\n gizlilik: 'Herkese Açık',\n kisiler: [],\n veri: {\n solSimge: { aciklama: undefined, baslik: 'HMI', renkArka: '#0ea5e9', renkYazi: '#fff' },\n kurdela: { aciklama: undefined, baslik: 'HMI', renkArka: undefined, renkYazi: undefined },\n icerikler: [\n { _id: new FikoYTId().toString(), html: '', aciklama: '', sifre: null } as IIcerik,\n ],\n },\n };\n\n readonly parametreSetleri: IParametreSetiGrubu[] = [\n {\n id: 'hmi.proje',\n baslik: 'Projeler',\n simge: '📁',\n aciklama: 'Proje oluştur ve takip et',\n renk: 'linear-gradient(135deg, #7c2d12, #fa8c16)',\n kaynak: 'kod',\n bilesen: 'projeler',\n altGruplar: [\n {\n id: 'hmi.proje.kategori',\n baslik: 'Kategori',\n simge: '📂',\n aciklama: 'Proje kategorisi tanımla',\n parametreler: [\n { turu: 'Yazı', ismi: 'kategoriAdi', baslik: 'Kategori Adı', ayarlar: { zorunlu: true } },\n { turu: 'Renk', ismi: 'renk', baslik: 'Renk' },\n { turu: 'Açılır Kutu', ismi: 'oncelik', baslik: 'Öncelik', ayarlar: { secenekler: ['Düşük', 'Normal', 'Yüksek', 'Kritik'] } },\n ],\n sablon: {\n genislik: 520, yukseklik: 200, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(135deg, #134e5e, #2d6a4f, #52b788)' },\n bolgeler: [],\n elementler: [\n { id: 'k0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 6, stil: { fill: 'rgba(255,255,255,0.15)' } },\n { id: 'k1', tur: 'sabit-metin', icerik: '📂', x: 5, y: 15, genislik: 60, yukseklik: 60, stil: { fontSize: 40, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'k2', tur: 'parametre-metin', parametreAnahtari: 'kategoriAdi', x: 16, y: 12, genislik: 350, yukseklik: 40, stil: { fontSize: 24, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'k3', tur: 'sekil', sekilTuru: 'dikdortgen', x: 16, y: 55, genislik: 110, yukseklik: 28, stil: { fill: 'rgba(0,0,0,0.25)', borderRadius: 14 } },\n { id: 'k4', tur: 'parametre-render', parametreAnahtari: 'oncelik', x: 16, y: 55, genislik: 110, yukseklik: 28, stil: { fontSize: 11, fontWeight: '600', color: '#a7f3d0', textAlign: 'center', verticalAlign: 'center', letterSpacing: 1 } },\n { id: 'k5', tur: 'sekil', sekilTuru: 'daire', x: 85, y: 55, genislik: 28, yukseklik: 28, stil: { fill: '#ffffff', opacity: 0.3 } },\n { id: 'k6', tur: 'parametre-render', parametreAnahtari: 'renk', x: 85, y: 55, genislik: 28, yukseklik: 28, stil: { fontSize: 11, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'k7', tur: 'sekil', sekilTuru: 'dikdortgen', x: 5, y: 88, genislik: 80, yukseklik: 2, stil: { fill: 'rgba(255,255,255,0.2)' } },\n { id: 'k8', tur: 'sabit-metin', icerik: 'KATEGORİ', x: 5, y: 90, genislik: 100, yukseklik: 16, stil: { fontSize: 8, fontWeight: '700', color: 'rgba(255,255,255,0.35)', letterSpacing: 3 } },\n ],\n } as ISablon,\n altKartSablonlari: [\n {\n id: 'hmi.proje.guncelleme',\n baslik: 'Güncelleme',\n simge: '🔄',\n parametreler: [\n { turu: 'Açılır Kutu', ismi: 'durum', baslik: 'Durum', ayarlar: { zorunlu: true, secenekler: ['Devam Ediyor', 'Tamamlandı', 'Beklemede', 'İptal'] } },\n { turu: 'Sayı', ismi: 'ilerleme', baslik: 'İlerleme %', ayarlar: { min: 0, maks: 100 } },\n ],\n sablon: {\n genislik: 520, yukseklik: 220, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(160deg, #0d1b2a 0%, #1b2838 40%, #1a3a4a 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'g0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 6, yukseklik: 220, stil: { fill: '#58a6ff' } },\n { id: 'g1', tur: 'sabit-metin', icerik: '🔄', x: 4, y: 8, genislik: 44, yukseklik: 44, stil: { fontSize: 28, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'g2', tur: 'sabit-metin', icerik: 'GÜNCELLEME', x: 14, y: 8, genislik: 180, yukseklik: 20, stil: { fontSize: 10, fontWeight: '700', color: '#58a6ff', letterSpacing: 3, verticalAlign: 'center' } },\n { id: 'g3a', tur: 'sekil', sekilTuru: 'dikdortgen', x: 15, y: 35, genislik: 200, yukseklik: 36, stil: { fill: 'rgba(88,166,255,0.12)', borderRadius: 18 } },\n { id: 'g3', tur: 'parametre-render', parametreAnahtari: 'durum', x: 15, y: 35, genislik: 200, yukseklik: 36, stil: { fontSize: 16, fontWeight: '700', color: '#ffffff', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'g4', tur: 'parametre-render', parametreAnahtari: 'ilerleme', x: 60, y: 35, genislik: 120, yukseklik: 50, stil: { fontSize: 42, fontWeight: '900', color: '#3fb950', textAlign: 'center', verticalAlign: 'center' } },\n { id: 'g5', tur: 'sabit-metin', icerik: '%', x: 82, y: 38, genislik: 30, yukseklik: 24, stil: { fontSize: 18, fontWeight: '600', color: '#3fb950', verticalAlign: 'center' } },\n { id: 'g6', tur: 'sekil', sekilTuru: 'dikdortgen', x: 4, y: 80, genislik: 460, yukseklik: 6, stil: { fill: 'rgba(255,255,255,0.06)', borderRadius: 3 } },\n { id: 'g7', tur: 'sekil', sekilTuru: 'dikdortgen', x: 4, y: 80, genislik: 230, yukseklik: 6, stil: { fill: '#3fb950', borderRadius: 3 } },\n { id: 'g8', tur: 'sabit-metin', icerik: 'İLERLEME DURUMU', x: 4, y: 92, genislik: 150, yukseklik: 14, stil: { fontSize: 7, fontWeight: '600', color: 'rgba(255,255,255,0.25)', letterSpacing: 2 } },\n ],\n } as ISablon,\n },\n { id: 'hmi.proje.gorev', baslik: 'Görev', simge: '📋', bilesen: 'proje-gorev' },\n { id: 'hmi.proje.not', baslik: 'Not', simge: '📝', bilesen: 'proje-notu' },\n\n {\n id: 'hmi.proje.rapor',\n baslik: 'Rapor',\n simge: '📊',\n parametreler: [\n { turu: 'Yazı', ismi: 'raporBaslik', baslik: 'Rapor Başlığı', ayarlar: { zorunlu: true } },\n { turu: 'Yazı Alanı', ismi: 'ozet', baslik: 'Özet' },\n ],\n sablon: {\n genislik: 520, yukseklik: 240, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(135deg, #1a1a2e 0%, #2d1b4e 50%, #4a1942 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'r0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 4, stil: { fill: 'linear-gradient(90deg, #7b2ff7, #c850c0, #ff2d95)' } },\n { id: 'r1', tur: 'sabit-metin', icerik: '📊', x: 5, y: 10, genislik: 56, yukseklik: 56, stil: { fontSize: 36, textAlign: 'center', verticalAlign: 'center' } },\n { id: 'r2', tur: 'sabit-metin', icerik: 'RAPOR', x: 5, y: 40, genislik: 56, yukseklik: 16, stil: { fontSize: 8, fontWeight: '700', color: '#c850c0', textAlign: 'center', letterSpacing: 2 } },\n { id: 'r3', tur: 'parametre-metin', parametreAnahtari: 'raporBaslik', x: 18, y: 10, genislik: 380, yukseklik: 48, stil: { fontSize: 22, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 'r5', tur: 'sekil', sekilTuru: 'dikdortgen', x: 18, y: 48, genislik: 60, yukseklik: 2, stil: { fill: '#c850c0', opacity: 0.5 } },\n { id: 'r4', tur: 'parametre-metin', parametreAnahtari: 'ozet', x: 5, y: 55, genislik: 480, yukseklik: 80, stil: { fontSize: 13, color: '#b8a9c9', lineHeight: 1.7 } },\n { id: 'r6', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 94, genislik: 520, yukseklik: 18, stil: { fill: 'rgba(0,0,0,0.2)' } },\n { id: 'r7', tur: 'sabit-metin', icerik: '◆ PROJE RAPORU', x: 3, y: 94, genislik: 200, yukseklik: 18, stil: { fontSize: 8, fontWeight: '600', color: 'rgba(200,80,192,0.5)', verticalAlign: 'center', letterSpacing: 2 } },\n ],\n } as ISablon,\n },\n ],\n },\n {\n id: 'hmi.proje.ekle',\n baslik: 'Ekle',\n simge: '➕',\n aciklama: 'Yeni proje oluştur',\n parametreler: [\n { turu: 'Otomatik Kod', ismi: 'projeKodu', baslik: 'Proje Kodu', ayarlar: { kodFormat: '{PREFIX}-{YIL}-{AY}-{SAYI:3}', kodPrefix: 'PRJ' } },\n { turu: 'Yazı', ismi: 'projeAdi', baslik: 'Proje Adı', ayarlar: { zorunlu: true } },\n { turu: 'Resim', ismi: 'projeResmi', baslik: 'Proje Resmi' },\n personelAcilirKutu('sorumlu', 'Sorumlu Personel'),\n {\n turu: 'Açılır Kutu', ismi: 'mailHesap', baslik: 'Mail Hesabı', ayarlar: {\n arama: true, silme: true, solSimge: '📬',\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: false, resimGoster: false },\n secenekItm: `return { value: scnk._id, label: scnk.email ?? scnk._id, simge: '📬' }`,\n fapiAyarlar: {\n vt: 'FikoYT.sistem.mail.hesaplar',\n pipeFunc: `\n var firmaId = '';\n try { firmaId = JSON.parse(localStorage.getItem('hmi-pano-ayarlar') || '{}').firmaId || ''; } catch(e) {}\n var f = { \"aktif\": { \"$ne\": false }, \"silindi\": { \"$ne\": true } };\n if (firmaId) f.firmaId = firmaId;\n if (deger) f.email = { \"$regex\": deger, \"$options\": \"i\" };\n return [ { \"$match\": f }, { \"$limit\": 20 }, { \"$project\": { _id: 1, \"email\": 1 } } ]`,\n },\n }\n },\n {\n turu: 'Açılır Kutu', ismi: 'mailRef', baslik: 'İlgili Mail', ayarlar: {\n arama: true, silme: true, solSimge: '📧',\n itemSablon: { aktif: true, simgeGoster: true, renkGoster: false, aciklamaGoster: true, resimGoster: false },\n secenekItm: `\n let p = scnk.veri ?? {};\n let ekSayi = scnk.dosyaSayisi ?? 0;\n let yanitMi = !!p.inReplyTo;\n let simge = yanitMi ? '↩️' : ekSayi > 0 ? '📎' : '📧';\n let tarih = scnk.tarih ? new Date(scnk.tarih).toLocaleDateString('tr-TR', {day:'2-digit',month:'short',hour:'2-digit',minute:'2-digit'}) : '';\n let parcalar = [];\n if (p.kimden) parcalar.push(p.kimden);\n if (p.kime) parcalar.push('→ ' + p.kime);\n if (tarih) parcalar.push(tarih);\n if (ekSayi > 0) parcalar.push(ekSayi + ' ek');\n return { value: scnk._id, label: (p.konu ?? p.kimden ?? scnk._id), simge: simge, aciklama: parcalar.join(' · ') }\n `,\n baglantiModu: 'modal',\n fapiAyarlar: {\n vt: 'FikoYT.sistem.mail.mesajlar',\n pipeFunc: `\n var hesapId = form.find(function(p) { return p.ismi === 'mailHesap' })?.degeri;\n if (!hesapId) return [ { \"$limit\": 0 } ];\n var trMap = {i:'[iİ]',İ:'[iİ]',ı:'[ıI]',I:'[ıI]',ş:'[şŞ]',Ş:'[şŞ]',ç:'[çÇ]',Ç:'[çÇ]',ö:'[öÖ]',Ö:'[öÖ]',ü:'[üÜ]',Ü:'[üÜ]',ğ:'[ğĞ]',Ğ:'[ğĞ]'};\n var rx = deger ? Array.from(deger).map(function(c){ return trMap[c] || c }).join('') : '';\n var m = { \"sahip\": hesapId, \"silindi\": { \"$ne\": true } };\n if (rx) { var rd = { \"$regex\": rx, \"$options\": \"i\" }; m[\"$or\"] = [\n { \"veri.konu\": rd },\n { \"veri.kimden\": rd },\n { \"veri.kime\": rd },\n { \"icerikler.html\": rd },\n { \"icerikler.aciklama\": rd },\n { \"dosyalar.ismi\": rd }\n ] }\n return [\n { \"$match\": m },\n { \"$sort\": { _id: -1 } },\n { \"$limit\": 15 },\n { \"$project\": { _id: 1, \"veri.konu\": 1, \"veri.kimden\": 1, \"veri.kime\": 1, \"veri.inReplyTo\": 1, \"tarih\": 1, \"dosyaSayisi\": { \"$cond\": [{ \"$isArray\": \"$dosyalar\" }, { \"$size\": \"$dosyalar\" }, 0] } } }\n ]`,\n },\n }\n },\n { turu: 'XYZ', ismi: 'olculer', baslik: 'Ölçüler (mm)', degeri: { x: 0, y: 0, z: 0 }, ayarlar: { adim: 0.0001 } },\n { turu: 'Sayı', ismi: 'agirlik', baslik: 'Ağırlık (kg)', ayarlar: { min: 0, adim: 0.001 } },\n { turu: 'Sayı', ismi: 'ozkulte', baslik: 'Özkütle (g/cm³)', ayarlar: { min: 0, adim: 0.0001 } },\n {\n turu: 'Açılır Kutu', ismi: 'malzeme', baslik: 'Malzeme', ayarlar: {\n secenekler: [\n { label: 'Çelik', value: 'Çelik' },\n { label: 'Alüminyum', value: 'Alüminyum' },\n { label: 'Pirinç', value: 'Pirinç' },\n { label: 'Dökme Demir', value: 'Dökme Demir' },\n { label: 'Paslanmaz', value: 'Paslanmaz' },\n { label: 'Bakır', value: 'Bakır' },\n { label: 'Plastik', value: 'Plastik' },\n ],\n }\n },\n { turu: 'Yazı Alanı', ismi: 'aciklama', baslik: 'Açıklama' },\n { turu: 'Tarih', ismi: 'baslangic', baslik: 'Başlangıç Tarihi' },\n { turu: 'Tarih', ismi: 'bitis', baslik: 'Bitiş Tarihi' },\n ],\n sayfaKurallari: { yeniSayfaEngelle: true },\n sablon: {\n genislik: 520, yukseklik: 260, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(145deg, #0a1628 0%, #1e3a5f 60%, #2563eb 100%)' },\n bolgeler: [],\n elementler: [\n { id: 's0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 520, yukseklik: 4, stil: { fill: 'rgba(59,130,246,0.6)' } },\n { id: 's9', tur: 'sekil', sekilTuru: 'daire', x: 76, y: 4, genislik: 110, yukseklik: 110, stil: { fill: 'rgba(255,255,255,0.06)', stroke: 'rgba(96,165,250,0.3)', strokeWidth: 3 }, katman: 10 },\n { id: 's10', tur: 'parametre-render', parametreAnahtari: 'projeResmi', x: 76, y: 4, genislik: 110, yukseklik: 110, stil: { borderRadius: 55, shadow: '0 4px 20px rgba(0,0,0,0.4)' }, katman: 11 },\n { id: 's1', tur: 'sabit-metin', icerik: '📁', x: 5, y: 8, genislik: 56, yukseklik: 56, stil: { fontSize: 36, textAlign: 'center', verticalAlign: 'center' } },\n { id: 's1a', tur: 'parametre-render', parametreAnahtari: 'projeKodu', x: 16, y: 8, genislik: 160, yukseklik: 18, stil: { fontSize: 9, fontWeight: '700', color: 'rgba(96,165,250,0.7)', letterSpacing: 2, verticalAlign: 'center' } },\n { id: 's2', tur: 'parametre-metin', parametreAnahtari: 'projeAdi', x: 16, y: 20, genislik: 400, yukseklik: 40, stil: { fontSize: 24, fontWeight: '700', color: '#ffffff', verticalAlign: 'center' } },\n { id: 's3', tur: 'parametre-metin', parametreAnahtari: 'aciklama', x: 5, y: 46, genislik: 480, yukseklik: 50, stil: { fontSize: 13, color: '#94a3b8', lineHeight: 1.6 } },\n { id: 's8', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 78, genislik: 520, yukseklik: 58, stil: { fill: 'rgba(0,0,0,0.25)' } },\n { id: 's4', tur: 'sabit-metin', icerik: 'BAŞLANGIÇ', x: 5, y: 80, genislik: 100, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(255,200,0,0.5)', letterSpacing: 2 } },\n { id: 's5', tur: 'parametre-render', parametreAnahtari: 'baslangic', x: 5, y: 88, genislik: 140, yukseklik: 24, stil: { fontSize: 14, fontWeight: '600', color: '#ffc800', verticalAlign: 'center' } },\n { id: 's6', tur: 'sabit-metin', icerik: '→', x: 38, y: 88, genislik: 30, yukseklik: 24, stil: { fontSize: 16, color: 'rgba(255,255,255,0.3)', textAlign: 'center', verticalAlign: 'center' } },\n { id: 's4b', tur: 'sabit-metin', icerik: 'BİTİŞ', x: 48, y: 80, genislik: 100, yukseklik: 14, stil: { fontSize: 7, fontWeight: '700', color: 'rgba(255,200,0,0.5)', letterSpacing: 2 } },\n { id: 's7', tur: 'parametre-render', parametreAnahtari: 'bitis', x: 48, y: 88, genislik: 140, yukseklik: 24, stil: { fontSize: 14, fontWeight: '600', color: '#ffc800', verticalAlign: 'center' } },\n ],\n } as ISablon,\n },\n ],\n },\n {\n id: 'hmi.basit-not',\n baslik: 'Basit Not',\n simge: '📋',\n aciklama: 'Hızlı not ve hatırlatma',\n renk: 'linear-gradient(135deg, #064e3b, #52c41a)',\n kaynak: 'kod',\n bilesen: 'basit-not',\n parametreler: [\n { turu: 'Yazı', ismi: 'baslik', baslik: 'Not Başlığı' },\n { turu: 'Açılır Kutu', ismi: 'kategori', baslik: 'Kategori', ayarlar: { secenekler: ['Genel', 'Acil', 'Bilgi', 'Hatırlatma'] } },\n ],\n sablon: {\n genislik: 520, yukseklik: 180, mod: 'serbest',\n arkaPlan: { tur: 'gradient', deger: 'linear-gradient(135deg, #faf3e0 0%, #f5e6c8 50%, #ebd5a8 100%)' },\n bolgeler: [],\n elementler: [\n { id: 'n0', tur: 'sekil', sekilTuru: 'dikdortgen', x: 0, y: 0, genislik: 8, yukseklik: 180, stil: { fill: '#52c41a' } },\n { id: 'n1', tur: 'sabit-metin', icerik: '📌', x: 88, y: 2, genislik: 30, yukseklik: 30, stil: { fontSize: 18, textAlign: 'center' } },\n { id: 'n2', tur: 'sekil', sekilTuru: 'dikdortgen', x: 62, y: 6, genislik: 120, yukseklik: 24, stil: { fill: 'rgba(82,196,26,0.15)', borderRadius: 12 } },\n { id: 'n3', tur: 'parametre-render', parametreAnahtari: 'kategori', x: 62, y: 6, genislik: 120, yukseklik: 24, stil: { fontSize: 10, fontWeight: '600', color: '#389e0d', textAlign: 'center', verticalAlign: 'center', letterSpacing: 1 } },\n { id: 'n4', tur: 'parametre-metin', parametreAnahtari: 'baslik', x: 5, y: 22, genislik: 440, yukseklik: 50, stil: { fontSize: 22, fontWeight: '700', color: '#1a1a1a', verticalAlign: 'center' } },\n { id: 'n5', tur: 'sekil', sekilTuru: 'dikdortgen', x: 5, y: 58, genislik: 60, yukseklik: 2, stil: { fill: 'rgba(0,0,0,0.12)' } },\n { id: 'n6', tur: 'sabit-metin', icerik: '📋', x: 5, y: 68, genislik: 30, yukseklik: 30, stil: { fontSize: 16 } },\n { id: 'n7', tur: 'sabit-metin', icerik: 'HIZLI NOT', x: 12, y: 72, genislik: 100, yukseklik: 16, stil: { fontSize: 8, fontWeight: '700', color: 'rgba(0,0,0,0.2)', letterSpacing: 2, verticalAlign: 'center' } },\n { id: 'n8', tur: 'sekil', sekilTuru: 'dikdortgen', x: 92, y: 85, genislik: 40, yukseklik: 28, stil: { fill: 'rgba(0,0,0,0.04)', borderRadius: 2 } },\n ],\n } as ISablon,\n },\n ];\n\n icerikEkle(ek: any = null) {\n if (!ek) {\n ek = { turu: 'UYGULAMAICERIK', _id: '', parametreler: [] };\n }\n this.kart?.veri?.icerikler?.push({\n _id: new FikoYTId().toString(), aciklama: '', html: '', ek, sifre: null,\n }) ?? 0;\n }\n\n sifirla() {\n this.kart = {\n _id: new FikoYTId().toString(),\n vt: 'FikoYT.sistem.hareketler' as IVT,\n yol: 'FikoYT.sistem.hareketler.kalem' as IYollar,\n turu: IKartTuru.KART,\n gizlilik: 'Herkese Açık',\n kisiler: [],\n veri: {\n solSimge: { aciklama: undefined, baslik: 'HMI', renkArka: '#0ea5e9', renkYazi: '#fff' },\n kurdela: { aciklama: undefined, baslik: 'HMI', renkArka: undefined, renkYazi: undefined },\n icerikler: [],\n },\n };\n this.icerikEkle();\n }\n\n aktifEtSonSayfa() {\n this.aktifIcerikNo = (this.kart?.veri?.icerikler?.length ?? 1) - 1;\n }\n}\n","import { Injectable, inject, signal, EventEmitter } from '@angular/core';\r\nimport { FikoYTIstekKok } from '@/src/service/modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service';\r\nimport { escapeRegex } from '@/src/app/uygulamalar/yuz-tanima/utils/regex.utils';\r\nimport { IVT, IYollar, IIcerik, IKart, IKartTuru, IEkTuru } from '@/src/service/fikoyt-ui/interfaces/IKart.interface';\r\nimport { FikoYTId } from '@/src/service/fikoyt-ui/helpers/FikoYTId';\r\nimport { FikoYTService } from '@/src/service/fikoyt.service';\r\nimport { IParametreSetiGrubu } from '@/src/service/fikoyt-ui/interfaces/IParametreSeti.interface';\r\n\r\nexport interface Proje {\r\n _id?: string;\r\n projeAdi: string;\r\n aciklama?: string;\r\n baslangicTarihi?: string;\r\n bitisTarihi?: string;\r\n durum?: 'planlama' | 'devam-ediyor' | 'tamamlandi' | 'beklemede' | 'iptal';\r\n oncelik?: 'dusuk' | 'normal' | 'yuksek' | 'acil';\r\n yuzdeTamamlanma?: number;\r\n butce?: number;\r\n harcama?: number;\r\n sorumluKisi?: string;\r\n ekipUyeleri?: string[];\r\n musteriFirma?: string;\r\n etiketler?: string[];\r\n notlar?: string;\r\n olusturmaTarihi?: string;\r\n guncellemeTarihi?: string;\r\n parametreler?: any[];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProjelerService {\r\n private FikoYT = inject(FikoYTService);\r\n projeler = signal([]);\r\n yukleniyor = signal(false);\r\n hata = signal(null);\r\n\r\n // Legacy uyumluluk için\r\n paylasimYapildi: EventEmitter = new EventEmitter(true);\r\n mesgul: boolean = false;\r\n ilerleme = 0;\r\n u_id: string | any = null;\r\n aktifIcerikNo: number = 0;\r\n kart: IKart = {\r\n _id: new FikoYTId().toString(),\r\n vt: \"FikoYT.sistem.hareketler\",\r\n yol: \"FikoYT.sistem.hareketler.kalem\",\r\n turu: IKartTuru.KART,\r\n gizlilik: \"Herkese Açık\",\r\n kisiler: [],\r\n veri: {\r\n solSimge: {\r\n aciklama: \"FikoYT Bayrak Açıklaması\",\r\n baslik: \"FikoYT\",\r\n renkArka: undefined,\r\n renkYazi: undefined,\r\n },\r\n kurdela: {\r\n aciklama: \"FikoYT Kurdela Açıklaması\",\r\n baslik: \"FikoYT\",\r\n renkArka: undefined,\r\n renkYazi: undefined,\r\n },\r\n icerikler: [\r\n {\r\n _id: new FikoYTId().toString(),\r\n html: '',\r\n aciklama: '',\r\n sifre: null,\r\n } as IIcerik\r\n ]\r\n }\r\n };\r\n\r\n readonly parametreSetleri: IParametreSetiGrubu[] = [\r\n {\r\n id: 'uyar.proje',\r\n baslik: 'Projeler',\r\n simge: '📁',\r\n renk: 'linear-gradient(135deg, #7c2d12, #fa8c16)',\r\n kaynak: 'kod',\r\n bilesen: 'projeler',\r\n altGruplar: [\r\n {\r\n id: 'uyar.proje.kategori',\r\n baslik: 'Kategori',\r\n simge: '📂',\r\n parametreler: [\r\n { turu: 'Yazı', ismi: 'kategoriAdi', baslik: 'Kategori Adı', ayarlar: { zorunlu: true } },\r\n { turu: 'Renk', ismi: 'renk', baslik: 'Renk' },\r\n { turu: 'Açılır Kutu', ismi: 'oncelik', baslik: 'Öncelik', ayarlar: { secenekler: ['Düşük', 'Normal', 'Yüksek', 'Kritik'] } },\r\n ],\r\n },\r\n {\r\n id: 'uyar.proje.ekle',\r\n baslik: 'Ekle',\r\n simge: '➕',\r\n parametreler: [\r\n { turu: 'Yazı', ismi: 'projeAdi', baslik: 'Proje Adı', ayarlar: { zorunlu: true } },\r\n { turu: 'Yazı Alanı', ismi: 'aciklama', baslik: 'Açıklama' },\r\n { turu: 'Tarih', ismi: 'baslangic', baslik: 'Başlangıç Tarihi' },\r\n { turu: 'Tarih', ismi: 'bitis', baslik: 'Bitiş Tarihi' },\r\n ],\r\n sayfaKurallari: { yeniSayfaEngelle: true },\r\n },\r\n ],\r\n },\r\n {\r\n id: 'uyar.basit-not',\r\n baslik: 'Basit Not',\r\n simge: '📋',\r\n renk: 'linear-gradient(135deg, #064e3b, #52c41a)',\r\n kaynak: 'kod',\r\n parametreler: [\r\n { turu: 'Yazı', ismi: 'baslik', baslik: 'Not Başlığı' },\r\n { turu: 'Açılır Kutu', ismi: 'kategori', baslik: 'Kategori', ayarlar: { secenekler: ['Genel', 'Acil', 'Bilgi', 'Hatırlatma'] } },\r\n ],\r\n },\r\n ];\r\n\r\n constructor() {}\r\n\r\n // Legacy metodlar\r\n icerikEkle(ek: any = null) {\r\n this.kart?.veri?.icerikler?.push({ _id: new FikoYTId().toString(), aciklama: '', html: '', ek: ek, sifre: null }) ?? 1 - 1;\r\n }\r\n\r\n sifirla() {\r\n this.kart = {\r\n _id: new FikoYTId().toString(),\r\n vt: \"FikoYT.sistem.hareketler\",\r\n yol: \"FikoYT.sistem.hareketler.kalem\",\r\n turu: IKartTuru.KART,\r\n gizlilik: \"Herkese Açık\",\r\n kisiler: [],\r\n veri: {\r\n solSimge: {\r\n aciklama: undefined,\r\n baslik: \"FikoYT\",\r\n renkArka: undefined,\r\n renkYazi: undefined,\r\n },\r\n kurdela: {\r\n aciklama: undefined,\r\n baslik: \"FikoYT\",\r\n renkArka: undefined,\r\n renkYazi: undefined,\r\n },\r\n icerikler: []\r\n }\r\n };\r\n this.icerikEkle();\r\n }\r\n\r\n aktifEtSonSayfa() {\r\n this.aktifIcerikNo = (this.kart?.veri?.icerikler?.length ?? 1) - 1;\r\n }\r\n\r\n /** Kartı kopyalayarak paylaş kutusuna yükler */\r\n kartKopyalaPaylasimaAc(kaynakKart: IKart) {\r\n const kopya: IKart = JSON.parse(JSON.stringify(kaynakKart));\r\n const orijinalSahip = kopya.sahip;\r\n const orijinalKartId = kopya._id;\r\n const orijinalTarih = (kopya as any).tarih;\r\n kopya._id = new FikoYTId().toString();\r\n delete (kopya as any).tarih;\r\n delete (kopya as any).sahip;\r\n delete (kopya as any).silindi;\r\n delete (kopya as any).begenenler;\r\n delete (kopya as any).begenmeSayisi;\r\n delete (kopya as any).ifadeler;\r\n delete (kopya as any).ifadeSayilari;\r\n delete (kopya as any).yorumSayisi;\r\n delete (kopya as any).hareketler;\r\n delete (kopya as any).sabitlendi;\r\n delete (kopya as any).duzenlenmeTarihi;\r\n if (kopya.veri?.icerikler) {\r\n // Sahip bilgilerini al (profil resmi ve isim için)\r\n const aktifKullanici = this.FikoYT.kimlik.aktifKullaniciJson();\r\n const sahipIsim = orijinalSahip === aktifKullanici?._id\r\n ? (aktifKullanici?.isim ?? '') + ' ' + (aktifKullanici?.soyIsim ?? '')\r\n : '';\r\n\r\n const referansDisiTurler = new Set([\r\n IEkTuru.EKREFERANS, IEkTuru.REFERANS, IEkTuru.YOUTUBE,\r\n IEkTuru.UYARDOKUM, IEkTuru.YAPAYZEKA, IEkTuru.YOK, IEkTuru.ACIKLAMA\r\n ]);\r\n for (const icerik of kopya.veri.icerikler) {\r\n icerik._id = new FikoYTId().toString();\r\n // Sunucudan gelen medya eklerini EKREFERANS'a dönüştür\r\n const ek = (icerik as any)?.ek;\r\n if (ek) {\r\n // JSON kopyası sonrası File/SafeUrl artıkları temizle (gerçek dosya olamaz)\r\n delete ek.dosya;\r\n delete ek.dosyaObjectUrl;\r\n delete ek.resimObjectUrl;\r\n delete ek.kokDosya;\r\n delete ek.kokDosyaObjectUrl;\r\n }\r\n if (ek?._id && ek?.turu && !referansDisiTurler.has(ek.turu)) {\r\n if (!ek.bilgiler) ek.bilgiler = {};\r\n ek.bilgiler.orijinalTuru = ek.turu;\r\n ek.bilgiler.sahip = orijinalSahip;\r\n ek.bilgiler.sahipIsim = sahipIsim.trim();\r\n ek.bilgiler.kartId = orijinalKartId;\r\n if (orijinalTarih) ek.bilgiler.orijinalTarih = orijinalTarih;\r\n ek.bilgiler.referansSayisi = 1;\r\n ek.turu = IEkTuru.EKREFERANS;\r\n }\r\n // Zaten EKREFERANS olan kartlarda eksik alanları doldur ve sayacı artır\r\n if (ek?.turu === IEkTuru.EKREFERANS && ek?.bilgiler) {\r\n if (!ek.bilgiler.kartId) ek.bilgiler.kartId = orijinalKartId;\r\n if (!ek.bilgiler.orijinalTarih && orijinalTarih) ek.bilgiler.orijinalTarih = orijinalTarih;\r\n if (!ek.bilgiler.sahip) ek.bilgiler.sahip = orijinalSahip;\r\n if (!ek.bilgiler.sahipIsim && sahipIsim.trim()) ek.bilgiler.sahipIsim = sahipIsim.trim();\r\n ek.bilgiler.referansSayisi = (ek.bilgiler.referansSayisi || 0) + 1;\r\n }\r\n }\r\n }\r\n this.kart = kopya;\r\n this.aktifIcerikNo = 0;\r\n }\r\n\r\n paylas() {\r\n // Legacy method\r\n }\r\n\r\n // Tüm projeleri getir\r\n async projeleriGetir(): Promise {\r\n this.yukleniyor.set(true);\r\n this.hata.set(null);\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 gecikmeliCevap: false,\r\n });\r\n\r\n istek.parametreler = {\r\n aggregate: [\r\n {\r\n $match: {\r\n vt: 'FikoYT.Uyar.projeler' as IVT,\r\n yol: 'FikoYT.Uyar.projeler.kalem' as IYollar\r\n }\r\n },\r\n {\r\n $sort: { olusturmaTarihi: -1 }\r\n }\r\n ]\r\n };\r\n\r\n await istek.isteSync();\r\n\r\n if (istek.cevap.sonuc) {\r\n this.projeler.set(istek.cevap.sonuc);\r\n return istek.cevap.sonuc;\r\n }\r\n\r\n return [];\r\n } catch (error) {\r\n console.error('Projeler getirilirken hata:', error);\r\n this.hata.set('Projeler yüklenemedi');\r\n return [];\r\n } finally {\r\n this.yukleniyor.set(false);\r\n }\r\n }\r\n\r\n // Tek bir proje getir\r\n async projeGetir(id: string): Promise {\r\n this.yukleniyor.set(true);\r\n this.hata.set(null);\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 gecikmeliCevap: false,\r\n });\r\n\r\n istek.parametreler = {\r\n aggregate: [\r\n {\r\n $match: {\r\n _id: id,\r\n vt: 'FikoYT.Uyar.projeler' as IVT,\r\n yol: 'FikoYT.Uyar.projeler.kalem' as IYollar\r\n }\r\n }\r\n ]\r\n };\r\n\r\n await istek.isteSync();\r\n\r\n if (istek.cevap.sonuc && istek.cevap.sonuc.length > 0) {\r\n return istek.cevap.sonuc[0];\r\n }\r\n\r\n return null;\r\n } catch (error) {\r\n console.error('Proje getirilirken hata:', error);\r\n this.hata.set('Proje yüklenemedi');\r\n return null;\r\n } finally {\r\n this.yukleniyor.set(false);\r\n }\r\n }\r\n\r\n // Yeni proje oluştur\r\n async projeOlustur(proje: Proje): Promise {\r\n this.yukleniyor.set(true);\r\n this.hata.set(null);\r\n\r\n try {\r\n const yeniProje: Proje = {\r\n _id: new FikoYTId().toString(),\r\n ...proje,\r\n olusturmaTarihi: new Date().toISOString(),\r\n guncellemeTarihi: new Date().toISOString(),\r\n durum: proje.durum || 'planlama',\r\n oncelik: proje.oncelik || 'normal',\r\n yuzdeTamamlanma: proje.yuzdeTamamlanma || 0,\r\n butce: proje.butce || 0,\r\n harcama: proje.harcama || 0,\r\n etiketler: proje.etiketler || [],\r\n ekipUyeleri: proje.ekipUyeleri || []\r\n };\r\n\r\n const istek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\r\n gecikmeliCevap: false,\r\n });\r\n\r\n istek.parametreler = {\r\n vt: 'FikoYT.Uyar.projeler' as IVT,\r\n yol: 'FikoYT.Uyar.projeler.kalem' as IYollar,\r\n veri: yeniProje\r\n };\r\n\r\n await istek.isteSync();\r\n\r\n if (istek.cevap.sonuc) {\r\n await this.projeleriGetir();\r\n return yeniProje._id!;\r\n }\r\n\r\n return null;\r\n } catch (error) {\r\n console.error('Proje oluşturulurken hata:', error);\r\n this.hata.set('Proje oluşturulamadı');\r\n return null;\r\n } finally {\r\n this.yukleniyor.set(false);\r\n }\r\n }\r\n\r\n // Proje güncelle\r\n async projeGuncelle(params: { filter: any; veri: Partial; upsert?: boolean }): Promise {\r\n this.yukleniyor.set(true);\r\n this.hata.set(null);\r\n\r\n try {\r\n const guncelVeri = {\r\n ...params.veri,\r\n guncellemeTarihi: new Date().toISOString()\r\n };\r\n\r\n const istek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.guncelle',\r\n gecikmeliCevap: false,\r\n });\r\n\r\n istek.parametreler = {\r\n filter: {\r\n ...params.filter,\r\n vt: 'FikoYT.Uyar.projeler' as IVT,\r\n yol: 'FikoYT.Uyar.projeler.kalem' as IYollar\r\n },\r\n veri: { $set: guncelVeri },\r\n upsert: params.upsert || false\r\n };\r\n\r\n await istek.isteSync();\r\n\r\n if (istek.cevap.sonuc !== undefined) {\r\n await this.projeleriGetir();\r\n return true;\r\n }\r\n\r\n return false;\r\n } catch (error) {\r\n console.error('Proje güncellenirken hata:', error);\r\n this.hata.set('Proje güncellenemedi');\r\n return false;\r\n } finally {\r\n this.yukleniyor.set(false);\r\n }\r\n }\r\n\r\n // Proje sil\r\n async projeSil(id: string): Promise {\r\n this.yukleniyor.set(true);\r\n this.hata.set(null);\r\n\r\n try {\r\n const istek = new FikoYTIstekKok({\r\n metod: 'POST',\r\n komut: 'FikoYT.sistem.DB.hareketler.sil',\r\n gecikmeliCevap: false,\r\n });\r\n\r\n istek.parametreler = {\r\n filter: {\r\n _id: id,\r\n vt: 'FikoYT.Uyar.projeler' as IVT,\r\n yol: 'FikoYT.Uyar.projeler.kalem' as IYollar\r\n }\r\n };\r\n\r\n await istek.isteSync();\r\n\r\n if (istek.cevap.sonuc !== undefined) {\r\n await this.projeleriGetir();\r\n return true;\r\n }\r\n\r\n return false;\r\n } catch (error) {\r\n console.error('Proje silinirken hata:', error);\r\n this.hata.set('Proje silinemedi');\r\n return false;\r\n } finally {\r\n this.yukleniyor.set(false);\r\n }\r\n }\r\n\r\n // Durum güncelle\r\n async durumGuncelle(id: string, durum: Proje['durum']): Promise {\r\n return await this.projeGuncelle({\r\n filter: { _id: id },\r\n veri: { durum }\r\n });\r\n }\r\n\r\n // İlerleme yüzdesi güncelle\r\n async ilerlemeGuncelle(id: string, yuzdeTamamlanma: number): Promise {\r\n return await this.projeGuncelle({\r\n filter: { _id: id },\r\n veri: { yuzdeTamamlanma: Math.min(100, Math.max(0, yuzdeTamamlanma)) }\r\n });\r\n }\r\n\r\n // Bütçe güncelle\r\n async butceGuncelle(id: string, butce: number, harcama?: number): Promise {\r\n const veri: Partial = { butce };\r\n if (harcama !== undefined) {\r\n veri.harcama = harcama;\r\n }\r\n return await this.projeGuncelle({\r\n filter: { _id: id },\r\n veri\r\n });\r\n }\r\n\r\n // Ekip üyesi ekle\r\n async ekipUyesiEkle(id: string, uyeId: string): Promise {\r\n const proje = await this.projeGetir(id);\r\n if (!proje) return false;\r\n\r\n const ekipUyeleri = proje.ekipUyeleri || [];\r\n if (!ekipUyeleri.includes(uyeId)) {\r\n ekipUyeleri.push(uyeId);\r\n return await this.projeGuncelle({\r\n filter: { _id: id },\r\n veri: { ekipUyeleri }\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Ekip üyesi çıkar\r\n async ekipUyesiCikar(id: string, uyeId: string): Promise {\r\n const proje = await this.projeGetir(id);\r\n if (!proje) return false;\r\n\r\n const ekipUyeleri = (proje.ekipUyeleri || []).filter(u => u !== uyeId);\r\n return await this.projeGuncelle({\r\n filter: { _id: id },\r\n veri: { ekipUyeleri }\r\n });\r\n }\r\n\r\n // Etiket ekle\r\n async etiketEkle(id: string, etiket: string): Promise {\r\n const proje = await this.projeGetir(id);\r\n if (!proje) return false;\r\n\r\n const etiketler = proje.etiketler || [];\r\n if (!etiketler.includes(etiket)) {\r\n etiketler.push(etiket);\r\n return await this.projeGuncelle({\r\n filter: { _id: id },\r\n veri: { etiketler }\r\n });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Etiket çıkar\r\n async etiketCikar(id: string, etiket: string): Promise {\r\n const proje = await this.projeGetir(id);\r\n if (!proje) return false;\r\n\r\n const etiketler = (proje.etiketler || []).filter(e => e !== etiket);\r\n return await this.projeGuncelle({\r\n filter: { _id: id },\r\n veri: { etiketler }\r\n });\r\n }\r\n\r\n // Arama yap\r\n async projeAra(aramaMetni: string): Promise {\r\n this.yukleniyor.set(true);\r\n this.hata.set(null);\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 gecikmeliCevap: false,\r\n });\r\n\r\n istek.parametreler = {\r\n aggregate: [\r\n {\r\n $match: {\r\n vt: 'FikoYT.Uyar.projeler' as IVT,\r\n yol: 'FikoYT.Uyar.projeler.kalem' as IYollar,\r\n $or: [\r\n { projeAdi: { $regex: escapeRegex(aramaMetni), $options: 'i' } },\r\n { aciklama: { $regex: escapeRegex(aramaMetni), $options: 'i' } },\r\n { musteriFirma: { $regex: escapeRegex(aramaMetni), $options: 'i' } },\r\n { sorumluKisi: { $regex: escapeRegex(aramaMetni), $options: 'i' } }\r\n ]\r\n }\r\n },\r\n {\r\n $sort: { olusturmaTarihi: -1 }\r\n }\r\n ]\r\n };\r\n\r\n await istek.isteSync();\r\n\r\n if (istek.cevap.sonuc) {\r\n return istek.cevap.sonuc;\r\n }\r\n\r\n return [];\r\n } catch (error) {\r\n console.error('Proje aranırken hata:', error);\r\n this.hata.set('Arama yapılamadı');\r\n return [];\r\n } finally {\r\n this.yukleniyor.set(false);\r\n }\r\n }\r\n\r\n // Duruma göre filtrele\r\n async durumFiltrele(durum: Proje['durum']): Promise {\r\n this.yukleniyor.set(true);\r\n this.hata.set(null);\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 gecikmeliCevap: false,\r\n });\r\n\r\n istek.parametreler = {\r\n aggregate: [\r\n {\r\n $match: {\r\n vt: 'FikoYT.Uyar.projeler' as IVT,\r\n yol: 'FikoYT.Uyar.projeler.kalem' as IYollar,\r\n durum: durum\r\n }\r\n },\r\n {\r\n $sort: { olusturmaTarihi: -1 }\r\n }\r\n ]\r\n };\r\n\r\n await istek.isteSync();\r\n\r\n if (istek.cevap.sonuc) {\r\n return istek.cevap.sonuc;\r\n }\r\n\r\n return [];\r\n } catch (error) {\r\n console.error('Projeler filtrelenirken hata:', error);\r\n this.hata.set('Filtreleme yapılamadı');\r\n return [];\r\n } finally {\r\n this.yukleniyor.set(false);\r\n }\r\n }\r\n}\r\n\r\n// Backward compatibility - eski kod için alias\r\nexport { ProjelerService as ServisUyarProjeler };\r\n","\nimport { ChangeDetectionStrategy, Component, effect, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { FikoYTKokBilesenComponent } from '../../../service/kok-bilesen/kok-bilesen.component';\nimport { PaylasKutusuComponent } from '@/src/service/fikoyt-ui/src/lib/paylasim-sistemi/paylas-kutusu/paylas-kutusu.component';\nimport { FikoYTKartKokComponent } from '@/src/service/fikoyt-ui/src/lib/paylasim-sistemi/fikoyt-kart-kok/fikoyt-kart.component';\nimport { ServisUyarProjeler } from '../uyar-dokum/projeler/projeler.service';\nimport { HmiYonetimService } from '../hmi-pano/pano/pages/personel/pages/yonetim-kayit/hmi-yonetim.service';\nimport { HmiSatisService } from '../hmi-pano/pano/pages/personel/pages/satis/hmi-satis.service';\nimport { HmiUretimService } from '../hmi-pano/pano/pages/personel/pages/uretim/hmi-uretim.service';\nimport { HmiProjelerService } from '../hmi-pano/pano/pages/personel/pages/projeler/hmi-projeler.service';\nimport { FikoYTIstekSayfalama, ISayfalama } from '@/src/service/modules/fikoyt-istek-kok/fikoyt-istek-sayfalama';\nimport { IVT, IYollar } from '@/src/service/fikoyt-ui/interfaces/IKart.interface';\nimport { IParametreSetiGrubu } from '@/src/service/fikoyt-ui/interfaces/IParametreSeti.interface';\nimport { NzPaginationModule } from 'ng-zorro-antd/pagination';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\nimport { BildirimDropdownComponent } from '@/src/app/shared/components/bildirim-dropdown/bildirim-dropdown.component';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { FikoYTUygBaslikComponent } from '@/src/service/fikoyt-ui/src/lib/fikoyt-uygulama-baslik/fikoyt-uygulama-baslik.component';\nimport { IKart, IKartTuru } from '@/src/service/fikoyt-ui/interfaces/IKart.interface';\nimport { FikoYTIstekKok } from '@/src/service/modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service';\nimport { FikoFilitreciComponent } from '@/src/service/fikoyt-ui/src/lib/fiko-filitreci/fiko-filitreci.component';\nimport { IGrupI } from '@/src/service/fikoyt-ui/interfaces/IGrup';\nimport { CanliGuncellemeService } from '@/src/service/fikoyt-ui/src/lib/dinamik-bilesen/canli-guncelleme.service';\nimport { parametredenSiralamaOlustur, IDinamikBilesenFiltreSet } from '@/src/service/fikoyt-ui/src/lib/fiko-filitreci/parametre-filitre-yardimci';\nimport { SISTEM_PARAMETRE_SETLERI } from '@/src/service/fikoyt-ui/src/lib/parametre-setleri/sistem-parametre-setleri';\n\n@Component({\n selector: 'fikoyt-paylasim-sistemi',\n templateUrl: './paylasim-sistemi.component.html',\n styleUrls: ['./paylasim-sistemi.component.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n PaylasKutusuComponent,\n FikoYTKartKokComponent,\n NzPaginationModule,\n NzGridModule,\n NzButtonModule,\n NzCheckboxModule,\n BildirimDropdownComponent,\n NzPopconfirmModule,\n FikoYTUygBaslikComponent,\n FikoFilitreciComponent,\n ]\n})\nexport class PaylasimSistemiComponent extends FikoYTKokBilesenComponent {\n /** Kullanıcı filtresinin pipeline'daki sabit konumu (son aşama — lookup/addFields/project sonrası) */\n private static readonly FILTRE_ASAMASI = 10;\n listeIstek: FikoYTIstekSayfalama;\n u_id: string | null = null;\n ustKart: IKart | null = null;\n altKartSablonlari: any[] = [];\n tumParametreSetleri: IParametreSetiGrubu[] = [];\n private canliGuncelleme = inject(CanliGuncellemeService);\n private hmiYonetim = inject(HmiYonetimService);\n private hmiSatis = inject(HmiSatisService);\n private hmiUretim = inject(HmiUretimService);\n private hmiProjeler = inject(HmiProjelerService);\n\n constructor(public servisProjeler: ServisUyarProjeler) {\n super();\n //@ts-ignore\n this.listeIstek = new FikoYTIstekSayfalama({\n metod: 'POST',\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\n onEkOlsun: true,\n filitreler: [\n { $match: { vt: \"FikoYT.sistem.hareketler\" as IVT, yol: \"FikoYT.sistem.hareketler.kalem\" as IYollar } },\n { $match: { silindi: { $ne: true } } },\n {\n $lookup: {\n from: \"hareketler\",\n localField: \"veri.icerikler\",\n foreignField: \"_id\",\n as: \"veri.icerikler\"\n }\n },\n // 🚀 PERFORMANS: yorumSayisi/_hesap.* artık her sayfa yüklemesinde 4 ayrı\n // iç-içe $lookup ile CANLI hesaplanmıyor — bir alt kart eklendiğinde/\n // güncellendiğinde AltKartOzetService tarafından karta yazılıp önbelleklenen\n // değerler doğrudan okunuyor (bkz. ikart-kutusu.component.ts paylasTiklandi).\n // Henüz özeti hesaplanmamış eski kartlar için $ifNull ile 0/null'a düşer.\n {\n $addFields: {\n yorumSayisi: { $ifNull: ['$yorumSayisi', 0] },\n '_hesap.altKartSayisi': { $ifNull: ['$_hesap.altKartSayisi', 0] },\n '_hesap.sonDurum': { $ifNull: ['$_hesap.sonDurum', null] },\n '_hesap.projeSonDurum': { $ifNull: ['$_hesap.projeSonDurum', null] },\n '_hesap.projeIlerleme': { $ifNull: ['$_hesap.projeIlerleme', 0] },\n '_hesap.projeAltToplam': { $ifNull: ['$_hesap.projeAltToplam', 0] },\n '_hesap.projeAltTamamlanan': { $ifNull: ['$_hesap.projeAltTamamlanan', 0] },\n // Cam kütük ölçüleri: kartın KENDİ veri.icerikler[0]'ından türetiliyor (ekstra\n // $lookup gerektirmez, zaten yukarıda join edilmiş veri üzerinde çalışır — ucuz).\n '_hesap.olculer': {\n $let: {\n vars: { ic: { $arrayElemAt: ['$veri.icerikler', 0] } },\n in: {\n $sortArray: {\n input: {\n $filter: {\n input: [\n { $convert: { input: '$$ic.ek.en', to: 'double', onError: null, onNull: null } },\n { $convert: { input: '$$ic.ek.boy', to: 'double', onError: null, onNull: null } },\n { $convert: { input: '$$ic.ek.yukseklik', to: 'double', onError: null, onNull: null } }\n ],\n as: 'v',\n cond: { $and: [{ $ne: ['$$v', null] }, { $gt: ['$$v', 0] }] }\n }\n },\n sortBy: 1\n }\n }\n }\n }\n }\n },\n {\n $addFields: {\n '_hesap.enKucukOlcu': { $arrayElemAt: ['$_hesap.olculer', 0] },\n '_hesap.ortancaOlcu': { $arrayElemAt: ['$_hesap.olculer', 1] },\n '_hesap.enBuyukOlcu': { $arrayElemAt: ['$_hesap.olculer', 2] },\n }\n },\n // 🚀 PERFORMANS: yeFikolaSayisi (repost) artık feed'de TEK $lookup ile\n // toplu hesaplanıyor — eskiden her kart kendi effect'inde ayrı aggregate\n // atıyordu (10 kart = 10 istek = N+1). Mantık yeFikolaSayisiniGuncelle\n // ile birebir aynı; bkz. fikoyt-kart.component.ts fallback effect'i.\n {\n $lookup: {\n from: \"hareketler\",\n let: { kid: \"$_id\" },\n pipeline: [\n { $match: { $expr: { $and: [\n { $eq: [\"$ek.turu\", \"REFERANS\"] },\n { $eq: [\"$ek.rid\", \"$$kid\"] }\n ] },\n _uid: { $exists: true },\n silindi: { $ne: true } } },\n { $lookup: { from: \"hareketler\", localField: \"_uid\", foreignField: \"_id\", as: \"_ust\" } },\n { $unwind: \"$_ust\" },\n { $match: { \"_ust.silindi\": { $ne: true } } },\n { $count: \"toplam\" }\n ],\n as: \"_yeFikolaSayim\"\n }\n },\n {\n $addFields: {\n yeFikolaSayisi: { $ifNull: [{ $arrayElemAt: [\"$_yeFikolaSayim.toplam\", 0] }, 0] }\n }\n },\n // Kullanıcı filtresi — daima pipeline sonunda (bkz. FILTRE_ASAMASI)\n { $match: {} },\n ],\n sayfalama: {\n sayi: 10,\n siralama: { _id: -1 }\n } as ISayfalama,\n depoModu: false,\n oncelik: 0,\n gecikmeliCevap: false,\n gecikmeliCevapSuresi: 0,\n otoSonId: true,\n eklemeliListe: false,\n })\n .onMesgulDegisti(({ self, mesgul }) => {\n // setTimeout(() => {\n this.CD.detectChanges();\n // });\n })\n .onHata(({ self, hatalar }) => {\n this.nzNotification.error(\"Hatalar Var\", hatalar.map(hata => hata.mesaj).join(\"\\n\"));\n }).onTamamlandi(({ self }) => {\n // setTimeout(() => {\n this.CD.detectChanges();\n // });\n });\n\n delete (this.servisProjeler.kart as any).kisiId;\n\n const hmiGrubu = SISTEM_PARAMETRE_SETLERI.find(g => g.id === 'sistem.hmi');\n const kutukStokGrubu = SISTEM_PARAMETRE_SETLERI.find(g => g.id === 'sistem.kutuk-stok');\n const genelStokGrubu = SISTEM_PARAMETRE_SETLERI.find(g => g.id === 'sistem.genel-stok');\n // const camIslemeGrubu = SISTEM_PARAMETRE_SETLERI.find(g => g.id === 'sistem.cam-isleme');\n this.tumParametreSetleri = [\n // ...(this.hmiProjeler.parametreSetleri || []),\n // ...(this.hmiYonetim.parametreSetleri || []),\n // ...(this.hmiSatis.parametreSetleri || []),\n // ...(this.hmiUretim.parametreSetleri || []),\n ...(hmiGrubu ? [hmiGrubu] : []),\n ...(kutukStokGrubu ? [kutukStokGrubu] : []),\n ...(genelStokGrubu ? [genelStokGrubu] : []),\n // ...(camIslemeGrubu ? [camIslemeGrubu] : []),\n {\n id: 'uyar.model',\n baslik: 'Uyar Model',\n simge: '🎯',\n kaynak: 'kod',\n altGruplar: [\n { id: 'cam-kutuk', baslik: 'Kütük', simge: '🪵', bilesen: 'cam-kutuk', kaynak: 'kod',\n parametreler: [\n { turu: 'Yazı', ismi: 'kutukId', baslik: 'Kütük ID' },\n { turu: 'Yazı', ismi: 'projeAdi', baslik: 'Proje Adı' },\n { turu: 'Sayı', ismi: 'en', baslik: 'En (mm)', ayarlar: { min: 0 } },\n { turu: 'Sayı', ismi: 'boy', baslik: 'Boy (mm)', ayarlar: { min: 0 } },\n { turu: 'Sayı', ismi: 'yukseklik', baslik: 'Yükseklik (mm)', ayarlar: { min: 0 } },\n { turu: 'Sayı', ismi: 'adet', baslik: 'Adet', ayarlar: { min: 1 } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ],\n hesapAlanlari: [\n {\n ismi: '_hesap.sonDurum', baslik: 'Son Durum', simge: '🔄',\n tipi: 'secim', coklu: true,\n secenekler: [\n { etiket: '⏳ Bekliyor', deger: 'Bekliyor' },\n { etiket: '👁️ Görüldü', deger: 'Görüldü' },\n { etiket: '🔨 Hazırlanıyor', deger: 'Hazırlanıyor' },\n { etiket: '✅ Tamamlandı', deger: 'Tamamlandı' },\n { etiket: '❌ İptal', deger: 'İptal' },\n ],\n },\n {\n ismi: '_hesap.olculer.tek', alanYolu: '_hesap.olculer',\n baslik: 'Herhangi Bir Ölçü (mm)', simge: '📏',\n tipi: 'sayı',\n },\n {\n ismi: '_hesap.olculer.tam', alanYolu: '_hesap.olculer',\n baslik: 'Tam Ölçü Eşleşmesi (X×Y×Z sırasız)', simge: '📐',\n tipi: 'olcu-uclu',\n },\n {\n ismi: '_hesap.olculer.sinir', alanYolu: '_hesap.olculer',\n baslik: 'Ölçü Sınırları (min/max — sıralı)', simge: '📊',\n tipi: 'olcu-sinir',\n },\n {\n ismi: '_hesap.enKucukOlcu',\n baslik: 'En Küçük Ölçü', simge: '🔻',\n tipi: 'sayı',\n },\n {\n ismi: '_hesap.ortancaOlcu',\n baslik: 'Ortanca Ölçü', simge: '🟰',\n tipi: 'sayı',\n },\n {\n ismi: '_hesap.enBuyukOlcu',\n baslik: 'En Büyük Ölçü', simge: '🔺',\n tipi: 'sayı',\n },\n ],\n altKartSablonlari: [\n { id: 'cam.kutuk.durum', baslik: 'Durum Güncelleme', simge: '🔄', bilesen: 'cam-kutuk-durum', parametreler: [\n { turu: 'Açılır Kutu', ismi: 'durum', baslik: 'Durum', ayarlar: { zorunlu: true, secenekler: [\n { label: 'Bekliyor', value: 'Bekliyor' }, { label: 'Görüldü', value: 'Görüldü' },\n { label: 'Hazırlanıyor', value: 'Hazırlanıyor' }, { label: 'Tamamlandı', value: 'Tamamlandı' },\n { label: 'İptal', value: 'İptal' },\n ] } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ] },\n ],\n } as any,\n { id: 'proje-tanimi', baslik: 'Proje Tanımı', simge: '📂', bilesen: 'proje-tanimi', kaynak: 'kod',\n parametreler: [\n { turu: 'Yazı', ismi: 'projeAdi', baslik: 'Proje Adı', ayarlar: { zorunlu: true } },\n { turu: 'Yazı', ismi: 'projeKodu', baslik: 'Proje Kodu' },\n { turu: 'Yazı', ismi: 'musteri', baslik: 'Müşteri' },\n { turu: 'Açılır Kutu', ismi: 'kategori', baslik: 'Kategori', ayarlar: { secenekler: [\n { etiket: 'Üretim', deger: 'Üretim' },\n { etiket: 'AR-GE', deger: 'AR-GE' },\n { etiket: 'Bakım', deger: 'Bakım' },\n { etiket: 'Tasarım', deger: 'Tasarım' },\n { etiket: 'Diğer', deger: 'Diğer' },\n ] } },\n { turu: 'Açılır Kutu', ismi: 'oncelik', baslik: 'Öncelik', ayarlar: { secenekler: [\n { etiket: 'Düşük', deger: 'Düşük' },\n { etiket: 'Normal', deger: 'Normal' },\n { etiket: 'Yüksek', deger: 'Yüksek' },\n { etiket: 'Kritik', deger: 'Kritik' },\n ] } },\n { turu: 'Tarih', ismi: 'baslangicTarihi', baslik: 'Başlangıç Tarihi' },\n { turu: 'Tarih', ismi: 'hedefBitis', baslik: 'Hedef Bitiş' },\n { turu: 'Yazı', ismi: 'sorumlu', baslik: 'Sorumlu' },\n { turu: 'Yazı Alanı', ismi: 'aciklama', baslik: 'Açıklama' },\n ],\n hesapAlanlari: [\n {\n ismi: '_hesap.projeSonDurum', baslik: 'Son Durum', simge: '🔄',\n tipi: 'secim', coklu: true,\n secenekler: [\n { etiket: '⏳ Planlandı', deger: 'Planlandı' },\n { etiket: '🚀 Devam Ediyor', deger: 'Devam Ediyor' },\n { etiket: '⏸️ Beklemede', deger: 'Beklemede' },\n { etiket: '✅ Tamamlandı', deger: 'Tamamlandı' },\n { etiket: '❌ İptal', deger: 'İptal' },\n ],\n },\n { ismi: '_hesap.projeIlerleme', baslik: 'İlerleme %', simge: '📊', tipi: 'sayı' },\n { ismi: '_hesap.projeAltToplam', baslik: 'Görev Sayısı', simge: '🗂️', tipi: 'sayı' },\n { ismi: '_hesap.projeAltTamamlanan', baslik: 'Tamamlanan Görev', simge: '✅', tipi: 'sayı' },\n ],\n altKartSablonlari: [\n { id: 'proje.tanimi.durum', baslik: 'Durum Güncelleme', simge: '🔄', bilesen: 'proje-tanimi-durum', parametreler: [\n { turu: 'Açılır Kutu', ismi: 'durum', baslik: 'Durum', ayarlar: { zorunlu: true, secenekler: [\n { etiket: 'Planlandı', deger: 'Planlandı' },\n { etiket: 'Devam Ediyor', deger: 'Devam Ediyor' },\n { etiket: 'Beklemede', deger: 'Beklemede' },\n { etiket: 'Tamamlandı', deger: 'Tamamlandı' },\n { etiket: 'İptal', deger: 'İptal' },\n ] } },\n { turu: 'Açılır Kutu', ismi: 'ilerlemeTipi', baslik: 'İlerleme Tipi', ayarlar: { secenekler: [\n { etiket: '🎯 Kesin (Tam Durum)', deger: 'kesin' },\n { etiket: '➕ Eklemeli (+)', deger: 'eklemeli' },\n ] } },\n { turu: 'Sayı', ismi: 'ilerlemeDegeri', baslik: 'İlerleme %', ayarlar: { min: 0, maks: 100 } },\n { turu: 'Yazı Alanı', ismi: 'notlar', baslik: 'Notlar' },\n ] },\n ],\n } as any,\n ],\n } as any,\n ];\n\n this.route.paramMap.subscribe(params => {\n this.u_id = params.get('u_id');\n if (this.u_id) {\n (this.servisProjeler.kart as any)._uid = this.u_id;\n this.ustKartYukle(this.u_id);\n } else {\n delete (this.servisProjeler.kart as any)._uid;\n }\n this.filtreGuncelle();\n setTimeout(() => {\n this.listeIstek.isteSync();\n });\n });\n\n effect(() => {\n const g = this.canliGuncelleme.kartGuncellendi();\n if (!g) return;\n const idx = this.listeIstek.liste.findIndex(k => k._id === g.kartId);\n if (idx >= 0) { this.listeIstek.liste[idx] = { ...this.listeIstek.liste[idx], ...g.veri }; this.listeIstek.liste = this.listeIstek.liste.slice(); this.CD.detectChanges(); }\n });\n effect(() => {\n const id = this.canliGuncelleme.kartSilindi();\n if (!id) return;\n const onceki = this.listeIstek.liste.length;\n this.listeIstek.liste = this.listeIstek.liste.filter(k => k._id !== id);\n if (this.listeIstek.liste.length < onceki && this.listeIstek.sayfalama.toplamKayitSayisi > 0) {\n this.listeIstek.sayfalama.toplamKayitSayisi--;\n }\n this.CD.detectChanges();\n });\n effect(() => {\n const kart = this.canliGuncelleme.kartYeni();\n if (!kart) return;\n if (this.listeIstek.liste.some(k => k._id === kart._id)) return;\n this.listeIstek.liste = [kart, ...this.listeIstek.liste];\n this.listeIstek.sayfalama.toplamKayitSayisi++;\n this.CD.detectChanges();\n });\n\n // Sunucudan (Socket.IO) gelen kart olayları — diğer kullanıcı/cihazlar\n this.canliGuncelleme.socketBagla(this.FikoYT.io);\n effect(() => {\n const olay = this.canliGuncelleme.sunucuOlayi();\n if (!olay) return;\n switch (olay.tip) {\n case 'silindi':\n this.canliGuncelleme.kartSilindi.set(olay.kartId);\n break;\n case 'guncellendi':\n this.tekKartYenile(olay.kartId);\n break;\n case 'yeni':\n this.listeYenileGecikmeli();\n break;\n }\n });\n }\n\n /** Yeni kart olaylarında listeyi tek seferde yeniler (art arda olayları toplar) */\n private listeYenileZamanlayici: any = null;\n private listeYenileGecikmeli() {\n if (this.listeYenileZamanlayici) clearTimeout(this.listeYenileZamanlayici);\n this.listeYenileZamanlayici = setTimeout(() => {\n this.listeYenileZamanlayici = null;\n this.listeIstek.isteSync();\n }, 600);\n }\n\n /** Tek kartı (içerik lookup'lı) sunucudan çekip listede yerine koyar */\n private async tekKartYenile(kartId: string) {\n if (!this.listeIstek.liste.some((k: any) => k._id === kartId) && this.ustKart?._id !== kartId) {\n // Kart henüz listede değil (yeni geldi / yenileme sürüyor) — listeyi topluca yenile\n this.listeYenileGecikmeli();\n return;\n }\n try {\n const istek = new FikoYTIstekKok({\n metod: 'POST',\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\n parametreler: {\n aggregate: [\n { $match: { _id: kartId } },\n { $lookup: { from: 'hareketler', localField: 'veri.icerikler', foreignField: '_id', as: 'veri.icerikler' } },\n { $limit: 1 }\n ]\n }\n });\n const cevap: any = await istek.isteSync();\n const kart = cevap?.cevap?.sonuc?.[0];\n if (!kart) return;\n if (kart.silindi) {\n this.canliGuncelleme.kartSilindi.set(kartId);\n return;\n }\n if (this.ustKart?._id === kartId) {\n this.ustKart = kart;\n this.CD.detectChanges();\n return;\n }\n this.kartYerineKoy(kart);\n } catch { /* sessiz — sonraki olay/yenileme telafi eder */ }\n }\n\n async ustKartYukle(kartId: string) {\n try {\n const istek = new FikoYTIstekKok({\n metod: 'POST',\n komut: 'FikoYT.sistem.DB.hareketler.aggregate',\n parametreler: {\n aggregate: [\n { $match: { _id: kartId, silindi: { $ne: true } } },\n { $lookup: { from: 'hareketler', localField: 'veri.icerikler', foreignField: '_id', as: 'veri.icerikler' } },\n { $limit: 1 }\n ]\n }\n });\n const cevap: any = await istek.isteSync();\n const kart = cevap?.cevap?.sonuc?.[0];\n if (!kart) return;\n this.ustKart = kart;\n const setIdleri = new Set();\n kart.veri?.icerikler?.forEach((ic: any) => {\n if (ic?.ek?._secilenSetId) setIdleri.add(ic.ek._secilenSetId);\n if (ic?.ek?.bilesen) setIdleri.add(ic.ek.bilesen);\n });\n const tumSetler = [\n ...this.tumParametreSetleri,\n ];\n const sablonlar: any[] = [];\n const bul = (gruplar: any[]) => {\n for (const g of gruplar) {\n const eslesme = setIdleri.has(g.id) || setIdleri.has(g.bilesen) || (g.bilesen && setIdleri.has(g.bilesen));\n if (eslesme && g.altKartSablonlari?.length) sablonlar.push(...g.altKartSablonlari);\n if (!eslesme && g.altGruplar?.length) bul(g.altGruplar);\n if (eslesme && g.altGruplar?.length) {\n for (const alt of g.altGruplar) {\n if (alt.altKartSablonlari?.length) sablonlar.push(...alt.altKartSablonlari);\n }\n }\n }\n };\n bul(tumSetler);\n this.altKartSablonlari = sablonlar.length ? [{ id: 'alt-sablonlar', baslik: 'Alt Kart Şablonları', simge: '📋', kaynak: 'kod', altGruplar: sablonlar }] : [];\n this.CD.detectChanges();\n } catch (e) {\n this.nzMessage.error('Üst kart yüklenemedi');\n }\n }\n\n filtreGuncelle() {\n if (this.u_id) {\n this.listeIstek.filitreler[0] = { $match: { vt: \"FikoYT.sistem.hareketler\" as IVT, _uid: this.u_id, turu: { $in: [IKartTuru.KART, IKartTuru.UYAR_DOKUM] }, silindi: { $ne: true } } };\n } else {\n this.listeIstek.filitreler[0] = { $match: { vt: \"FikoYT.sistem.hareketler\" as IVT, yol: \"FikoYT.sistem.hareketler.kalem\" as IYollar, $or: [{ u_id: { $exists: false } }, { u_id: null }], _uid: { $exists: false } } };\n }\n this.listeIstek.parametreler.aggregate = this.listeIstek._alAggregate();\n }\n\n // --- Filtre ---\n filitreciAcik = false;\n filitreciSablon: IGrupI = { veVeya: \"ve\", acik: false, alanlar: [] };\n\n temelSiralamalar = [\n { ismi: '📅 En Yeni', degeri: { tarih: -1 } },\n { ismi: '📅 En Eski', degeri: { tarih: 1 } },\n { ismi: '✏️ Son Düzenlenen', degeri: { duzenlenmeTarihi: -1 } },\n { ismi: '✏️ İlk Düzenlenen', degeri: { duzenlenmeTarihi: 1 } },\n ];\n aktifSiralama: any = { tarih: -1 };\n\n get siralamalar() {\n return [...this.temelSiralamalar, ...parametredenSiralamaOlustur(this.tumParametreler)];\n }\n\n siralamaDegisti(deger: any) {\n this.aktifSiralama = deger;\n this.listeIstek.sayfalama.siralama = deger;\n this.listeIstek.sayfalama.sayfa = 1;\n this.listeIstek.parametreler.aggregate = this.listeIstek._alAggregate();\n this.listeIstek.isteSync();\n }\n\n get bilesenTipleri() {\n const sonuc: any[] = [];\n const gorulenler = new Set();\n const tara = (gruplar: any[]) => {\n for (const g of gruplar) {\n if (g.bilesen && !gorulenler.has(g.bilesen)) {\n gorulenler.add(g.bilesen);\n sonuc.push({ id: g.bilesen, baslik: g.baslik, renk: g.renk, simge: g.simge });\n }\n if (g.altGruplar?.length) tara(g.altGruplar);\n if (g.altKartSablonlari?.length) tara(g.altKartSablonlari);\n }\n };\n tara(this.tumParametreSetleri || []);\n return sonuc;\n }\n\n get tumParametreler() {\n const sonuc: any[] = [];\n const gorulenler = new Set();\n const tara = (gruplar: any[]) => {\n for (const g of gruplar) {\n for (const p of (g.parametreler || [])) {\n if (!gorulenler.has(p.ismi)) { gorulenler.add(p.ismi); sonuc.push(p); }\n }\n if (g.altGruplar?.length) tara(g.altGruplar);\n if (g.altKartSablonlari?.length) tara(g.altKartSablonlari);\n }\n };\n tara(this.tumParametreSetleri || []);\n\n return sonuc;\n }\n\n\n get dinamikBilesenSetleri(): IDinamikBilesenFiltreSet[] {\n const sonuc: IDinamikBilesenFiltreSet[] = [];\n const gorulenler = new Set();\n const tara = (gruplar: any[]) => {\n for (const g of gruplar) {\n if (g.bilesen && !gorulenler.has(g.bilesen)) {\n gorulenler.add(g.bilesen);\n const parametreler = [...(g.parametreler || []), ...(g.altGruplar?.flatMap((ag: any) => ag.parametreler || []) || [])];\n const hesapAlanlari = g.hesapAlanlari || [];\n if (parametreler.length > 0 || hesapAlanlari.length > 0) {\n sonuc.push({ id: g.bilesen, setId: g.id, baslik: g.baslik, simge: g.simge, parametreler, hesapAlanlari });\n }\n }\n if (g.altGruplar?.length) tara(g.altGruplar);\n if (g.altKartSablonlari?.length) tara(g.altKartSablonlari);\n }\n };\n tara(this.tumParametreSetleri || []);\n tara(SISTEM_PARAMETRE_SETLERI);\n return sonuc;\n }\n\n filitreciAcKapa() {\n this.filitreciAcik = !this.filitreciAcik;\n this.CD.detectChanges();\n }\n\n filtreUygula() {\n const mongoSorgu = FikoFilitreciComponent.toMongoFromSablon(this.filitreciSablon) || {};\n const match = (mongoSorgu && Object.keys(mongoSorgu).length) ? mongoSorgu : {};\n this.listeIstek.filitreler[PaylasimSistemiComponent.FILTRE_ASAMASI] = { $match: match };\n this.listeIstek.sayfalama.sayfa = 1;\n this.listeIstek.parametreler.aggregate = this.listeIstek._alAggregate();\n this.listeIstek.isteSync();\n }\n\n filtreTemizle() {\n this.filitreciSablon = { veVeya: \"ve\", acik: true, alanlar: [] };\n this.listeIstek.filitreler[PaylasimSistemiComponent.FILTRE_ASAMASI] = { $match: {} };\n this.listeIstek.sayfalama.sayfa = 1;\n this.listeIstek.parametreler.aggregate = this.listeIstek._alAggregate();\n this.listeIstek.isteSync();\n this.CD.detectChanges();\n }\n\n /** Güncellenen kartı _id eşleşmesiyle listeye yerleştirir ($index kaymalarına dayanıklı) */\n kartYerineKoy(guncel: IKart) {\n const idx = this.listeIstek.liste.findIndex((k: any) => k._id === (guncel as any)._id);\n if (idx < 0) return;\n this.listeIstek.liste[idx] = guncel;\n this.listeIstek.liste = this.listeIstek.liste.slice();\n this.CD.detectChanges();\n }\n\n // --- Toplu İşlem Modu ---\n topluIslemModu = false;\n seciliKartIdler = new Set();\n topluIslemMesgul = false;\n\n topluIslemModuAcKapa() {\n this.topluIslemModu = !this.topluIslemModu;\n if (!this.topluIslemModu) {\n this.seciliKartIdler.clear();\n }\n this.CD.detectChanges();\n }\n\n kartSeciliMi(kartId: string): boolean {\n return this.seciliKartIdler.has(kartId);\n }\n\n kartSecimDegistir(kartId: string, secili: boolean) {\n if (secili) {\n this.seciliKartIdler.add(kartId);\n } else {\n this.seciliKartIdler.delete(kartId);\n }\n this.CD.detectChanges();\n }\n\n tumunuSec() {\n if (this.seciliKartIdler.size === this.listeIstek.liste.length) {\n this.seciliKartIdler.clear();\n } else {\n for (const k of this.listeIstek.liste) {\n this.seciliKartIdler.add(k._id);\n }\n }\n this.CD.detectChanges();\n }\n\n get seciliSayi(): number {\n return this.seciliKartIdler.size;\n }\n\n /** Toplu işlemleri sınırlı eşzamanlılıkla (5) paralel yürütür */\n private async topluYurut(govdeler: any[]): Promise {\n let basarili = 0;\n const ESZAMANLI = 5;\n for (let i = 0; i < govdeler.length; i += ESZAMANLI) {\n const grup = govdeler.slice(i, i + ESZAMANLI).map(async (govde) => {\n const formData = new FormData();\n formData.append('req_body', JSON.stringify(govde));\n const istek = new FikoYTIstekKok({\n metod: 'POST',\n komut: 'FikoYT.sistem.DB.hareketler.ekle',\n parametreler: formData,\n onEkOlsun: true,\n depoModu: false,\n });\n await istek.isteSync();\n });\n const sonuclar = await Promise.allSettled(grup);\n basarili += sonuclar.filter(s => s.status === 'fulfilled').length;\n }\n return basarili;\n }\n\n async topluSil() {\n if (this.seciliSayi === 0) return;\n this.topluIslemMesgul = true;\n this.CD.detectChanges();\n\n const govdeler = [...this.seciliKartIdler].map(kartId => ({ _id: kartId, silindi: true }));\n const basarili = await this.topluYurut(govdeler);\n\n if (basarili < govdeler.length) this.nzMessage.error(`${govdeler.length - basarili} kart silinemedi`);\n this.nzMessage.success(`${basarili} kart silindi`);\n this.seciliKartIdler.clear();\n this.topluIslemMesgul = false;\n this.listeIstek.isteSync();\n this.CD.detectChanges();\n }\n\n async topluEtiketle(etiket: string) {\n if (this.seciliSayi === 0 || !etiket) return;\n this.topluIslemMesgul = true;\n this.CD.detectChanges();\n\n const govdeler = [...this.seciliKartIdler].map(kartId => {\n const kart = this.listeIstek.liste.find((k: any) => k._id === kartId);\n const mevcutEtiketler = kart?.etiketler ?? [];\n if (!mevcutEtiketler.includes(etiket)) mevcutEtiketler.push(etiket);\n return { _id: kartId, etiketler: mevcutEtiketler };\n });\n const basarili = await this.topluYurut(govdeler);\n\n if (basarili < govdeler.length) this.nzMessage.error(`${govdeler.length - basarili} kart etiketlenemedi`);\n this.nzMessage.success(`${basarili} kart etiketlendi: ${etiket}`);\n this.topluIslemMesgul = false;\n this.listeIstek.isteSync();\n this.CD.detectChanges();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n override async ngAfterViewInit() {\n super.ngAfterViewInit();\n }\n}\n","\n
\n @if(FikoYT.io.bagli()){ ⚡ }\n \n
\n
\n\n
\n\n
\n \n
\n\n
\n @if (u_id) {\n

\n \n Alt Kartlar\n

\n } @else {\n

\n 📢 Paylaşım Sistemi\n

\n }\n
\n\n @if (u_id) {\n
\n \n
\n\n\n \n }\n\n
\n\n
\n\n @if (u_id && altKartSablonlari.length) {\n \n } @else if (!u_id) {\n \n } @else if (u_id) {\n \n }\n\n \n
\n \n \n
\n \n
\n\n @if (topluIslemModu) {\n \n \n {{ seciliSayi }} seçili\n \n \n \n
\n }\n
\n\n
\n\n @defer (on timer(0)) {\n @if (listeIstek.liste.length < 1)\n {\n \n
\n @if (listeIstek.mesgul) {\n \n } @else {\n \n }\n {{ listeIstek.mesgul ? 'Okunuyor...' : 'Henüz Paylaşım Yok' }}\n
\n
\n } @else {\n @if (listeIstek.mesgul) {\n
\n Güncelleniyor...\n
\n }\n @for (k of listeIstek.liste ?? []; track k._id) {\n
\n @if (topluIslemModu) {\n \n }\n \n
\n }\n\n @if (listeIstek.sayfalama.sayi) {\n \n \n\n \n \n \n }\n }\n } @placeholder {\n
\n
\n \n Paylaşımlar Alınıyor\n
\n
\n } @loading {\n
\n
\n \n Paylaşımlar Alınıyor\n
\n
\n } @error {\n
\n
\n Paylaşımlar yüklenemedi.\n
\n
\n }\n\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { NzNotificationService } from 'ng-zorro-antd/notification';\nimport { UygulamaErisimService } from '@/src/app/shared/abonelik/uygulama-erisim.service';\nimport { UYGULAMA_BUL } from '@/src/app/shared/abonelik/uygulama-katalog';\n\n/** Platform uygulaması erişim guard'ı. route.data.animasyonTag (= emoji) ile katalog/izin kontrolü. */\nexport const uygulamaErisimGuard = async (route: ActivatedRouteSnapshot, _state: RouterStateSnapshot) => {\n const erisim = inject(UygulamaErisimService);\n const router = inject(Router);\n const bildirim = inject(NzNotificationService);\n\n const id: string = route.data?.['animasyonTag'] || route.data?.['simge'] || '';\n if (await erisim.erisebilir(id)) {\n // Kampanyayla ücretsiz açıldıysa kullanıcıya \"normalde ücretli, şimdilik ücretsiz\" bildir.\n const ad = UYGULAMA_BUL(id)?.baslik || route.data?.['baslik'] || '';\n erisim.kampanyaBildir(id, ad);\n return true;\n }\n\n const t = UYGULAMA_BUL(id);\n if (t?.mod === 'ucretli') {\n bildirim.warning('Ücretli Uygulama', `\"${t.baslik}\" ücretli bir modüldür (${t.aylikFiyat} ₺/ay). Paketleri inceleyip teklif alabilirsiniz.`, { nzDuration: 6000 });\n return router.createUrlTree(['/🧩/💎']); // fiyatlandırma sayfasına (📢 yönlendirmesiyle döngü olmaz)\n }\n bildirim.error('Erişim Yok', `\"${t?.baslik || 'Bu uygulama'}\" için yetkiniz yok.`, { nzDuration: 5000 });\n return router.createUrlTree(['/🧩']);\n};\n","import { Routes } from '@angular/router';\r\nimport { PaylasimSistemiComponent } from './paylasim-sistemi.component';\r\nimport { uyeOlmayanGiremezGuard } from '../../guards/uye.guard';\r\nimport { uygulamaErisimGuard } from '../../guards/uygulama-erisim.guard';\r\n\r\n// Eski sistem deseni: login zorunlu + uygulama erişim izni kontrolü.\r\nexport const PAYLASIM_SISTEMI_ROUTES: Routes = [\r\n {\r\n path: '',\r\n title: 'FikoYT | Paylaşım',\r\n component: PaylasimSistemiComponent,\r\n canActivate: [uyeOlmayanGiremezGuard, uygulamaErisimGuard],\r\n // Eski sistemde main.ts side-effect import'lari ile kaydolan dinamik bilesenler\r\n // (kart/alt-kart renderer'lari) MFE'de hicbir yerde yuklenmiyordu -> DinamikBilesenRegistry bos.\r\n // @shared icinden (ayni registry singleton'i) dinamik import edilir; kayitlar\r\n // component olusmadan once tamamlanir.\r\n resolve: { dinamikKayitlar: () => import('./dinamik-kayitlar').then(() => true) },\r\n data: { preload: true, animasyonTag: \"📢\", baslik: \"Paylaşım Sistemi\", simge: \"📢\" },\r\n },\r\n];\r\n","// @ts-nocheck\n// @angular/common/locales/tr verisinin birebir kopyasi (Angular 22.1.x).\n// Neden: native-federation '@angular/common/locales/tr' bare specifier'ini external birakiyor ama\n// import map'e koymuyor -> 'Unable to resolve specifier'. Burada bundle'a gomulu olur.\n// Angular major yukseltmesinde node_modules/@angular/common/locales/tr.js ile karsilastir.\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n// THIS CODE IS GENERATED - DO NOT MODIFY.\nconst u = undefined;\nfunction plural(val) {\n const n = val;\n if (n === 1)\n return 1;\n return 5;\n}\nexport default [\"tr\", [[\"öö\", \"ös\"], [\"ÖÖ\", \"ÖS\"]], [[\"ÖÖ\", \"ÖS\"]], [[\"P\", \"P\", \"S\", \"Ç\", \"P\", \"C\", \"C\"], [\"Paz\", \"Pzt\", \"Sal\", \"Çar\", \"Per\", \"Cum\", \"Cmt\"], [\"Pazar\", \"Pazartesi\", \"Salı\", \"Çarşamba\", \"Perşembe\", \"Cuma\", \"Cumartesi\"], [\"Pa\", \"Pt\", \"Sa\", \"Ça\", \"Pe\", \"Cu\", \"Ct\"]], u, [[\"O\", \"Ş\", \"M\", \"N\", \"M\", \"H\", \"T\", \"A\", \"E\", \"E\", \"K\", \"A\"], [\"Oca\", \"Şub\", \"Mar\", \"Nis\", \"May\", \"Haz\", \"Tem\", \"Ağu\", \"Eyl\", \"Eki\", \"Kas\", \"Ara\"], [\"Ocak\", \"Şubat\", \"Mart\", \"Nisan\", \"Mayıs\", \"Haziran\", \"Temmuz\", \"Ağustos\", \"Eylül\", \"Ekim\", \"Kasım\", \"Aralık\"]], u, [[\"MÖ\", \"MS\"], u, [\"Milattan Önce\", \"Milattan Sonra\"]], 1, [6, 0], [\"d.MM.y\", \"d MMM y\", \"d MMMM y\", \"d MMMM y EEEE\"], [\"HH:mm\", \"HH:mm:ss\", \"HH:mm:ss z\", \"HH:mm:ss zzzz\"], [\"{1} {0}\", u, u, u], [\",\", \".\", \";\", \"%\", \"+\", \"-\", \"E\", \"×\", \"‰\", \"∞\", \"NaN\", \":\"], [\"#,##0.###\", \"%#,##0\", \"¤#,##0.00\", \"#E0\"], \"TRY\", \"₺\", \"Türk lirası\", { \"AUD\": [\"AU$\", \"$\"], \"BYN\": [u, \"р.\"], \"PHP\": [u, \"₱\"], \"RON\": [u, \"L\"], \"RUR\": [u, \"р.\"], \"THB\": [\"฿\"], \"TRY\": [\"₺\"], \"TWD\": [\"NT$\"] }, \"ltr\", plural];","/**\n * FikoYT Shared Library\n * Tüm MFE'lerde ortak kullanılan servisler, modüller ve temalar\n */\n\n// Environment\nexport { FikoYTEnvIstemci } from './lib/environment/environment';\n\n// Servisler\nexport { FikoYTService } from './lib/service/fikoyt.service';\nexport { FikoYTArayuz } from './lib/service/fikoyt.arayuz.service';\nexport { KimlikService } from './lib/service/kimlik.service';\nexport { LanguageService } from './lib/service/language.service';\nexport { CihazKimlikService } from './lib/service/fikoyt.cihaz-kimlik.service';\nexport { SeriPortService } from './lib/service/fikoyt.seri-port.service';\nexport { SocketFikoYT } from './lib/service/fikoyt.socket.service';\nexport { FikoYTIstekService, IstekOlayTuru } from './lib/service/fikoyt.istek.service';\n\n// Kök Bileşen\nexport { FikoYTKokBilesenComponent } from './lib/service/kok-bilesen/kok-bilesen.component';\nexport { BreakpointObserver } from './lib/service/kok-bilesen/breakpoints-observer';\nexport { Breakpoints } from './lib/service/kok-bilesen/breakpoints';\n\n// Icons Provider\nexport { icons } from './lib/service/icons-provider';\n\n// Temalar\n// temalar.less ve ngZorroGlobal.less doğrudan import edilebilir\n// FikoYT UI — taşınan ortak çekirdek (paylasim-sistemi & fiko-three-js hariç)\nexport * from './lib/service/fikoyt-ui/index';\n\n// Uygulama route'ları (MFE remote'lar bunları host'ta yükler)\nexport { HMI_PANO_ROUTES } from './lib/app/uygulamalar/hmi-pano/hmi-pano.routes';\n\r\n// Uye-olmayan sayfalari (giris/kayit/sifre-sifirla) — remote barrel uzerinden erisim icin\r\nexport * from './lib/app/guards/uye.guard';\r\nexport * from './lib/app/sayfalar/kullanici/uye-olmayan/giris-yap/giris-yap.component';\r\nexport * from './lib/app/sayfalar/kullanici/uye-olmayan/aramiza-katil/aramiza-katil.component';\r\nexport * from './lib/app/sayfalar/kullanici/uye-olmayan/sifre-sifirla/sifre-sifirla.component';\r\nexport * from './lib/service/fikoyt-ui/src/lib/fikoyt-kart/fikoyt-kart.component';\r\nexport * from './lib/service/fikoyt-ui/src/lib/fikoyt-dalga/fikoyt-dalga.component';\r\nexport * from './lib/service/fikoyt-ui/src/lib/fikoyt-yuvarlak-resim/fikoyt-yuvarlak-resim.component';\r\nexport { PAYLASIM_SISTEMI_ROUTES } from './lib/app/uygulamalar/paylasim-sistemi/paylasim-sistemi.routes';\r\n// tr-TR locale verisi (MFE: '@angular/common/locales/tr' federation'da cozulemiyor)\r\nexport { default as localeTr } from './lib/app/locale-tr';\r\n","/// \n/// \nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["isDevelopment","baseUrl","FikoYTEnvIstemci","IstekOlayTuru","i1","i2.CihazKimlikService","i1.FikoYTService","catchError","mergeMap","i2","i3","i4.FikoYTArayuz","i5.CihazKimlikService","i6.FikoYTIstekService","map","FikoYTService","FikoYTIstekKok","_c0","_c1","_forTrack0","_c2","i5","UYG","FikoYTId","IKartTuru","IEkTuru","i9","i6","CanliGuncellemeService","i1.ServisUyarProjeler","i4","FikoYTUygBaslikComponent"],"mappings":"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"}