{ "ListFormCode": "App.DeveloperKit.CustomComponents", "KeyFieldName": "Id", "GeneratedAt": "2026-10-04T15:00:00Z", "Order": 0, "Rows": [ { "Id": "23744edc-eda9-512e-8079-fe2e8e5fd2a8", "Name": "MyLeaveWidget", "RoutePath": null, "Description": "Intranet panosu: çalışanın izin bakiyesi, süren talepleri ve izin talebi/taleplerim/bakiyem bağlantıları", "IsActive": true, "Dependencies": [], "Code": "// Calisanin kendi izin ozeti. Veri ekranlarin kendi sorgusundan okunur: satir suzmesi\n// (EmployeeId = oturum acan kullanici) ve yetki ListForm'da kalir, bilesen yalnizca toplar.\nconst REQUESTS = 'App.Hr.MyLeaveRequest'\nconst BALANCE = 'App.Hr.MyLeaveBalance'\nconst OPEN_STATUSES = ['Onaya Gönderildi', 'Müdür Onayı', 'İK Onayı']\n\nconst loadRows = async (listFormCode) => {\n const response = await apiService.fetchData({\n method: 'GET',\n url: '/api/app/list-form-select/select',\n params: { listFormCode, take: 500 },\n })\n return response.data?.data ?? []\n}\n\nconst formatDays = (value) => {\n const number = Number(value ?? 0)\n return Number.isInteger(number) ? String(number) : number.toFixed(1)\n}\n\nconst formatDate = (value) => {\n if (!value) return '-'\n const [year, month, day] = String(value).slice(0, 10).split('-')\n return `${day}.${month}.${year}`\n}\n\nconst Stat = ({ label, value, className }) => (\n