1var Qx=Object.defineProperty;var Xx=(t,e,r)=>e in t?Qx(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var vu=(t,e,r)=>Xx(t,typeof e!="symbol"?e+"":e,r);import{b as qt,r as k,j as n,g as Zx,d as ks,f as Jx,e as je,h as ev}from"./vendor-react-CYZ6L6Xr.js";import{u as Le,a as Tl,O as Ks,b as jt,c as Yc,d as tv,N as Yt,R as nv}from"./vendor-router-BQOrdJn0.js";import{c as dp,p as up,j as rv,a as mp,u as Re,b as ve,d as ye,Q as iv,e as sv}from"./vendor-data-D7B4oK5d.js";import{B as T,s as tc,a as re,L as nc,b as rc,R as hp,c as av,d as lv,T as ie,D as Za,e as fi,f as pp,g as Ss,h as Ja,G as fp,i as gp,j as Gs,k as el,l as ic,m as Es,n as Hc,o as ov,p as ws,q as Cs,r as yp,t as tl,u as cv,v as xp,M as dv,w as uv,x as mv,y as hv,z as ft,C as H,A as be,S as mt,F as x,E as Nr,I as G,H as Al,J as Bi,K as W,N as Ds,O as qn,P as pv,Q as rt,U as fv,V as nl,W as me,X as C,Y as Ee,Z as Rs,_ as gv,$ as Uc,a0 as vp,a1 as oi,a2 as Ie,a3 as Z,a4 as $t,a5 as at,a6 as Ot,a7 as _t,a8 as on,a9 as yv,aa as Tt,ab as We,ac as pe,ad as Ze,ae as F,af as Vt,ag as Jn,ah as Ve,ai as Tn,aj as ht,ak as An,al as Kn,am as cn,an as qc,ao as rl,ap as Ml,aq as xv,ar as vv,as as bv,at as Dn,au as $c,av as ai,aw as ei,ax as _r,ay as bu,az as bp,aA as _o,aB as Xn,aC as Kc,aD as _s,aE as _p,aF as _v,aG as jv,aH as kv,aI as Sv,aJ as Ev,aK as wv,aL as jp,aM as _u,aN as Cv,aO as Dv,aP as Rv,aQ as Iv,aR as Gc,aS as Is,aT as Tv,aU as Av,aV as Mv,aW as Nv,aX as Wi,aY as kp,aZ as Pv,a_ as zv,a$ as Ov,b0 as Sp,b1 as ju,b2 as Lv,b3 as ku,b4 as Fv,b5 as Wc,b6 as Bv,b7 as Yv,b8 as Hv,b9 as ls,ba as Uv,bb as qv,bc as Ba,bd as $v,be as Ep,bf as sc,bg as Kv,bh as Gv,bi as Su,bj as Wv,bk as Vv,bl as Qv}from"./vendor-antd-DKFQPySf.js";import{u as Xv,a as Zv,b as oa,p as Eu,n as wu,c as Jv,d as Cu,o as os,s as Yn,C as Rt,e as eb,f as Du}from"./vendor-forms-DOcM77m8.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const l of a.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&i(l)}).observe(document,{childList:!0,subtree:!0});function r(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(s){if(s.ep)return;s.ep=!0;const a=r(s);fetch(s.href,a)}})();const tb=new Set(["www","api","admin"]),ac="mks-dev-tenant-slug",gi="ekiplab.com".replace(/^https?:\/\//,"").replace(/\/.*$/,"").replace(/^\./,"");function nb(t){return/^\d{1,3}(\.\d{1,3}){3}$/.test(t)}function rn(t=window.location.hostname){return!t||t==="localhost"||t.endsWith(".local")||nb(t)}function Br(t=window.location.hostname){return t===gi||t===`www.${gi}`}function vi(t=window.location.hostname){return t===`admin.${gi}`}function Vc(t){if(!(typeof window>"u")){if(!t){window.localStorage.removeItem(ac);return}window.localStorage.setItem(ac,t)}}function il(){Vc(null)}function rb(t=window.location.hostname){if(rn(t))return window.localStorage.getItem(ac)||null;if(Br(t)||vi(t)||!t.endsWith(`.${gi}`))return null;const r=t.slice(0,-1*`.${gi}`.length).split(".")[0];return!r||tb.has(r)?null:r}const yi=rb;function wp(t="/"){return t.startsWith("/")?t:`/${t}`}function ib(t,e="/"){const r=wp(e);return typeof window>"u"||rn()?r:`${window.location.protocol}//${t}.${gi}${r}`}function Ts(t,e="/"){const r=ib(t,e);rn()&&Vc(t),window.location.assign(r)}function sb(t="/"){const e=wp(t);return typeof window>"u"||rn()?e:`${window.location.protocol}//admin.${gi}${e}`}function sl(t="/"){il(),window.location.assign(sb(t))}const He=dp()(up(t=>({token:null,refreshToken:null,user:null,currentTenant:null,availableTenants:[],requiresTenantSelection:!1,isSuperuser:!1,isAuthenticated:!1,login:e=>{try{const r=rv(e.access),i=e.tenant||(r.tenant_slug?{id:r.tenant_id,slug:r.tenant_slug,name:e.tenant_name||r.tenant_name||"",plan:"",is_active:!0,max_users:0,max_equipment:0,max_reports_per_month:0,storage_limit_mb:0,features:{},company_name:e.tenant_name||r.tenant_name||"",company_address:"",company_phone:"",company_email:"",company_website:"",tax_number:"",tax_office:"",turkak_no:"",mersis_no:"",subdomain_url:e.redirect_url||"",is_trial_active:!1,is_trial_expired:!1,user_count:0,equipment_count:0,report_count:0,created_at:"",updated_at:""}:null),s={id:r.user_id,email:r.email,firstName:r.first_name||"",lastName:r.last_name||"",role:r.role,fullName:r.full_name||"",isSuperuser:!!(e.is_superuser??r.is_superuser),tenantRole:e.tenant_role||r.tenant_role,isImpersonated:!!r.is_impersonated,impersonatorId:r.impersonator_id||null};i!=null&&i.slug?Vc(i.slug):il(),t({token:e.access,refreshToken:e.refresh,user:s,currentTenant:i,availableTenants:e.tenants||[],requiresTenantSelection:!!e.requires_tenant_selection,isSuperuser:!!(e.is_superuser??r.is_superuser),isAuthenticated:!0})}catch(r){console.error("Invalid token format",r)}},logout:()=>{t({token:null,refreshToken:null,user:null,currentTenant:null,availableTenants:[],requiresTenantSelection:!1,isSuperuser:!1,isAuthenticated:!1}),il()}}),{name:"mks-auth"})),ca="/api/v1";let da=null;async function ab(){var r,i;const e=He.getState().refreshToken;if(!e)return null;try{const s=Cp(),a=await mp.post(`${s}/auth/token/refresh/`,{refresh:e},{headers:{"Content-Type":"application/json"}}),l=(r=a.data)==null?void 0:r.access,o=((i=a.data)==null?void 0:i.refresh)||e;return l?(He.setState({token:l,refreshToken:o}),l):null}catch{return null}}async function lb(){return da||(da=ab().finally(()=>{da=null})),da}function Cp(){const t="https://api.ekiplab.com".trim();if(!t)return ca;const e=t.replace(/\/+$/,"");return e===ca||e.endsWith(ca)?e:e==="/api"||e.endsWith("/api")?`${e}/v1`:e.startsWith("http://")||e.startsWith("https://")?`${e}${ca}`:e}const ob=Cp(),L=mp.create({baseURL:ob,headers:{"Content-Type":"application/json"}});L.interceptors.request.use(t=>{const e=He.getState().token;e&&(t.headers.Authorization=`Bearer ${e}`);const r=yi();return r&&(t.headers["X-Tenant"]=r,t.headers["X-Tenant-Domain"]=window.location.hostname),t},t=>Promise.reject(t));L.interceptors.response.use(t=>t,async t=>{var i,s,a,l,o,c;const e=t.config,r=(i=e==null?void 0:e.url)==null?void 0:i.includes("/auth/token/refresh");if(((s=t.response)==null?void 0:s.status)===401&&e&&!e._retry&&!r){e._retry=!0;const d=await lb();if(d)return e.headers=e.headers||{},e.headers.Authorization=`Bearer ${d}`,L.request(e);He.getState().logout()}else((a=t.response)==null?void 0:a.status)===401&&He.getState().logout();return((l=t.response)==null?void 0:l.status)===404&&((c=(o=t.response)==null?void 0:o.data)==null?void 0:c.code)==="TENANT_NOT_FOUND"&&He.getState().logout(),Promise.reject(t)});const Vi={getAll:async t=>{const e=await L.get("/notifications/",{params:t});return Array.isArray(e.data)?e.data:e.data.results||[]},getUnreadCount:async()=>(await L.get("/notifications/unread-count/")).data,markAsRead:async t=>(await L.post(`/notifications/${t}/read/`)).data,markAllAsRead:async()=>(await L.post("/notifications/read-all/")).data,getPreferences:async()=>(await L.get("/notifications/preferences/")).data,updatePreferences:async t=>(await L.put("/notifications/preferences/",t)).data},Dp=(t,e=!0)=>Re({queryKey:["notifications",t],queryFn:()=>Vi.getAll(t),refetchInterval:6e4,enabled:e}),cb=(t=!0)=>Re({queryKey:["notifications","unreadCount"],queryFn:Vi.getUnreadCount,refetchInterval:3e4,enabled:t}),Rp=()=>{const t=ve();return ye({mutationFn:Vi.markAsRead,onSuccess:()=>{t.invalidateQueries({queryKey:["notifications"]})}})},db=()=>{const t=ve();return ye({mutationFn:Vi.markAllAsRead,onSuccess:()=>{t.invalidateQueries({queryKey:["notifications"]})}})},ub=()=>Re({queryKey:["notificationPreferences"],queryFn:Vi.getPreferences}),mb=()=>{const t=ve();return ye({mutationFn:Vi.updatePreferences,onSuccess:()=>{t.invalidateQueries({queryKey:["notificationPreferences"]})}})},Nt={checkSlug:async t=>(await L.get("/tenants/check-slug/",{params:{slug:t}})).data,register:async t=>(await L.post("/tenants/register/",t)).data,createAccessRequest:async t=>(await L.post("/tenants/account-request/",t)).data,getCurrent:async()=>(await L.get("/tenants/current/")).data,updateCurrent:async t=>(await L.patch("/tenants/current/",t,{headers:t instanceof FormData?{"Content-Type":"multipart/form-data"}:void 0})).data,inviteUser:async t=>(await L.post("/tenants/current/invite/",t)).data,getAdminDashboard:async()=>(await L.get("/admin/dashboard/")).data,getAdminTenants:async()=>{const t=await L.get("/admin/tenants/");return Array.isArray(t.data)?t.data:t.data.results||[]},getAdminAccessRequests:async()=>{const t=await L.get("/admin/account-requests/");return Array.isArray(t.data)?t.data:t.data.results||[]},createAdminTenant:async t=>(await L.post("/admin/tenants/create/",t)).data,updateAdminTenant:async(t,e)=>(await L.patch(`/admin/tenants/${t}/`,e)).data,getAdminTenantAccounts:async t=>{const e=await L.get(`/admin/tenants/${t}/accounts/`);return Array.isArray(e.data)?e.data:e.data.results||[]},createAdminTenantAccount:async(t,e)=>(await L.post(`/admin/tenants/${t}/accounts/`,e)).data,updateAdminTenantAccount:async(t,e,r)=>(await L.patch(`/admin/tenants/${t}/accounts/${e}/`,r)).data,resetAdminTenantAccountPassword:async(t,e,r)=>(await L.post(`/admin/tenants/${t}/accounts/${e}/reset-password/`,r)).data,updateAdminAccessRequest:async(t,e)=>(await L.patch(`/admin/account-requests/${t}/`,e)).data,impersonate:async(t,e)=>(await L.post("/admin/impersonate/",{tenant_id:t,user_id:e})).data},Qc="Sunucu bu iÅlemin neden yapılamadıÄını ayrıntılı dönmedi. Form alanlarını, zorunlu seçimleri ve yetkilerinizi kontrol edip tekrar deneyin.",Ru={TENANT_NOT_FOUND:{title:"Oturum süresi doldu",description:"Güvenlik için tekrar giriÅ yapmanız gerekiyor. Açık olan form taslakları otomatik kaydedildi.",action:{label:"GiriÅ Yap",href:"/login"}},TENANT_INACTIVE:{title:"KuruluÅ hesabı devre dıÅı",description:"Bu kuruluÅun eriÅimi yöneticiniz tarafından durdurulmuÅ. Lütfen yetkili kiÅiyle iletiÅime geçin."},TRIAL_EXPIRED:{title:"Deneme süreniz doldu",description:"Yazma iÅlemleri için bir plan seçmeniz gerekiyor. Mevcut verilerinizi görüntülemeye devam edebilirsiniz.",action:{label:"Planları Gör",href:"/settings/billing"}}
1,PERMISSION_DENIED:{title:"Yetkiniz yok",description:"Bu iÅlem için gerekli rolünüz bulunmuyor. Yöneticinizden yetki talep edebilirsiniz."},VALIDATION_ERROR:{title:"Form bilgileri eksik",description:"İÅaretli alanları kontrol edip tekrar deneyin."}},Iu={401:{title:"Oturum doÄrulanamadı",description:"Lütfen tekrar giriÅ yapın.",action:{label:"GiriÅ Yap",href:"/login"}},403:{title:"Bu iÅlem için yetkiniz yok",description:"EriÅim engellendi. Yetkili kullanıcıyla iletiÅime geçin."},404:{title:"Kayıt bulunamadı",description:"AradıÄınız kayıt silinmiÅ veya taÅınmıŠolabilir."},413:{title:"Dosya çok büyük",description:"Daha küçük bir dosya seçin veya birkaç parçaya bölün."},429:{title:"Ãok fazla istek",description:"Lütfen birkaç saniye bekleyip tekrar deneyin."},500:{title:"Sunucu hatası",description:"Bizim tarafımızda bir sorun oluÅtu. Birazdan tekrar deneyin; sorun devam ederse destek ekibine ulaÅın."},502:{title:"Sunucuya ulaÅılamıyor",description:"BaÄlantı Åu an kararsız. Birkaç saniye sonra tekrar deneyin."},503:{title:"Servis geçici olarak kullanılamıyor",description:"Sistem bakımda olabilir. Birkaç dakika sonra tekrar deneyin."},504:{title:"Sunucu yanıt vermedi",description:"İÅlem çok uzun sürdü. Lütfen tekrar deneyin."}},Mi=t=>{if(!t)return null;if(typeof t=="string")return t.trim().startsWith("<!DOCTYPE")||t.trim().startsWith("<html")?null:t.trim();if(Array.isArray(t)){for(const e of t){const r=Mi(e);if(r)return r}return null}if(typeof t=="object")for(const e of Object.values(t)){const r=Mi(e);if(r)return r}return null},hb=t=>{var r;const e=(r=t==null?void 0:t.response)==null?void 0:r.data;return(e==null?void 0:e.code)||null},pb=t=>{var r;const e=t;return!(e!=null&&e.response)&&((e==null?void 0:e.code)==="ERR_NETWORK"||((r=e==null?void 0:e.message)==null?void 0:r.toLowerCase().includes("network"))===!0)},Ip=(t,e,r=Qc)=>{var l,o,c,d,u;if(pb(t))return{title:"İnternet baÄlantısı yok",description:"Sunucuya ulaÅılamıyor. İnternet baÄlantınızı kontrol edip tekrar deneyin."};const i=hb(t);if(i&&Ru[i])return Ru[i];const s=(l=t==null?void 0:t.response)==null?void 0:l.status;if(s&&Iu[s]){const m=Iu[s],h=Mi((o=t==null?void 0:t.response)==null?void 0:o.data);return s===400&&h?{title:e,description:h}:m}const a=Mi((d=(c=t==null?void 0:t.response)==null?void 0:c.data)==null?void 0:d.detail)||Mi((u=t==null?void 0:t.response)==null?void 0:u.data)||Mi(t==null?void 0:t.message);return{title:e,description:a||r}},Tp=(t,e=Qc)=>Ip(t,"Hata",e).description,ce=(t,e,r=Qc)=>{const i=Ip(t,e,r),s=`api-err-${Date.now()}`;let a=null;if(i.action){const{label:l,href:o,onClick:c}=i.action;a=qt.createElement(T,{type:"primary",size:"small",onClick:()=>{tc.destroy(s),c?c():o&&window.location.assign(o)}},l)}tc.error({key:s,message:i.title,description:i.description,placement:"topRight",duration:i.action?0:7,btn:a??void 0})},Ap=(t=!0)=>Re({queryKey:["tenant","current"],queryFn:async()=>{const e=await Nt.getCurrent();return He.setState({currentTenant:e}),e},enabled:t}),fb=()=>{const t=ve();return ye({mutationFn:e=>Nt.updateCurrent(e),onSuccess:e=>{He.setState({currentTenant:e}),t.invalidateQueries({queryKey:["tenant","current"]}),re.success("KuruluÅ bilgileri güncellendi.")},onError:e=>ce(e,"KuruluÅ bilgileri güncellenemedi.")})},gb=()=>ye({mutationFn:Nt.inviteUser,onSuccess:()=>{re.success("Kullanıcı tenant hesabına eklendi.")},onError:t=>ce(t,"Kullanıcı daveti gönderilemedi.")}),yb=()=>ye({mutationFn:t=>Nt.createAccessRequest(t),onSuccess:()=>{re.success("EriÅim talebiniz alındı. Sizinle kısa süre içinde iletiÅime geçeceÄiz.")},onError:t=>ce(t,"EriÅim talebi gönderilemedi.")}),Mp=(t=!0)=>Re({queryKey:["admin","dashboard"],queryFn:Nt.getAdminDashboard,enabled:t}),Np=(t=!0)=>Re({queryKey:["admin","tenants"],queryFn:Nt.getAdminTenants,enabled:t}),Pp=(t=!0)=>Re({queryKey:["admin","access-requests"],queryFn:Nt.getAdminAccessRequests,enabled:t}),xb=()=>{const t=ve();return ye({mutationFn:e=>Nt.createAdminTenant(e),onSuccess:()=>{re.success("Tenant baÅarıyla oluÅturuldu."),t.invalidateQueries({queryKey:["admin","dashboard"]}),t.invalidateQueries({queryKey:["admin","tenants"]})},onError:e=>ce(e,"Tenant oluÅturulamadı.")})},vb=()=>{const t=ve();return ye({mutationFn:({tenantId:e,payload:r})=>Nt.updateAdminTenant(e,r),onSuccess:()=>{re.success("Tenant bilgileri güncellendi."),t.invalidateQueries({queryKey:["admin","dashboard"]}),t.invalidateQueries({queryKey:["admin","tenants"]})},onError:e=>ce(e,"Tenant bilgileri güncellenemedi.")})},bb=(t,e=!0)=>Re({queryKey:["admin","tenant-accounts",t],queryFn:()=>Nt.getAdminTenantAccounts(t),enabled:e&&!!t}),_b=()=>{const t=ve();return ye({mutationFn:({tenantId:e,payload:r})=>Nt.createAdminTenantAccount(e,r),onSuccess:(e,r)=>{re.success("Hesap tenant'a eklendi."),t.invalidateQueries({queryKey:["admin","dashboard"]}),t.invalidateQueries({queryKey:["admin","tenants"]}),t.invalidateQueries({queryKey:["admin","tenant-accounts",r.tenantId]})},onError:e=>ce(e,"Hesap eklenemedi.")})},jb=()=>{const t=ve();return ye({mutationFn:({tenantId:e,accountId:r,payload:i})=>Nt.updateAdminTenantAccount(e,r,i),onSuccess:(e,r)=>{re.success("Hesap güncellendi."),t.invalidateQueries({queryKey:["admin","dashboard"]}),t.invalidateQueries({queryKey:["admin","tenants"]}),t.invalidateQueries({queryKey:["admin","tenant-accounts",r.tenantId]})},onError:e=>ce(e,"Hesap güncellenemedi.")})},kb=()=>ye({mutationFn:({tenantId:t,accountId:e,payload:r})=>Nt.resetAdminTenantAccountPassword(t,e,r),onSuccess:()=>{re.success("Geçici Åifre kaydedildi.")},onError:t=>ce(t,"Åifre sıfırlanamadı.")}),Sb=()=>{const t=ve();return ye({mutationFn:({requestId:e,payload:r})=>Nt.updateAdminAccessRequest(e,r),onSuccess:()=>{re.success("EriÅim talebi güncellendi."),t.invalidateQueries({queryKey:["admin","dashboard"]}),t.invalidateQueries({queryKey:["admin","access-requests"]}),t.invalidateQueries({queryKey:["admin","tenants"]})},onError:e=>ce(e,"EriÅim talebi güncellenemedi.")})},Eb=()=>typeof window>"u"||!window.matchMedia?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dar
1k":"light",al=dp()(up((t,e)=>({mode:"system",setMode:r=>t({mode:r}),resolvedTheme:()=>{const r=e().mode;return r==="system"?Eb():r}}),{name:"mks-theme"})),zp=/^https?:\/\//i,wb=/^(data:|blob:)/i;function Cb(){const t="https://api.ekiplab.com".trim();if(t&&zp.test(t))try{return new URL(t).origin}catch{}return typeof window<"u"?window.location.origin.replace(":3000",":8000"):"http://localhost:8000"}function li(t){if(!t)return"";if(zp.test(t)||wb.test(t))return t;const e=t.startsWith("/")?t:`/${t}`;return`${Cb()}${e}`}const{Header:Db,Sider:Rb,Content:Ib}=nc,{useBreakpoint:Tb}=fp,Ab=()=>{const t=al(s=>s.mode),e=al(s=>s.setMode),r=()=>{e(t==="light"?"dark":t==="dark"?"system":"light")},i=t==="light"?"Açık tema (tıkla: koyu)":t==="dark"?"Koyu tema (tıkla: sistem)":"Sistem teması (tıkla: açık)";return n.jsx(T,{type:"text",shape:"circle",icon:t==="dark"?n.jsx(uv,{}):n.jsx(mv,{}),onClick:r,title:i,"aria-label":i})},Mb=[{label:"Dashboard",key:"/dashboard",icon:n.jsx(gp,{})},{label:"Firmalar",key:"/companies",icon:n.jsx(ic,{})},{label:"Personel",key:"/personnel",icon:n.jsx(Es,{})},{label:"Cihazlar",key:"/devices",icon:n.jsx(Hc,{})},{label:"Teklifler",key:"/proposals",icon:n.jsx(ov,{})},{label:"İŠEmirleri",key:"/services",icon:n.jsx(ws,{})},{label:"Raporlar",key:"/reports",icon:n.jsx(Cs,{})},{label:"Analiz",key:"/analytics",icon:n.jsx(yp,{}),feature:"advanced_analytics"},{label:"CRM",key:"/crm/leads",icon:n.jsx(Gs,{}),feature:"crm"},{label:"Dokümanlar",key:"/documents",icon:n.jsx(tl,{}),feature:"document_management"},{label:"Bildirimler",key:"/notifications",icon:n.jsx(cv,{})},{label:"KuruluÅ Ayarları",key:"/settings/organization",icon:n.jsx(el,{})},{label:"Sistem Ayarları",key:"/settings",icon:n.jsx(el,{})},{label:"İÅlem GeçmiÅi",key:"/audit-log",icon:n.jsx(xp,{})}],Nb=[{label:"Dashboard",key:"/admin/dashboard",icon:n.jsx(gp,{})},{label:"Tenantlar",key:"/admin/tenants",icon:n.jsx(Gs,{})},{label:"EriÅim Talepleri",key:"/admin/account-requests",icon:n.jsx(pp,{})},{label:"Sistem Ayarları",key:"/settings",icon:n.jsx(el,{})}],Pb=({label:t,key:e,icon:r})=>({key:e,icon:r,label:t}),zb=(t,e)=>{const r=(e||t||"Tenant").trim(),i=r.split(/\s+/).filter(Boolean);return i.length>=2?`${i[0][0]||""}${i[1][0]||""}`.toUpperCase():r.slice(0,2).toUpperCase()},Ob=()=>{const[t,e]=k.useState(!1),[r,i]=k.useState(!1),[s,a]=k.useState(!1),l=al(fe=>fe.mode),o=typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)").matches:!1,c=l==="dark"||l==="system"&&o,{token:{colorBgContainer:d,borderRadiusLG:u}}=rc.useToken(),m=c?"#162033":d,h=c?"#0f172a":d,y=Tb().lg===!1,f=Le(),g=Tl(),{user:v,logout:S,currentTenant:R,isSuperuser:z}=He(),P=!(v!=null&&v.isImpersonated)&&(vi()||rn()&&z&&!yi()&&!(R!=null&&R.slug)),U=!!(!P&&(yi()||R!=null&&R.slug)),{data:A}=Ap(U),w=A||R,{data:Y}=Dp(void 0,!P),{data:D}=cb(!P),{mutate:_}=Rp(),M=k.useMemo(()=>li(w==null?void 0:w.logo),[w==null?void 0:w.logo]);k.useEffect(()=>{i(!1)},[g.pathname]),k.useEffect(()=>{a(!1)},[M]);const b=k.useMemo(()=>{if(g.pathname==="/dashboard")return"/dashboard";if(g.pathname.startsWith("/admin/dashboard"))return"/admin/dashboard";if(g.pathname.startsWith("/admin/tenants"))return"/admin/tenants";if(g.pathname.startsWith("/admin/account-requests"))return"/admin/account-requests";if(g.pathname.startsWith("/settings/organization"))return"/settings/organization";const fe=g.pathname.split("/").filter(Boolean);return`/${fe[0]}${fe[1]&&fe[0]==="crm"?`/${fe[1]}`:""}`},[g.pathname]),I=k.useMemo(()=>(P?Nb:Mb).filter(J=>{var B;return!J.feature||((B=w==null?void 0:w.features)==null?void 0:B[J.feature])}).map(Pb),[P,w==null?void 0:w.features]),j=(fe,J)=>{if(!J){f("/notifications");return}const B={device:`/devices/${J}`,equipment:`/equipment/${J}`,service:`/services/${J}`,document:`/documents/${J}`,report:`/reports/${J}`,proposal:`/proposals/${J}`,company:`/companies/${J}`,request:`/requests/${J}`,feedback:`/feedback/${J}`,corrective_action:`/corrective-actions/${J}`,lead:`/crm/leads/${J}`};f(B[fe]||"/notifications")},N=fe=>{f(fe.key),i(!1)},$=()=>{if(S(),v!=null&&v.isImpersonated||P){sl("/login");return}f("/login")},ue=[{key:"profile",label:"Profilim",icon:n.jsx(Ss,{})},{key:"settings",label:P?"Sistem Ayarları":"KuruluÅ Ayarları",icon:n.jsx(el,{}),onClick:()=>f(P?"/settings":"/settings/organization")},{key:"logout",label:"ÃıkıŠYap",icon:n.jsx(hv,{}),onClick:$,danger:!0}],oe=n.jsx(dv,{theme:c?"dark":"light",selectedKeys:[b],mode:"inline",items:I,onClick:N}),K=(fe=!1)=>n.jsx("button",{type:"button",className:`brand-mark${fe?" brand-mark--compact":""}`,onClick:()=>
1f(P?"/admin/dashboard":"/dashboard"),children:n.jsxs("div",{className:"brand-stack",children:[n.jsxs("div",{className:"brand-stack__platform",children:[n.jsx("img",{src:"/logo.png",alt:"EkipLab logosu",className:"brand-mark__logo"}),!fe&&n.jsxs("span",{className:"brand-mark__text brand-mark__text--platform",children:[n.jsxs("strong",{children:[n.jsx("span",{className:"brand-mark__text-accent",children:"ekip"}),n.jsx("span",{className:"brand-mark__text-main",children:"lab"})]}),n.jsx("em",{children:"Platform"})]})]}),!fe&&!P&&w&&n.jsxs("div",{className:"brand-stack__tenant",children:[M&&!s?n.jsx("img",{src:M,alt:w.name,className:"tenant-brand__logo",onError:()=>a(!0)}):n.jsx("div",{className:"tenant-brand__placeholder",children:zb(w.name,w.company_name)}),n.jsxs("div",{className:"tenant-brand__content",children:[n.jsx("strong",{children:w.company_name||w.name}),n.jsxs("span",{children:[w.slug,".ekiplab.com"]}),n.jsx("small",{children:w.plan})]})]}),!fe&&P&&n.jsxs("div",{className:"brand-stack__tenant brand-stack__tenant--admin",children:[n.jsx("div",{className:"tenant-brand__placeholder tenant-brand__placeholder--admin",children:"AD"}),n.jsxs("div",{className:"tenant-brand__content",children:[n.jsx("strong",{children:"EkipLab Admin"}),n.jsx("span",{children:"admin.ekiplab.com"}),n.jsx("small",{children:"Super Admin"})]})]})]})});return n.jsxs(nc,{style:{minHeight:"100vh"},className:"app-shell",children:[!y&&n.jsxs(Rb,{collapsible:!0,collapsed:t,onCollapse:fe=>e(fe),theme:c?"dark":"light",width:292,style:{overflow:"auto",height:"100vh",position:"sticky",top:0,left:0,background:c?"#0f172a":void 0},children:[n.jsx("div",{className:"app-shell__brand",children:K(t)}),oe]}),n.jsxs(nc,{children:[(v==null?void 0:v.isImpersonated)&&w&&n.jsxs("div",{className:"impersonation-banner",children:[n.jsx(hp,{}),n.jsxs("span",{children:[w.name," panelini impersonate modunda görüntülüyorsunuz."]}),n.jsx(T,{type:"link",onClick:$,children:"Admin panele dön"})]}),n.jsxs(Db,{className:"app-shell__header",style:{background:h},children:[n.jsxs("div",{className:"app-shell__header-main",children:[y&&n.jsx(T,{type:"text",icon:r?n.jsx(av,{}):n.jsx(lv,{}),onClick:()=>i(fe=>!fe),"aria-label":"Navigasyon menüsünü aç"}),y&&K(!0)]}),n.jsxs("div",{className:"app-shell__header-actions",children:[!P&&w&&n.jsx(ie,{color:w.is_trial_expired?"red":"blue",children:w.plan}),!P&&n.jsx(Za,{menu:{items:(Y==null?void 0:Y.slice(0,10).map(fe=>({key:fe.id,label:n.jsxs("div",{style:{display:"flex",flexDirection:"column",padding:"4px 0",width:260,whiteSpace:"normal",opacity:fe.is_read?.6:1},children:[n.jsx("div",{style:{fontWeight:fe.is_read?"normal":"bold"},children:fe.title}),n.jsx("div",{style:{fontSize:12,color:"#888"},children:fe.message})]}),onClick:()=>{fe.is_read||_(fe.id),j(fe.related_object_type,fe.related_object_id)}})))||[{key:"empty",label:"Bildirim Yok",disabled:!0}]},placement:"bottomRight",trigger:["click"],children:n.jsx(fi,{count:(D==null?void 0:D.unread_count)||0,size:"small",children:n.jsx(T,{type:"text",shape:"circle",icon:n.jsx(pp,{})})})}),n.jsx(Ab,{}),n.jsx(Za,{menu:{items:ue},placement:"bottomRight",arrow:!0,children:n.jsxs(T,{type:"text",className:"app-shell__user-button",children:[n.jsx(Ss,{}),n.jsx("span",{children:(v==null?void 0:v.fullName)||`${(v==null?void 0:v.firstName)||""} ${(v==null?void 0:v.lastName)||""}`.trim()||(v==null?void 0:v.email)})]})})]})]}),n.jsx(Ib,{className:"app-shell__content",children:n.jsx("div",{className:"app-shell__panel",style:{minHeight:360,background:m,borderRadius:u},children:n.jsx(Ks,{})})})]}),n.jsx(Ja,{title:K(!1),placement:"left",width:300,open:y&&r,onClose:()=>i(!1),styles:{body:{padding:0}},children:oe})]})},Xc={login:async t=>(await L.post("/auth/token/",t)).data,selectTenant:async t=>(await L.post("/tenants/select/",{tenant_id:t})).data,refreshToken:async t=>(await L.post("/auth/token/refresh/",{refresh:t})).data,completeHandoff:async t=>(await L.post("/auth/handoff/complete/",{token:t})).data,getMe:async()=>(await L.get("/auth/users/me/")).data},{Title:Lb,Text:Fb}=ft,Bb=()=>{const t=Tl(),e=Le(),{login:r}=He(),[i,s]=k.useState(null),{token:a,nextPath:l}=k.useMemo(()=>{const o=new URLSearchParams(t.search),c=o.get("next")||"/dashboard";return{token:o.get("token")||"",nextPath:c.startsWith("/")?c:"/dashboard"}},[t.search]);return k.useEffect(()=>{let o=!1;if(!a){s("Oturum aktarım baÄlantısı eksik veya bozuk.");return}return Xc.completeHandoff(a).then(c=>{o||(r(c),re.success("Oturum hazır."),e(l,{replace:!0}))}).catch(c=>{o||s(Tp(c,"Oturum tenant alanına aktarılırken bir sorun oluÅtu."))}),()=>{o=!0}},[r,e,l,a]),n.jsx("div",{className:"login-page",children:n.jsxs(H,{
1className:"login-card login-card--wide",children:[n.jsxs("div",{className:"auth-card__header auth-card__header--centered",children:[n.jsx(Lb,{level:2,children:"Oturum Hazırlanıyor"}),n.jsx(Fb,{type:"secondary",children:"Hedef alana güvenli geçiÅ tamamlanıyor."})]}),i?n.jsxs(n.Fragment,{children:[n.jsx(be,{type:"error",showIcon:!0,message:i,style:{marginBottom:20}}),n.jsx(T,{block:!0,onClick:()=>e("/login",{replace:!0}),children:"GiriÅ ekranına dön"})]}):n.jsx("div",{className:"route-loading",children:n.jsx(mt,{size:"large"})})]})})};function Op(t="/dashboard"){return!t||!t.startsWith("/")?"/dashboard":t}function Ws(t,e,r,i="/dashboard"){const s=t.tenant_slug;if(!s)return!1;const a=Op(i),l=yi();if(rn()||l===s)return e(t),r(a,{replace:!0}),!0;if(t.redirect_token){const c=new URLSearchParams({token:t.redirect_token,next:a});return Ts(s,`/auth/complete?${c.toString()}`),!0}return e(t),Ts(s,a),!0}function Yb(t,e,r,i="/admin/dashboard"){if(!t.is_superuser)return!1;const s=Op(i);if(rn()||vi())return il(),e(t),r(s,{replace:!0}),!0;if(t.redirect_token){const l=new URLSearchParams({token:t.redirect_token,next:s});return sl(`/auth/complete?${l.toString()}`),!0}return e(t),sl(s),!0}const{Title:Tu,Text:jo,Paragraph:Hb}=ft,Ub=()=>{const[t]=x.useForm(),[e,r]=k.useState(!1),[i,s]=k.useState(null),{login:a}=He(),l=Le(),o=Br()||rn(),c=async u=>{r(!0),s(null);try{const m=await Xc.login({email:u.email,password:u.password});if(m.requires_tenant_selection){a(m),re.success("GiriÅ baÅarılı. Devam etmek için kuruluÅ seçin."),l("/tenant-select",{replace:!0});return}if(m.tenant_slug){re.success("GiriÅ baÅarılı."),Ws(m,a,l,"/dashboard");return}if(m.is_superuser||vi()){re.success("Super admin oturumu açıldı."),Yb(m,a,l,"/admin/dashboard");return}re.success("GiriÅ baÅarılı."),l("/",{replace:!0})}catch(m){s(Tp(m,"GiriÅ baÅarısız. Lütfen e-posta ve Åifrenizi kontrol edin."))}finally{r(!1)}},d=[{icon:n.jsx(qn,{}),title:"Mevzuata Uygun Raporlama",description:"İŠEkipmanları YönetmeliÄi ve 5070 sayılı E-İmza Kanununa tam uyum."},{icon:n.jsx(Hc,{}),title:"Periyodik Muayene Otomasyonu",description:"Saha ekibi, ofis koordinasyonu ve PDF rapor üretimi tek platformda."},{icon:n.jsx(pv,{}),title:"E-İmza ve QR DoÄrulama",description:"PyHanko ile imzalı PDF üretimi, QR'lı doÄrulama linkleri."}];return n.jsxs("div",{className:"login-shell",children:[n.jsxs("aside",{className:"login-shell__hero",children:[n.jsx("div",{className:"login-shell__hero-overlay"}),n.jsxs("div",{className:"login-shell__hero-content",children:[n.jsxs("div",{className:"login-shell__brand",children:[n.jsx("img",{src:"/logo.png",alt:"ekiplab logosu",className:"login-shell__brand-logo"}),n.jsxs("div",{children:[n.jsx("div",{className:"login-shell__brand-title",children:"ekiplab"}),n.jsx("div",{className:"login-shell__brand-sub",children:"Periyodik Muayene Platformu"})]})]}),n.jsxs("div",{className:"login-shell__hero-text",children:[n.jsxs(Tu,{level:1,style:{color:"#fff",marginBottom:16,fontSize:40,lineHeight:1.15},children:["Saha denetimini, ofise getiren ",n.jsx("span",{style:{color:"#3DA5DA"},children:"akıllı raporlama"}),"."]}),n.jsx(Hb,{style:{color:"rgba(255,255,255,0.85)",fontSize:16,marginBottom:32},children:"İŠekipmanlarının periyodik kontrolü, e-imzalı PDF raporu, ekip planlaması ve CRM â hepsi tek panelde."}),n.jsx("div",{className:"login-shell__features",children:d.map(u=>n.jsxs("div",{className:"login-shell__feature",children:[n.jsx("div",{className:"login-shell__feature-icon",children:u.icon}),n.jsxs("div",{children:[n.jsx("div",{className:"login-shell__feature-title",children:u.title}),n.jsx("div",{className:"login-shell__feature-desc",children:u.description})]})]},u.title))})]}),n.jsxs("div",{className:"login-shell__hero-footer",children:[n.jsx(Nr,{style:{color:"#3DA5DA"}}),n.jsx("span",{children:"5070 sayılı E-İmza Kanununa uyumlu · TÃRKAK akreditasyonlu süreç"})]})]})]}),n.jsxs("main",{className:"login-shell__form-panel",children:[n.jsxs("div",{className:"login-shell__form-card",children:[n.jsxs("div",{className:"login-shell__form-header",children:[n.jsx(Tu,{level:2,style:{margin:0},children:"HoÅ geldiniz"}),n.jsx(jo,{type:"secondary",children:"Hesabınıza giriÅ yapın"})]}),i&&n.jsx(be,{message:i,type:"error",showIcon:!0,style:{marginBottom:20},closable:!0,onClose:()=>s(null)}),n.jsxs(x,{form:t,name:"login_form",layout:"vertical",onFinish:c,size:"large",requiredMark:!1,children:[n.jsx(x.Item,{name:"email",label:"E-posta",rules:[{required:!0,message:"Lütfen e-posta adresinizi giriniz."},{type:"email",message:"Geçerli bir e-posta adresi giriniz."}],children:n.jsx(G,{prefix:n.jsx(Al,{}),placeholder:"[email protected]",autoComplete:"email"})}),n.jsx(x.Item,{name:"password",label:"Åifre",rules:[{required:!0,message:"Lütfen Åifrenizi giriniz."}],children:n.jsx(G.Password,{prefix:n.jsx(Bi,{}),placeholder:"â¢â¢â¢â¢â¢â¢â¢â¢",autoComplete:"current-password"})}),n.jsx(x.Item,{style:{marginBottom:16,marginTop:8},children:n.jsx(T,{type:"primary",htmlType:"submit",block:!0,loading:e,style:{height:46,fontWeight:600,fontSize:15},children:"GiriÅ Yap"})}),n.jsxs(W,{direction:"vertical",size:6,style:{width:"100%",marginTop:16},children:[n.jsxs("div",{className:"auth-note",children:[n.jsx(Gs,{}),n.jsx("span",{children:"Birden fazla tenant üyeliÄiniz varsa seçim ekranı açılır."})]}),n.jsxs("div",{className:"auth-note",children:[n.jsx(Ds,{}),n.jsx("span",{children:"Tenant oturumu doÄru subdomain üzerinde güvenli Åekilde tamamlanır."})]})]}),o&&n.jsxs("div",{style:{textAlign:"center",marginTop:24},children:[n.jsxs(jo,{type:"secondary",style:{fontSize:13},children:["Henüz hesabınız yok mu?"," "]}),n.jsx(T,{type:"link",onClick:()=>l("/register"),style:{padding:0,fontWeight:600},children:"KuruluÅ hesabı oluÅtur"}),n.jsx("div",{style:{marginTop:4},children:n.jsx(T,{type:"link",onClick:()=>l("/request-access"),style:{padding:0,fontSize:13},children:"veya beta eriÅim talep et"})})]})]})]}),n.jsx("div",{className:"login-shell__form-footer",children:n.jsxs(jo,{type:"secondary",style:{fontSize:12},children:["© ",new Date().getFullYear()," ekiplab · Tüm hakları saklıdır"]})})]})]})},qb={getSummary:async()=>(await L.get("/dashboard/summary/")).data},$b=()=>Re({queryKey:["dashboard","summary"],queryFn:qb.getSummary,refetchInterval:5*60*1e3}),{Title:Au,Paragraph:Kb,Text:Gb}
1=ft,{useBreakpoint:Wb}=fp,Vb=()=>{const{user:t}=He(),e=Le(),{data:r,isLoading:i,error:s}=$b(),l=Wb().md?0:720,o=new Intl.NumberFormat("tr-TR",{style:"currency",currency:"TRY",maximumFractionDigits:0});if(i)return n.jsx("div",{style:{display:"flex",justifyContent:"center",marginTop:100},children:n.jsx(mt,{size:"large"})});if(s||!r)return n.jsx(be,{message:"Veriler yüklenirken bir hata oluÅtu.",type:"error"});const c=[{title:"Hizmet No",dataIndex:"service_number",key:"service_number"},{title:"Firma",dataIndex:"company_name",key:"company_name"},{title:"Kapsam",dataIndex:"scope_name",key:"scope_name"},{title:"Tarih",dataIndex:"planned_date",key:"planned_date",render:f=>Z(f).format("DD/MM/YYYY")},{title:"Durum",dataIndex:"status",key:"status",render:f=>n.jsx(ie,{color:"blue",children:f})}],d=[{title:"Cihaz",dataIndex:"name",key:"name"},{title:"Seri No",dataIndex:"serial_number",key:"serial_number"},{title:"Kalan Gün",dataIndex:"days_left",key:"days_left",render:f=>n.jsx(ie,{color:f===null||f<=0?"error":"warning",children:f===null||f<=0?"Süresi Doldu":`${f} gün`})}],u={UYGUNDUR:"success",EKSIK_GIDERILMEZSE_UYGUN_DEGIL:"error",EKSIK_GIDERILDIKTEN_SONRA_UYGUN:"warning",UYGUN:"success",UYGUNSUZ:"error",SARTLI_UYGUN:"warning"},m={UYGUNDUR:"Uygun",EKSIK_GIDERILMEZSE_UYGUN_DEGIL:"Uygun DeÄil",EKSIK_GIDERILDIKTEN_SONRA_UYGUN:"Åartlı Uygun",UYGUN:"Uygun",UYGUNSUZ:"Uygun DeÄil",SARTLI_UYGUN:"Åartlı Uygun"},h={DRAFT:"Taslak",REVIEW:"İncelemede",APPROVED:"Onaylandı",APPROVED_UNSIGNED:"Onaylandı, İmzasız",SIGNED_ELECTRONIC:"E-İmzalı",SIGNED_WET:"Islak İmzalı",REVISION:"Revizyon Bekliyor",CANCELLED:"İptal"},p={DRAFT:"default",REVIEW:"processing",APPROVED:"success",APPROVED_UNSIGNED:"success",SIGNED_ELECTRONIC:"success",SIGNED_WET:"success",REVISION:"warning",CANCELLED:"error"},y=[{title:"Rapor No",dataIndex:"report_number",key:"report_number"},{title:"Firma",dataIndex:"company_name",key:"company_name"},{title:"Durum",dataIndex:"status",key:"status",render:f=>n.jsx(ie,{color:p[f]||"default",children:h[f]||f})},{title:"Sonuç",dataIndex:"result",key:"result",render:f=>f?n.jsx(ie,{color:u[f]||"default",children:m[f]||f}):"-"},{title:"Tarih",dataIndex:"report_date",key:"report_date",render:f=>f?Z(f).format("DD/MM/YYYY"):"-"}];return n.jsxs("div",{children:[n.jsx(H,{bordered:!1,style:{marginBottom:24,background:"linear-gradient(135deg, rgba(12, 102, 220, 0.08), rgba(255, 183, 35, 0.08))"},children:n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:20,flexWrap:"wrap"},children:[n.jsx("img",{src:"/logo.png",alt:"ekiplab.com logosu",style:{width:92,height:92,objectFit:"contain",filter:"drop-shadow(0 10px 24px rgba(12,102,220,0.18))"}}),n.jsxs(W,{direction:"vertical",size:4,style:{flex:1,minWidth:240},children:[n.jsxs(Au,{level:3,style:{margin:0},children:["HoÅ geldiniz, ",t==null?void 0:t.firstName," ",t==null?void 0:t.lastName]}),n.jsx(Au,{level:5,style:{margin:0,color:"#0c66dc"},children:"ekiplab.com muayene, raporlama ve operasyon merkezi"}),n.jsx(Kb,{style:{marginBottom:0,maxWidth:760},children:"Günlük operasyonunuzu, teklif sürecinizi, saha planlamanızı ve resmi rapor akıÅınızı tek panelden yönetebilirsiniz."}),n.jsx(Gb,{type:"secondary",children:"Bugün için öncelikli kalemler aÅaÄıdaki özet kartlarda ve yaklaÅan muayene tablolarında hazır."}),n.jsxs(W,{size:[8,8],wrap:!0,style:{marginTop:8},children:[n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>e("/services/new"),children:"Yeni İŠEmri"}),n.jsx(T,{icon:n.jsx(fv,{}),onClick:()=>e("/reports/new"),children:"Yeni Rapor"}),n.jsx(T,{icon:n.jsx(ic,{}),onClick:()=>e("/companies/new"),children:"Yeni Firma"}),n.jsx(T,{icon:n.jsx(nl,{}),onClick:()=>e("/calendar"),children:"Takvim"})]})]})]})}),n.jsxs(me,{gutter:[16,16],style:{marginTop:24},children:[n.jsx(C,{xs:24,sm:12,xl:6,children:n.jsx(H,{bordered:!1,children:n.jsx(Ee,{title:"Aktif Firma Sayısı",value:r.active_companies,valueStyle:{color:"#1B5E8C"},prefix:n.jsx(ic,{})})})}),n.jsx(C,{xs:24,sm:12,xl:6,children:n.jsx(H,{bordered:!1,children:n.jsx(Ee,{title:(t==null?void 0:t.role)==="ENGINEER"?"AtandıÄım Bekleyen Hizmetler":"Bekleyen Hizmetler",value:r.pending_reports,valueStyle:{color:"#1B5E8C"},prefix:n.jsx(ws,{})})})}),n.jsx(C,{xs:24,sm:12,xl:6,children:n.jsx(H,{bordered:!1,children:n.jsx(Ee,{title:"Kalibrasyon Uyarıları",value:r.calibration_warnings,valueStyle:{color:r.calibration_warnings>0?"#cf1322":"#3f8600"},prefix:n.jsx(Rs,{})})})}),n.jsx(C,{xs:24,sm:12,xl:6,children:n.jsx(H,{bordered:!1,children:n.jsx(Ee,{title:"Bu Ay Tamamlanan Muayene",value:r.this_month_inspections,valueStyle:{color:"#3f8600"},prefix:n.jsx(gv,{})})})})]}),n.jsxs(me,{gutter:[16,16],style:{marginTop:16},children:[n.jsx(C,{xs:24,sm:12,xl:6,children:n.jsx(H,{bordered:!1,children:n.jsx(Ee,{title:"Bu Ay Gelir",value:r.this_month_revenue,formatter:f=>o.format(Number(f)),valueStyle:{color:"#0f766e"},prefix:n.jsx(Uc,{})})})}),n.jsx(C,{xs:24,sm:12,xl:6,children:n.jsx(H,{bordered:!1,children:n.jsx(Ee,{title:"Teklif Kabul Oranı",value:r.proposal_acceptance_rate,suffix:"%",valueStyle:{color:"#1B5E8C"}})})}),n.jsx(C,{xs:24,sm:12,xl:6,children:n.jsx(H,{bordered:!1,children:n.jsx(Ee,{title:"Aktif İŠEmri",value:r.active_work_orders,valueStyle:{color:"#1B5E8C"},prefix:n.jsx(ws,{})})})}),n.jsx(C,{xs:24,sm:12,xl:6,children:n.jsxs(H,{bordered:!1,children:[n.jsx(Ee,{title:"Memnuniyet Ort.",value:r.customer_satisfaction_avg,suffix:"/5",valueStyle:{color:"#0f766e"},prefix:n.jsx(vp,{})}),n.jsx(oi,{percent:Math.round(r.personnel_utilization||0),size:"small",showInfo:!1,strokeColor:"#1B5E8C"}),n.jsxs("div",{style:{fontSize:12,color:"#666",marginTop:4},children:["Personel doluluk: %",r.personnel_utilization]})]})})]}),n.jsxs(me,{gutter:[16,16],style:{marginTop:24},children:[n.jsxs(C,{xs:24,xl:16,children:[n.jsx(H,{title:"YaklaÅan Muayeneler (Ãnümüzdeki 7 Gün)",style:{marginBottom:24},children:n.jsx(Ie,{columns:c,dataSource:r.upcoming_inspections,rowKey:"id",pagination:!1,size:"small",scroll:l?{x:l}:void 0,onRow:f=>({onClick:()=>e(`/services/${f.id}`),style:{cursor:"pointer"}})})}),n.jsx(H,{title:"Son Ãretilen Raporlar",children:n.jsx(Ie,{columns:y,dataSource:r.recent_reports,rowKey:"id",pagination:!1,size:"small",scroll:l?{x:l}:void 0,onRow:f=>({onClick:()=>e(`/reports/${f.id}`),style:{cursor:"pointer"}})})})]}),n.jsx(C,{xs:24,xl:8,children:n.jsx(H,{title:"YaklaÅan veya GeçmiÅ Kalibrasyonlar",children:n.jsx(Ie,{columns:d,dataSource:r.expiring_calibrations,rowKey:"id",pagination:!1,size:"small",scroll:l?{x:l}:void 0,onRow:f=>({onClick:()=>e(`/devices/${f.id}`),style:{cursor:"pointer"}})})})})]})]})},$n={getCompanies:async()=>{const t=[];let e=1,r=!0;for(;r;){const i=await L.get("/companies/",{params:{page:e}});t.push(...i.data.results),r=!!i.data.next,e+=1}return t},getCompany:async t=>(await L.get(`/companies/${t}/`)).data,createCompany:async t=>(await L.post("/companies/",t)).data,updateCompany:async(t,e)=>(await L.put(`/companies/${t}/`,e)).data,deleteCompany:async t=>{await L.delete(`/companies/${t}/`)},getBranches:async t=>(await L.get(`/companies/${t}/branches/`)).data,getCompanyDetail:async t=>(await L.get(`/companies/${t}/`)).data,createBranch:async(t,e)=>(await L.post(`/companies/${t}/branches/`,e)).data,getCompanyScopes:async t=>(await L.get(`/companies/${t}/scopes/`)).data,createCompanyScope:async(t,e)=>(await L.post(`/companies/${t}/scopes/`,e)).data,updateCompanyScope:async(t,e,r)=>(await L.patch(`/companies/${t}/scopes/${e}/`,r)).data,deleteCompanyScope:async(t,e)=>{await L.delete(`/companies/${t}/scopes/${e}/`)}},tr=()=>Re({queryKey:["companies"],queryFn:$n.getCompanies}),Lp=t=>Re({queryKey:["companies",t],queryFn:()=>$n.getCompany(t),enabled:!!t}),Qb=()=>{const t=ve();return ye({mutationFn:e=>$n.createCompany(e),onSuccess:()=>{t.invalidateQueries({queryKey:["companies"]}),re.success("Firma baÅarıyla oluÅturuldu.")},onError:e=>{ce(e,"Firma oluÅturulamadı.")}})},Xb=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>$n.updateCompany(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["companies"]}),t.invalidateQueries({queryKey:["companies",r.id]}),re.success("Firma baÅarıyla güncellendi.")},onError:e=>{ce(e,"Firma güncellenemedi.")}})},Zb=()=>{const t=ve();return ye({mutationFn:e=>$n.deleteCompany(e),onSuccess:()=>{t.invalidateQueries({queryKey:["companies"]}),re.success("Firma baÅarıyla silindi.")},onError:e=>{ce(e,"Firma silinemedi.")}})},{Search:Jb}=G,e_=()=>{const{data:t,isLoading:e}=tr(),r=Zb(),i=Le(),[s,a]=k.useState(""),l=d=>{r.mutate(d)},o=t==null?void 0:t.filter(d=>d.name.toLowerCase().includes(s.toLowerCase())||d.tax_number.includes(s)||(d.sector||"").toLowerCase().includes(s.toLowerCase())),c=[{title:"Firma Adı",dataIndex:"name",key:"name",width:200,ellipsis:!0,sorter:(d,u)=>d.name.localeCompare(u.name)}
1,{title:"Vergi No",dataIndex:"tax_number",key:"tax_number",width:120},{title:"Åehir",dataIndex:"city",key:"city",width:100},{title:"Sektör",dataIndex:"sector",key:"sector",width:100,ellipsis:!0,render:d=>d||"-"},{title:"Yetkili KiÅi",dataIndex:"authorized_person",key:"authorized_person",width:130,ellipsis:!0,render:d=>d||"-"},{title:"Durum",dataIndex:"is_active",key:"is_active",width:80,render:d=>n.jsx(ie,{color:d?"success":"error",children:d?"Aktif":"Pasif"})},{title:"İÅlemler",key:"action",width:130,render:(d,u)=>n.jsxs(W,{size:"middle",children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>i(`/companies/${u.id}`)}),n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>i(`/companies/${u.id}/edit`)}),n.jsx(Ot,{title:"Firmayı Sil",description:"Bu firmayı silmek istediÄinizden emin misiniz?",onConfirm:()=>l(u.id),okText:"Evet",cancelText:"Hayır",children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})})]})}];return n.jsxs(H,{title:"Firmalar",extra:n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>i("/companies/new"),style:{background:"#1B5E8C"},children:"Yeni Firma Ekle"}),children:[n.jsx("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between"},children:n.jsx(Jb,{placeholder:"Firma adı veya vergi no ile ara",allowClear:!0,onSearch:d=>a(d),onChange:d=>a(d.target.value),style:{width:300}})}),n.jsx(Ie,{columns:c,dataSource:o,rowKey:"id",loading:e||r.isPending,scroll:{x:900},pagination:{pageSize:10}})]})},ur={getSettings:async()=>(await L.get("/settings/")).data,updateSetting:async(t,e)=>(await L.patch(`/settings/${t}/`,{value:e})).data,bulkUpdate:async t=>{const e=Array.isArray(t)?{settings:t}:t;return(await L.post("/settings/bulk-update/",e)).data},uploadAsset:async(t,e)=>{const r=new FormData;return r.append("key",t),r.append("file",e),(await L.post("/settings/upload-asset/",r,{headers:{"Content-Type":"multipart/form-data"}})).data},testEmail:async t=>(await L.post("/settings/test-email/",{email:t})).data,getCustomFields:async t=>(await L.get("/custom-fields/",{params:t?{target_model:t}:void 0})).data.results,createCustomField:async t=>(await L.post("/custom-fields/",t)).data,updateCustomField:async(t,e)=>(await L.patch(`/custom-fields/${t}/`,e)).data,deleteCustomField:async t=>{await L.delete(`/custom-fields/${t}/`)},getRolePermissions:async()=>(await L.get("/role-permissions/")).data.results,updateRolePermission:async(t,e)=>(await L.patch(`/role-permissions/${t}/`,{role_permissions:e})).data},Qi=t=>{t.invalidateQueries({queryKey:["settings"]}),t.invalidateQueries({queryKey:["custom-fields"]}),t.invalidateQueries({queryKey:["role-permissions"]}),t.invalidateQueries({queryKey:["companies"]})},t_=()=>Re({queryKey:["settings"],queryFn:ur.getSettings}),n_=()=>{const t=ve();return ye({mutationFn:e=>ur.bulkUpdate(e),onSuccess:()=>{Qi(t),re.success("Ayarlar kaydedildi.")},onError:e=>{ce(e,"Ayarlar kaydedilemedi.")}})},r_=()=>{const t=ve();return ye({mutationFn:({key:e,file:r})=>ur.uploadAsset(e,r),onSuccess:()=>{Qi(t),re.success("Dosya yüklendi.")},onError:e=>{ce(e,"Dosya yüklenemedi.")}})},i_=()=>ye({mutationFn:t=>ur.testEmail(t),onSuccess:t=>{re.success(t.detail)},onError:t=>{ce(t,"Test e-postası gönderilemedi.")}}),Fp=t=>Re({queryKey:["custom-fields",t],queryFn:()=>ur.getCustomFields(t)}),s_=()=>{const t=ve();return ye({mutationFn:e=>ur.createCustomField(e),onSuccess:()=>{Qi(t),re.success("Ãzel alan oluÅturuldu.")},onError:e=>{ce(e,"Ãzel alan oluÅturulamadı.")}})},a_=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>ur.updateCustomField(e,r),onSuccess:()=>{Qi(t),re.success("Ãzel alan güncellendi.")},onError:e=>{ce(e,"Ãzel alan güncellenemedi.")}})},l_=()=>{const t=ve();return ye({mutationFn:e=>ur.deleteCustomField(e),onSuccess:()=>{Qi(t),re.success("Ãzel alan silindi.")},onError:e=>{ce(e,"Ãzel alan silinemedi.")}})},o_=()=>Re({queryKey:["role-permissions"],queryFn:ur.getRolePermissions}),c_=()=>{const t=ve();return ye({mutationFn:({role:e,rolePermissions:r})=>ur.updateRolePermission(e,r),onSuccess:()=>{Qi(t),re.success("Rol yetkileri güncellendi.")},onError:e=>{ce(e,"Rol yetkileri güncellenemedi.")}})},{TextArea:ua}=G,d_=["Ãretim","Enerji","Makine","Metal","Kimya","İnÅaat","Lojistik","Gıda","Tekstil","Otomotiv","SaÄlık","Kamu"],u_=()=>({name:"",sgk_number:"",address:"",city:"",district:"",contact_person:"",contact_phone:"",contact_email:null,is_active:!0}),m_=()=>({full_name:"",title:"",phone:"",email:"",is_primary:!0}),h_=t=>{var e;return(e=t==null?void 0:t.authorized_contacts)!=null&&e.length?t.authorized_contacts.map((r,i)=>({full_name:r.full_name||"",title:r.title||"",phone:r.phone||"",email:r.email||"",is_primary:r.is_primary??i===0})):t!=null&&t.authorized_person?[{full_name:t.authorized_person,title:"",phone:t.authorized_person_phone||"",email:t.email||"",is_primary:!0}]:[]},p_=(t=[])=>{const e=t.filter(i=>(i==null?void 0:i.full_name)||(i==null?void 0:i.title)||(i==null?void 0:i.phone)||(i==null?void 0:i.email)).map(i=>{var s,a,l,o;return{full_name:((s=i.full_name)==null?void 0:s.trim())||"",title:((a=i.title)==null?void 0:a.trim())||"",phone:((l=i.phone)==null?void 0:l.trim())||"",email:((o=i.email)==null?void 0:o.trim())||null,is_primary:!!i.is_primary}});if(!e.length)return[];const r=e.findIndex(i=>i.is_primary);return e.map((i,s)=>({...i,is_primary:r>=0?s===r:s===0}))},Mu=()=>{const{id:t}=jt(),e=Le(),[r]=x.useForm(),i=!!t&&t!=="new",{data:s,isLoading:a}=Lp(i?t:""),{data:l=[]}=Fp("COMPANY"),o=Qb(),c=Xb();k.useEffect(()=>{var p;if(s&&i){const y={...s.custom_fields||{}};l.forEach(f=>{const g=y[f.field_name];f.field_type==="DATE"&&g&&(y[f.field_name]=Z(g))}),r.setFieldsValue({...s,branches:(p=s.branches)!=null&&p.length?s.branches:[],authorized_contacts:h_(s),contract_start_date:s.contract_start_date?Z(s.contract_start_date):null,contract_end_date:s.contract_end_date?Z(s.contract_end_date):null,custom_fields:y})}},[s,l,r,i]);const d=p=>{const y={...p.custom_fields||{}};return l.forEach(f=>{const g=y[f.field_name];f.field_type==="DATE"&&g&&(y[f.field_name]=Z.isDayjs(g)?g.format("YYYY-MM-DD"):g)}),y},u=p=>{const y=r.getFieldValue("authorized_contacts")||[];r.setFieldValue("authorized_contacts",y.map((f,g)=>({...f,is_primary:g===p})))},m=p=>{var v,S;const y=p_(p.authorized_contacts),f=y[0],g={...p,sector:((v=p.sector)==null?void 0:v.trim())||null,phone:((S=p.phone)==null?void 0:S.trim())||null,authorized_person:(f==null?void 0:f.full_name)||"",authorized_person_phone:(f==null?void 0:f.phone)||null,authorized_contacts:y,contract_start_date:p.contract_start_date?p.contract_start_date.format("YYYY-MM-DD"):null,contract_end_date:p.contract_end_date?p.contract_end_date.format("YYYY-MM-DD"):null,branches:(p.branches||[]).filter(R=>(R==null?void 0:R.name)||(R==null?void 0:R.address)||(R==null?void 0:R.city)||(R==null?void 0:R.district)).map(R=>{var z;return{...R,contact_phone:((z=R.contact_phone)==null?void 0:z.trim())||"",contact_email:R.contact_email||null}}),custom_fields:d(p)};if(i){c.mutate({id:t,data:g},{onSuccess:()=>e("/companies")});return}o.mutate(g,{onSuccess:()=>e("/companies")})},h=p=>{switch(p.field_type){case"NUMBER":return n.jsx(Ze,{style:{width:"100%"}});case"DATE":return n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"});case"BOOLEAN":return n.jsx(Tt,{});case"SELECT":return n.jsx(pe,{options:(p.options||[]).map(y=>({label:y,value:y})),allowClear:!0});case"TEXTAREA":return n.jsx(ua,{rows:3,placeholder:p.field_label});default:return n.jsx(G,{placeholder:p.field_label})}};return n.jsx(H,{title:i?"Firma Düzenle":"Yeni Firma Ekle",loading:a,children:n.jsxs(x,{form:r,layout:"vertical",onFinish:m,initialValues:{is_active:!0,branches:[],authorized_contacts:[]},children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Firma kaydı ile birlikte Åube, sektör ve birden fazla yetkili kiÅi açabilirsiniz.",description:"Merkez, fabrika, depo veya saha ofislerini aynı ekranda tanımlayarak teklif ve iÅ emri akıÅında doÄrudan kullanabilirsiniz. Åube ekleme isteÄe baÄlıdır."}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"name",label:"Firma Adı",rules:[{required:!0,message:"Firma adı zorunludur."}],children:n.jsx(G,{placeholder:"Firma adını giriniz"})})}),n.jsx(C,{xs:24,sm:12,md:6,children:n.jsx(x.Item,{name:"tax_number",label:"Verg
1i No / TCKN",rules:[{validator:(p,y)=>y?/^\d{10,11}$/.test(String(y))?Promise.resolve():Promise.reject(new Error("Vergi numarası 10 veya 11 haneli olmalıdır.")):Promise.resolve()}],children:n.jsx(G,{placeholder:"İsteÄe baÄlı",maxLength:11})})}),n.jsx(C,{xs:24,sm:12,md:6,children:n.jsx(x.Item,{name:"tax_office",label:"Vergi Dairesi",children:n.jsx(G,{placeholder:"İsteÄe baÄlı"})})})]}),n.jsx(on,{orientation:"left",children:"Sektör Ekleme"}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:"sector",label:"Sektör",children:n.jsx(yv,{options:d_.map(p=>({value:p})),placeholder:"ÃrneÄin Enerji, Gıda, Otomotiv",filterOption:(p,y)=>((y==null?void 0:y.value)||"").toUpperCase().includes(p.toUpperCase())})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:"phone",label:"Firma Telefonu / Santral",children:n.jsx(G,{placeholder:"0XXX XXX XX XX (isteÄe baÄlı)"})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:"email",label:"Firma E-Postası",rules:[{type:"email",message:"Geçerli bir e-posta giriniz."}],children:n.jsx(G,{placeholder:"[email protected]"})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:"website",label:"Web Sitesi",children:n.jsx(G,{placeholder:"https://..."})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:"mersis_number",label:"MERSİS No",children:n.jsx(G,{placeholder:"Varsa giriniz"})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:"sgk_number",label:"SGK Sicil No",children:n.jsx(G,{placeholder:"İsteÄe baÄlı"})})})]}),n.jsx(on,{orientation:"left",children:"Yetkili KiÅiler"}),n.jsx(be,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"Birden fazla yetkili ekleyebilirsiniz.",description:"Birincil yetkili kiÅi teklif, iÅ emri ve rapor akıÅında varsayılan iletiÅim kiÅisi olarak kullanılır."}),n.jsx(x.List,{name:"authorized_contacts",children:(p,{add:y,remove:f},{errors:g})=>n.jsxs(n.Fragment,{children:[p.map((v,S)=>n.jsxs(H,{size:"small",title:`Yetkili ${S+1}`,style:{marginBottom:12},extra:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{}),onClick:()=>f(v.name)}),children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:[v.name,"full_name"],label:"Yetkili KiÅi Ad Soyad",rules:[{required:!0,message:"Ad soyad zorunludur."}],children:n.jsx(G,{placeholder:"Ad Soyad"})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:[v.name,"title"],label:"Yetkili KiÅi Görevi",children:n.jsx(G,{placeholder:"İÅletme Müdürü, Bakım Åefi... (isteÄe baÄlı)"})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:[v.name,"phone"],label:"Yetkili Telefonu",children:n.jsx(G,{placeholder:"05XXXXXXXXX (isteÄe baÄlı)"})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,md:18,children:n.jsx(x.Item,{name:[v.name,"email"],label:"Yetkili E-Posta",rules:[{type:"email",message:"Geçerli bir e-posta giriniz."}],children:n.jsx(G,{placeholder:"[email protected]"})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(x.Item,{name:[v.name,"is_primary"],label:"Birincil Yetkili",valuePropName:"checked",children:n.jsx(Tt,{onChange:()=>u(v.name)})})})]})]},v.key)),n.jsx(x.ErrorList,{errors:g}),n.jsx(T,{type:"dashed",block:!0,icon:n.jsx(rt,{}),onClick:()=>y({...m_(),is_primary:!1}),children:"Yetkili KiÅi Ekle"})]})}),n.jsx(on,{children:"Firma Bilgileri"}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:"city",label:"Åehir",children:n.jsx(G,{placeholder:"Åehir (raporda basılır)"})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:"district",label:"İlçe",children:n.jsx(G,{placeholder:"İlçe (raporda basılır)"})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:"contract_start_date",label:"SözleÅme BaÅlangıç",children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,sm:12,children:n.jsx(x.Item,{name:"contract_end_date",label:"SözleÅme BitiÅ",children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})})}),n.jsx(C,{xs:24,sm:12,children:n.jsx(x.Item,{name:"is_active",label:"Aktif Firma",valuePropName:"checked",children:n.jsx(Tt,{})})})]}),n.jsx(x.Item,{name:"address",label:"Açık Adres",children:n.jsx(ua,{rows:3,placeholder:"Firma merkez adresi (raporda basılır)"})}),n.jsx(x.Item,{name:"notes",label:"Notlar",children:n.jsx(ua,{rows:2,placeholder:"Ek bilgiler..."})}),n.jsx(on,{children:"Åubeler"}),n.jsx(x.List,{name:"branches",children:(p,{add:y,remove:f})=>n.jsxs(n.Fragment,{children:[p.map((g,v)=>n.jsxs(H,{size:"small",title:`Åube ${v+1}`,style:{marginBottom:12},extra:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{}),onClick:()=>f(g.name)}),children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,md:10,children:n.jsx(x.Item,{name:[g.name,"name"],label:"Åube Adı",rules:[],children:n.jsx(G,{placeholder:"Merkez, Fabrika, Depo..."})})}),n.jsx(C,{xs:24,md:14,children:n.jsx(x.Item,{name:[g.name,"sgk_number"],label:"Åube SGK Sicil No",tooltip:"Bu Åube için ayrı bir SGK sicil no varsa girin. BoÅ bırakılırsa firma SGK sicil no'su kullanılır.",rules:[],children:n.jsx(G,{placeholder:"Åubeye ait SGK sicil no (opsiyonel)"})})}),n.jsx(C,{xs:12,md:12,children:n.jsx(x.Item,{name:[g.name,"city"],label:"Åehir",rules:[],children:n.jsx(G,{placeholder:"Åehir"})})}),n.jsx(C,{xs:12,md:12,children:n.jsx(x.Item,{name:[g.name,"district"],label:"İlçe",rules:[],children:n.jsx(G,{placeholder:"İlçe"})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:[g.name,"contact_person"],label:"Åube Yetkilisi",rules:[],children:n.jsx(G,{placeholder:"Ad Soyad"})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:[g.name,"contact_phone"],label:"Yetkili Telefonu",rules:[],children:n.jsx(G,{placeholder:"05XXXXXXXXX"})})}),n.jsx(C,{xs:24,sm:12,md:8,children:n.jsx(x.Item,{name:[g.name,"contact_email"],label:"Yetkili E-Posta",rules:[{type:"email",message:"Geçerli bir e-posta giriniz."}],children:n.jsx(G,{placeholder:"[email protected]"})})})]}),n.jsx(x.Item,{name:[g.name,"address"],label:"Åube Adresi",rules:[],children:n.jsx(ua,{rows:2,placeholder:"Åube açık adresi"})}),n.jsx(x.Item,{name:[g.name,"is_active"],label:"Aktif Åube",valuePropName:"checked",children:n.jsx(Tt,{})})]},g.key)),n.jsx(T,{type:"dashed",block:!0,icon:n.jsx(rt,{}),onClick:()=>y(u_()),children:"Åube Ekle"})]})}),l.length>0&&n.jsxs(n.Fragment,{children:[n.jsx(on,{children:"Ãzel Alanlar"}),n.jsx(me,{gutter:16,children:l.map(p=>n.jsx(C,{xs:24,md:p.field_type==="TEXTAREA"?24:12,children:n.jsx(x.Item,{name:["custom_fields",p.field_name],label:p.field_label,rules:p.is_required?[{required:!0,message:`${p.field_label} zorunludur.`}]:void 0,valuePropName:p.field_type==="BOOLEAN"?"checked":"value",children:h(p)})},p.id))})]}),n.jsx(x.Item,{children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",loading:o.isPending||c.isPending,style:{background:"#1B5E8C"},children:"Kaydet"}),n.jsx(T,{onClick:()=>e("/companies"),children:"İptal"})]})})]})})},f_={getScopes:async t=>(await L.get("/scopes/",{params:t})).data.results||[]},qr=()=>Re({queryKey:["scopes"],queryFn:f_.getScopes}),cr=t=>
1{switch((t||"").toLowerCase()){case"elektrik":return{value:"elektrik",label:"Elektrik",color:"blue",description:"Elektrik kapsamındaki hizmetleri ve cihazları ifade eder."};case"mekanik":return{value:"mekanik",label:"Mekanik",color:"geekblue",description:"Mekanik kapsamındaki hizmetleri ve cihazları ifade eder."};case"ortak":return{value:"ortak",label:"Ortak",color:"purple",description:"Her iki kapsamda da kullanılabilen ortak kayıt."};default:return{value:t||"diger",label:t||"DiÄer",color:"default",description:"Kapsam tipini tanımlayan genel kayıt."}}},vn=t=>!t||t.trim()==="-"?"-":/rapor/i.test(t)?t:`${t} Raporu`,vr=t=>{if(t==="elektrik"||t==="mekanik"||t==="ortak")return cr(t);switch(t){case"ELEKTRIK":return{value:"ELEKTRIK",label:"Elektrik",color:"blue",description:"Yapılan kontrolün elektrik disiplininde olduÄunu belirtir."};case"MEKANIK":return{value:"MEKANIK",label:"Mekanik",color:"geekblue",description:"Yapılan kontrolün mekanik disiplininde olduÄunu belirtir."};case"BASINC":return{value:"BASINC",label:"Basınç",color:"volcano",description:"Basınçlı ekipman kontrolleri için kullanılan disiplin alt kümesidir."};case"KALDIRMA":return{value:"KALDIRMA",label:"Kaldırma",color:"purple",description:"Kaldırma ve iletme ekipmanları için kullanılan disiplin alt kümesidir."};case"TESISAT":return{value:"TESISAT",label:"Tesisat",color:"cyan",description:"Yardımcı tesisat kontrolleri için kullanılan disiplin alt kümesidir."};default:return{value:t||"DIGER",label:t||"DiÄer",color:"default",description:"Kontrol disiplinini tanımlayan genel kapsam kaydı."}}},g_=()=>{var Y,D;const{id:t}=jt(),e=Le(),{data:r,isLoading:i,refetch:s}=Lp(t||""),{data:a=[]}=qr(),[l,o]=k.useState(!1),[c,d]=k.useState(!1),[u,m]=k.useState(null),[h]=x.useForm(),p=k.useMemo(()=>{const _={elektrik:a.filter(M=>M.kapsam_tipi==="elektrik"),mekanik:a.filter(M=>M.kapsam_tipi==="mekanik")};return[{label:"Elektrik",options:_.elektrik.map(M=>({value:M.id,label:`${M.code} - ${M.name}`}))},{label:"Mekanik",options:_.mekanik.map(M=>({value:M.id,label:`${M.code} - ${M.name}`}))}].filter(M=>M.options.length>0)},[a]);if(i)return n.jsx("div",{style:{textAlign:"center",padding:"50px"},children:n.jsx(mt,{size:"large"})});if(!r)return n.jsx("div",{children:"Firma bulunamadı."});const y=r.company_scopes||[],f=(Y=r.authorized_contacts)!=null&&Y.length?r.authorized_contacts:[{full_name:r.authorized_person,title:"",phone:r.authorized_person_phone,email:r.email,is_primary:!0}],g=_=>{if(!_)return!1;const M=Z(_);return M.isAfter(Z().subtract(1,"day"))&&M.diff(Z(),"day")<=30},v=_=>{m(_||null),h.setFieldsValue({scope:_==null?void 0:_.scope,yetki_baslangic_tarihi:_!=null&&_.yetki_baslangic_tarihi?Z(_.yetki_baslangic_tarihi):null,yetki_bitis_tarihi:_!=null&&_.yetki_bitis_tarihi?Z(_.yetki_bitis_tarihi):null,is_active:(_==null?void 0:_.is_active)??!0}),o(!0)},S=()=>{o(!1),m(null),h.resetFields()},R=async()=>{if(!t)return;const _=await h.validateFields(),M={..._,yetki_baslangic_tarihi:_.yetki_baslangic_tarihi?_.yetki_baslangic_tarihi.format("YYYY-MM-DD"):null,yetki_bitis_tarihi:_.yetki_bitis_tarihi?_.yetki_bitis_tarihi.format("YYYY-MM-DD"):null};d(!0);try{u?(await $n.updateCompanyScope(t,u.id,M),re.success("Firma kapsam yetkisi güncellendi.")):(await $n.createCompanyScope(t,M),re.success("Firma kapsam yetkisi eklendi.")),S(),await s()}catch(b){ce(b,"Firma kapsam yetkisi kaydedilemedi.")}finally{d(!1)}},z=async _=>{if(t)try{await $n.deleteCompanyScope(t,_),re.success("Firma kapsam yetkisi kaldırıldı."),await s()}catch(M){ce(M,"Firma kapsam yetkisi silinemedi.")}},P=[{title:"Åube Adı",dataIndex:"name",key:"name"},{title:"SGK Sicil No",dataIndex:"sgk_number",key:"sgk_number",render:_=>_||"-"},{title:"Åehir",dataIndex:"city",key:"city",render:_=>_||"-"},{title:"İlçe",dataIndex:"district",key:"district",render:_=>_||"-"},{title:"Yetkili",dataIndex:"contact_person",key:"contact_person",render:_=>_||"-"},{title:"Telefon",dataIndex:"contact_phone",key:"contact_phone",render:_=>_||"-"},{title:"Durum",dataIndex:"is_active",key:"is_active",render:_=>
1n.jsx(ie,{color:_?"success":"error",children:_?"Aktif":"Pasif"})}],U=[{title:"Ad Soyad",dataIndex:"full_name",key:"full_name",render:_=>_||"-"},{title:"Görev",dataIndex:"title",key:"title",render:_=>_||"-"},{title:"Telefon",dataIndex:"phone",key:"phone",render:_=>_||"-"},{title:"E-Posta",dataIndex:"email",key:"email",render:_=>_||"-"},{title:"Rol",dataIndex:"is_primary",key:"is_primary",render:_=>n.jsx(ie,{color:_?"processing":"default",children:_?"Birincil Yetkili":"Ek Yetkili"})}],A=[{title:"Kapsam",key:"scope_name",render:(_,M)=>n.jsxs("div",{children:[n.jsx("div",{children:M.scope_name||"-"}),n.jsx("div",{style:{color:"#8c8c8c"},children:M.scope_code||"-"})]})},{title:"Grup",key:"kapsam_tipi",render:(_,M)=>{const b=cr(M.kapsam_tipi);return n.jsx(ie,{color:b.color,children:M.kapsam_tipi_display||b.label})}},{title:"BaÅlangıç",dataIndex:"yetki_baslangic_tarihi",key:"yetki_baslangic_tarihi",render:_=>_?Z(_).format("DD/MM/YYYY"):"-"},{title:"BitiÅ",dataIndex:"yetki_bitis_tarihi",key:"yetki_bitis_tarihi",render:_=>_?n.jsx(ie,{color:g(_)?"warning":"default",children:Z(_).format("DD/MM/YYYY")}):"-"},{title:"Durum",key:"durum",render:(_,M)=>M.is_active?M.yetki_bitis_tarihi&&Z(M.yetki_bitis_tarihi).isBefore(Z(),"day")?n.jsx(ie,{color:"error",children:"Süresi Doldu"}):g(M.yetki_bitis_tarihi)?n.jsx(ie,{color:"warning",children:"Yakında Doluyor"}):n.jsx(ie,{color:"success",children:"Aktif"}):n.jsx(ie,{color:"default",children:"Pasif"})},{title:"İÅlemler",key:"actions",render:(_,M)=>n.jsxs(n.Fragment,{children:[n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>v(M)}),n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{}),onClick:()=>Ve.confirm({title:"Kapsam yetkisi kaldırılsın mı?",content:`${M.scope_name} firmadan kaldırılacak.`,okText:"Kaldır",okButtonProps:{danger:!0},cancelText:"İptal",onOk:()=>z(M.id)})})]})}],w=[{key:"general",label:"Genel Bilgiler",children:n.jsxs("div",{style:{display:"grid",gap:16},children:[n.jsxs(F,{bordered:!0,column:{xxl:3,xl:3,lg:3,md:2,sm:1,xs:1},children:[n.jsx(F.Item,{label:"Durum",children:n.jsx(ie,{color:r.is_active?"success":"error",children:r.is_active?"Aktif":"Pasif"})}),n.jsx(F.Item,{label:"Vergi No",children:r.tax_number}),n.jsx(F.Item,{label:"Vergi Dairesi",children:r.tax_office||"-"}),n.jsx(F.Item,{label:"Sektör",children:r.sector||"-"}),n.jsx(F.Item,{label:"SGK Sicil No",children:r.sgk_sicil_no||r.sgk_number||"-"}),n.jsx(F.Item,{label:"MERSİS No",children:r.mersis_number||"-"}),n.jsx(F.Item,{label:"Firma Telefonu / Santral",children:r.phone||"-"}),n.jsx(F.Item,{label:"E-Posta",children:r.email||"-"}),n.jsx(F.Item,{label:"Web Sitesi",children:r.website||"-"}),n.jsx(F.Item,{label:"Åehir",children:r.city||"-"}),n.jsx(F.Item,{label:"İlçe",children:r.district||"-"}),n.jsx(F.Item,{label:"Adres",span:3,children:r.address||"-"}),n.jsx(F.Item,{label:"SözleÅme BaÅlangıç",children:r.contract_start_date?Z(r.contract_start_date).format("DD/MM/YYYY"):"-"}),n.jsx(F.Item,{label:"SözleÅme BitiÅ",children:r.contract_end_date?Z(r.contract_end_date).format("DD/MM/YYYY"):"-"}),n.jsx(F.Item,{label:"Notlar",span:3,children:r.notes||"-"})]}),n.jsx(H,{title:`Yetkililer (${f.length})`,size:"small",children:n.jsx(Ie,{dataSource:f,columns:U,rowKey:_=>`${_.full_name}-${_.phone||"na"}`,size:"small",pagination:!1})})]})},{key:"branches",label:`Åubeler (${((D=r.branches)==null?void 0:D.length)??0})`,children:n.jsx(Ie,{dataSource:r.branches||[],columns:P,rowKey:"id",size:"small",pagination:!1})},{key:"scopes",label:`Kapsam Yetkileri (${y.length})`,children:n.jsxs("div",{style:{display:"grid",gap:16},children:[n.jsx(be,{type:"info",showIcon:!0,message:"Firma kapsam yetkileri rapor ve iÅ emri akıÅında kullanılabilir.",description:"Yetki bitiÅ tarihi yaklaÅan kayıtlar sarı olarak iÅaretlenir. Elektrik ve mekanik kapsamlar aynı panelde gruplanır."}),n.jsx("div",{style:{display:"flex",justifyContent:"flex-end"},children:n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>v(),style:{background:"#1B5E8C"},children:"Kapsam Yetkisi Ekle"})}),n.jsx(Ie,{dataSource:y,columns:A,rowKey:"id",size:"small",pagination:!1,locale:{emptyText:"Henüz firma kapsam yetkisi tanımlanmadı."}})]})}];return n.jsxs("div",{children:[n.jsxs("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between"},children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/companies"),children:"Geri Dön"}),n.jsx(T,{type:"primary",icon:n.jsx(at,{}),onClick:()=>e(`/companies/${t}/edit`),style:{background:"#1B5E8C"},children:"Düzenle"})]}),n.jsx(H,{title:r.name,children:n.jsx(Jn,{defaultActiveKey:"general",items:w})}),n.jsx(Ve,{title:u?"Firma Kapsam Yetkisini Düzenle":"Firma Kapsam Yetkisi Ekle",open:l,onCancel:S,onOk:()=>void R(),confirmLoading:c,okText:"Kaydet",cancelText:"İptal",children:n.jsxs(x,{form:h,layout:"vertical",initialValues:{is_active:!0},children:[n.jsx(x.Item,{name:"scope",label:"Kapsam",rules:[{required:!0,message:"Kapsam seÃ
1§imi zorunludur."}],children:n.jsx(pe,{placeholder:"Firma için kapsam seçin",options:p})}),n.jsx(x.Item,{name:"yetki_baslangic_tarihi",label:"Yetki BaÅlangıç Tarihi",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})}),n.jsx(x.Item,{name:"yetki_bitis_tarihi",label:"Yetki BitiÅ Tarihi",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})}),n.jsx(x.Item,{name:"is_active",label:"Aktif Yetki",valuePropName:"checked",children:n.jsx(Tt,{})})]})})]})},Vs={getPersonnelList:async()=>(await L.get("/personnel/")).data.results,getPersonnel:async t=>(await L.get(`/personnel/${t}/`)).data,createPersonnel:async t=>(await L.post("/personnel/",t)).data,updatePersonnel:async(t,e)=>(await L.put(`/personnel/${t}/`,e)).data,deletePersonnel:async t=>{await L.delete(`/personnel/${t}/`)},getScopes:async t=>(await L.get(`/personnel/${t}/scopes/`)).data,getDocuments:async t=>(await L.get(`/personnel/${t}/documents/`)).data},Qs=()=>Re({queryKey:["personnel"],queryFn:Vs.getPersonnelList}),Bp=t=>Re({queryKey:["personnel",t],queryFn:()=>Vs.getPersonnel(t),enabled:!!t}),y_=()=>{const t=ve();return ye({mutationFn:e=>Vs.createPersonnel(e),onSuccess:()=>{t.invalidateQueries({queryKey:["personnel"]}),re.success("Personel baÅarıyla eklendi.")},onError:e=>{ce(e,"Personel eklenemedi.")}})},x_=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Vs.updatePersonnel(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["personnel"]}),t.invalidateQueries({queryKey:["personnel",r.id]}),re.success("Personel baÅarıyla güncellendi.")},onError:e=>{ce(e,"Personel güncellenemedi.")}})},v_=()=>{const t=ve();return ye({mutationFn:e=>Vs.deletePersonnel(e),onSuccess:()=>{t.invalidateQueries({queryKey:["personnel"]}),re.success("Personel baÅarıyla silindi.")},onError:e=>{ce(e,"Personel silinemedi.")}})},{Search:b_}=G,__=()=>{const{data:t,isLoading:e}=Qs(),r=v_(),i=Le(),[s,a]=k.useState(""),l=d=>{r.mutate(d)},o=t==null?void 0:t.filter(d=>d.full_name.toLowerCase().includes(s.toLowerCase())||(d.ekipnet_yetki_no||"").includes(s)),c=[{title:"Ad Soyad",dataIndex:"full_name",key:"full_name",width:180,sorter:(d,u)=>d.full_name.localeCompare(u.full_name)},{title:"Unvan",dataIndex:"title",key:"title",width:250,ellipsis:!0,render:d=>(d==null?void 0:d.replace(/_/g," "))||"-"},{title:"EKİPNET No",dataIndex:"ekipnet_yetki_no",key:"ekipnet_yetki_no",width:120,render:d=>d||"-"},{title:"Durum",dataIndex:"is_active",key:"is_active",width:80,render:d=>n.jsx(ie,{color:d?"success":"error",children:d?"Aktif":"Pasif"})},{title:"İÅlemler",key:"action",width:130,render:(d,u)=>n.jsxs(W,{size:"middle",children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>i(`/personnel/${u.id}`)}),n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>i(`/personnel/${u.id}/edit`)}),n.jsx(Ot,{title:"Personeli Sil",description:"Bu personeli silmek istediÄinizden emin misiniz?",onConfirm:()=>l(u.id),okText:"Evet",cancelText:"Hayır",children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})})]})}];return n.jsxs(H,{title:"Personeller",extra:n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>i("/personnel/new"),style:{background:"#1B5E8C"},children:"Yeni Personel Ekle"}),children:[n.jsx("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between"},children:n.jsx(b_,{placeholder:"Personel adı veya EKİPNET no ile ara",allowClear:!0,onSearch:d=>a(d),onChange:d=>a(d.target.value),style:{width:300}})}),n.jsx(Ie,{columns:c,dataSource:o,rowKey:"id",loading:e||r.isPending,scroll:{x:900},pagination:{pageSize:10}})]})},{TextArea:j_}=G,k_=[{value:"MAKINE_MUHENDISI",label:"Makine Mühendisi"},{value:"ELEKTRIK_MUHENDISI",label:"Elektrik Mühendisi"},{value:"ELEKTRIK_ELEKTRONIK_MUHENDISI",label:"Elektrik-Elektronik Mühendisi"},{value:"MAKINE_TEKNIKERI",label:"Makine Teknikeri"},{value:"ELEKTRIK_TEKNIKERI",label:"Elektrik Teknikeri"},{value:"DIGER",label:"DiÄer"}],S_=()=>({scope:void 0,qualification_date:null,is_active:!0}),Nu={ELEKTRIK_MUHENDISI:["elektrik"],ELEKTRIK_ELEKTRONIK_MUHENDISI:["elektrik"],ELEKTRIK_TEKNIKERI:["elektrik"],MAKINE_MUHENDISI:["mekanik"],MAKINE_TEKNIKERI:["mekanik"]},Pu=[{label:"Elektrik Kapsamları",value:"elektrik"},{label:"Mekanik Kapsamları",value:"mekanik"}],zu=()=>{var f;const{id:t}=jt(),e=Le(),[r]=x.useForm(),i=!!t&&t!=="new",{data:s,isLoading:a}=Bp(i?t:""),{data:l=[]}=qr(),o=y_(),c=x_(),d=x.useWatch("title",r),u=x.useWatch("scope_type_filter",r)||"elektrik",m=Nu[d||""]||["elektrik","mekanik"],h=Pu.filter(g=>m.includes(g.value));k.useEffect(()=>{var v;const g=((v=h[0])==null?void 0:v.value)||"elektrik";h.find(S=>S.value===u)||r.setFieldValue("scope_type_filter",g)},[r,u,h]),k.useEffect(()=>{var g,v,S,R;
1if(s&&i){const z=((v=(g=s.scope_qualifications)==null?void 0:g[0])==null?void 0:v.kapsam_tipi)||((S=Nu[s.title])==null?void 0:S[0])||"elektrik";r.setFieldsValue({...s,scope_type_filter:z,diploma_date:s.diploma_date?Z(s.diploma_date):null,scope_qualifications:(R=s.scope_qualifications)!=null&&R.length?s.scope_qualifications.map(P=>({...P,qualification_date:P.qualification_date?Z(P.qualification_date):null})):[]})}},[r,i,s]);const p=g=>l.filter(v=>v.is_active?g&&v.id===g?!0:m.length&&!m.includes(v.kapsam_tipi||"elektrik")?!1:v.kapsam_tipi===u:!1).map(v=>({value:v.id,label:`${v.name} (${v.code})`})),y=g=>{const v={...g,diploma_date:g.diploma_date?g.diploma_date.format("YYYY-MM-DD"):null,scope_qualifications:(g.scope_qualifications||[]).filter(S=>S==null?void 0:S.scope).map(S=>({...S,qualification_date:S.qualification_date?S.qualification_date.format("YYYY-MM-DD"):null}))};if(delete v.scope_type_filter,i){c.mutate({id:t,data:v},{onSuccess:()=>e("/personnel")});return}o.mutate(v,{onSuccess:()=>e("/personnel")})};return n.jsx(H,{title:i?"Personel Düzenle":"Yeni Personel Ekle",loading:a,children:n.jsxs(x,{form:r,layout:"vertical",onFinish:y,initialValues:{is_active:!0,scope_qualifications:[]},children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Kapsam yetkileri artık Elektrik ve Mekanik olarak ayrılıyor.",description:"Personelin unvanına göre sadece ilgili kapsam tipi listelenir. Sertifika numarası alanı kaldırıldı; yetki tarihi ve aktiflik bilgisi korunur."}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"first_name",label:"Ad",rules:[{required:!0,message:"Ad alanı zorunludur."}],children:n.jsx(G,{placeholder:"Adı"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"last_name",label:"Soyad",rules:[{required:!0,message:"Soyad alanı zorunludur."}],children:n.jsx(G,{placeholder:"Soyadı"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"tc_kimlik",label:"TC Kimlik No",rules:[{required:!0,message:"TC kimlik numarası zorunludur."},{validator:(g,v)=>v?/^\d{11}$/.test(String(v))?Promise.resolve():Promise.reject(new Error("TC Kimlik No 11 haneli olmalıdır.")):Promise.resolve()}],children:n.jsx(G,{placeholder:"11 haneli TC kimlik no",maxLength:11})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"title",label:"Unvan",rules:[{required:!0,message:"Lütfen bir unvan seçin."}],children:n.jsx(pe,{placeholder:"Unvan seçin",options:k_})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"ekipnet_yetki_no",label:"EKİPNET Yetki No",children:n.jsx(G,{placeholder:"Ãrn: 12345"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"bakanlik_kayit_no",label:"Bakanlık Kayıt No",children:n.jsx(G,{placeholder:"Opsiyonel"})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"phone",label:"Telefon",rules:[{required:!0,message:"Telefon zorunludur."}],children:n.jsx(G,{placeholder:"05XXXXXXXXX"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"email",label:"E-Posta",rules:[{type:"email",message:"Geçerli bir e-posta giriniz."}],children:n.jsx(G,{placeholder:"[email protected]"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"university",label:"Mezun Olunan Ãniversite",children:n.jsx(G,{placeholder:"Ãniversite adı"})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"diploma_no",label:"Diploma No",children:n.jsx(G,{placeholder:"Diploma no"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"diploma_date",label:"Diploma Tarihi",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY",placeholder:"Seçiniz"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"is_active",label:"Aktif mi?",valuePropName:"checked",children:n.jsx(Tt,{})})})]}),n.jsx(x.Item,{name:"notes",label:"Notlar",children:n.jsx(j_,{rows:2,placeholder:"Ek bilgiler..."})}),n.jsx(on,{children:"Kapsam Yetkileri"}),n.jsx(be,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"Ãnce kapsam tipini seçin",description:"Elektrik veya Mekanik sekmesine göre sadece ilgili kapsamlar listelenir. Unvanı tek disipline baÄlı personelde diÄer sekme otomatik olarak kapanır."}),n.jsx(x.Item,{name:"scope_type_filter",initialValue:((f=h[0])==null?void 0:f.value)||"elektrik",children:n.jsx(Tn,{block:!0,options:h,disabled:h.length<=1})}
1),n.jsx(x.List,{name:"scope_qualifications",children:(g,{add:v,remove:S})=>n.jsxs(n.Fragment,{children:[g.map((R,z)=>{var P;return n.jsxs(H,{size:"small",title:`Yetki ${z+1}`,style:{marginBottom:12},extra:g.length>1?n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{}),onClick:()=>S(R.name)}):null,children:[n.jsxs(W,{size:[8,8],wrap:!0,style:{marginBottom:12},children:[n.jsx(ie,{color:"blue",children:((P=Pu.find(U=>U.value===u))==null?void 0:P.label)||"Kapsam"}),m.length===1?n.jsx(ie,{color:"geekblue",children:"Unvana göre otomatik filtreleniyor"}):null]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:16,children:n.jsx(x.Item,{name:[R.name,"scope"],label:"Kapsam",rules:[{required:!0,message:"Kapsam seçimi zorunludur."}],children:n.jsx(pe,{showSearch:!0,optionFilterProp:"label",options:p(r.getFieldValue(["scope_qualifications",R.name,"scope"]))})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:[R.name,"qualification_date"],label:"Yetkilendirme Tarihi",rules:[{required:!0,message:"Tarih zorunludur."}],children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})})]}),n.jsx(x.Item,{name:[R.name,"is_active"],label:"Aktif Yetki",valuePropName:"checked",children:n.jsx(Tt,{})})]},R.key)}),n.jsx(T,{type:"dashed",block:!0,icon:n.jsx(rt,{}),onClick:()=>v(S_()),children:"Kapsam Yetkisi Ekle"})]})}),n.jsx(x.Item,{style:{marginTop:16},children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",loading:o.isPending||c.isPending,style:{background:"#1B5E8C"},children:"Kaydet"}),n.jsx(T,{onClick:()=>e("/personnel"),children:"İptal"})]})})]})})},E_=()=>{var d;const{id:t}=jt(),e=Le(),{data:r,isLoading:i}=Bp(t||"");if(i)return n.jsx("div",{style:{textAlign:"center",padding:"50px"},children:n.jsx(mt,{size:"large"})});if(!r)return n.jsx("div",{children:"Personel bulunamadı."});const s=r.scope_qualifications||[],a=r.documents||[],l=[{title:"Kapsam",dataIndex:"scope_name",key:"scope_name"},{title:"Kod",dataIndex:"scope_code",key:"scope_code"},{title:"Kapsam Tipi",dataIndex:"kapsam_tipi_display",key:"kapsam_tipi_display",render:(u,m)=>u||m.kapsam_tipi||"-"},{title:"Yetkilendirme Tarihi",dataIndex:"qualification_date",key:"qualification_date",render:u=>u?Z(u).format("DD/MM/YYYY"):"-"},{title:"Durum",dataIndex:"is_active",key:"is_active",render:u=>n.jsx(ie,{color:u?"success":"error",children:u?"Aktif":"Pasif"})}],o=[{title:"Belge Türü",dataIndex:"document_type_display",key:"document_type_display",render:u=>u||"-"},{title:"BaÅlık",dataIndex:"title",key:"title"},{title:"Düzenleme Tarihi",dataIndex:"issue_date",key:"issue_date",render:u=>u?Z(u).format("DD/MM/YYYY"):"-"},{title:"Geçerlilik Tarihi",dataIndex:"expiry_date",key:"expiry_date",render:u=>u?Z(u).format("DD/MM/YYYY"):"-"}],c=[{key:"1",label:`Yetkili Kapsamlar (${s.length})`,children:n.jsx(Ie,{dataSource:s,columns:l,rowKey:"id",size:"small",pagination:!1})},{key:"2",label:`Belgeler (${a.length})`,children:n.jsx(Ie,{dataSource:a,columns:o,rowKey:"id",size:"small",pagination:!1})},{key:"3",label:"Atanan Hizmetler",children:n.jsx("div",{style:{padding:16,color:"#999"},children:"Hizmetler sayfasından personel bazlı filtrelenebilir."})}];return n.jsxs("div",{children:[n.jsxs("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between"},children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/personnel"),children:"Geri Dön"}),n.jsx(T,{type:"primary",icon:n.jsx(at,{}),onClick:()=>e(`/personnel/${t}/edit`),style:{background:"#1B5E8C"},children:"Düzenle"})]}),n.jsx(H,{title:r.full_name,style:{marginBottom:24},children:n.jsxs(F,{bordered:!0,column:{xxl:3,xl:3,lg:3,md:2,sm:1,xs:1},children:[n.jsx(F.Item,{label:"Durum",children:n.jsx(ie,{color:r.is_active?"success":"error",children:r.is_active?"Aktif":"Pasif"})}),n.jsx(F.Item,{label:"TC Kimlik No",children:r.tc_kimlik||"-"}),n.jsx(F.Item,{label:"Unvan",children:r.title_display||((d=r.title)==null?void 0:d.replace(/_/g," "))||"-"}),n.jsx(F.Item,{label:"EKİPNET No",children:r.ekipnet_yetki_no||"-"}),n.jsx(F.Item,{label:"Bakanlık Kayıt No",children:r.bakanlik_kayit_no||"-"}),n.jsx(F.Item,{label:"Telefon",children:r.phone||"-"}),n.jsx(F.Item,{label:"E-Posta",children:r.email||"-"}),n.jsx(F.Item,{label:"Ãniversite",children:r.university||"-"}),n.jsx(F.Item,{label:"Diploma No",children:r.diploma_no||"-"}),n.jsx(F.Item,{label:"Diploma Tarihi",children:r.diploma_date?Z(r.diploma_date).format("DD/MM/YYYY"):"-"}),n.jsx(F.Item,{label:"Notlar",span:3,children:r.notes||"-"})]})}),n.jsx(H,{children:n.jsx(Jn,{defaultActiveKey:"1",items:c})})]})},Ou=t=>{const e=new FormData;return Object.entries(t).forEach(([r,i])=>{if(i!=null){if(typeof File<"u"&&i instanceof File){e.append(r,i);return}e.append(r,String(i))}}),e},wr={getDevices:async t=>(await L.get("/devices/",{params:t})).data.results,getDevice:async t=>(await L.get(`/devices/${t}/`)).data,createDevice:async t=>(await L.post("/devices/",t)).data,updateDevice:async(t,e)=>(await L.put(`/devices/${t}/`,e)).data,deleteDevice:async t=>{await L.delete(`/devices/${t}/`)},getCalibrations:async t=>(await L.get(`/devices/${t}/calibrations/`)).data,createCalibration:async(t,e)=>(await L.post(`/devices/${t}/calibrations/`,Ou(e),{headers:{"Content-Type":"multipart/form-data"}})).data,updateCalibration:async(t,e)=>(await L.patch(`/calibrations/${t}/`,Ou(e),{headers:{"Content-Type":"multipart/form-data"}}
1)).data,deleteCalibration:async t=>{await L.delete(`/calibrations/${t}/`)},getCalibration:async t=>(await L.get(`/calibrations/${t}/`)).data},Yp=t=>Re({queryKey:["devices",t],queryFn:()=>wr.getDevices(t)}),Hp=t=>Re({queryKey:["devices",t],queryFn:()=>wr.getDevice(t),enabled:!!t}),w_=()=>{const t=ve();return ye({mutationFn:e=>wr.createDevice(e),onSuccess:()=>{t.invalidateQueries({queryKey:["devices"]}),re.success("Cihaz baÅarıyla eklendi.")},onError:e=>{ce(e,"Cihaz eklenemedi.")}})},C_=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>wr.updateDevice(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["devices"]}),t.invalidateQueries({queryKey:["devices",r.id]}),re.success("Cihaz baÅarıyla güncellendi.")},onError:e=>{ce(e,"Cihaz güncellenemedi.")}})},D_=()=>{const t=ve();return ye({mutationFn:e=>wr.deleteDevice(e),onSuccess:()=>{t.invalidateQueries({queryKey:["devices"]}),re.success("Cihaz baÅarıyla silindi.")},onError:e=>{ce(e,"Cihaz silinemedi.")}})},R_=t=>{const e=ve();return ye({mutationFn:r=>wr.createCalibration(t,r),onSuccess:()=>{e.invalidateQueries({queryKey:["devices"]}),e.invalidateQueries({queryKey:["devices",t]}),re.success("Kalibrasyon baÅarıyla eklendi.")},onError:r=>{ce(r,"Kalibrasyon eklenemedi.")}})},I_=t=>{const e=ve();return ye({mutationFn:({id:r,data:i})=>wr.updateCalibration(r,i),onSuccess:()=>{e.invalidateQueries({queryKey:["devices"]}),e.invalidateQueries({queryKey:["devices",t]}),re.success("Kalibrasyon baÅarıyla güncellendi.")},onError:r=>{ce(r,"Kalibrasyon güncellenemedi.")}})},T_=t=>{const e=ve();return ye({mutationFn:r=>wr.deleteCalibration(r),onSuccess:()=>{e.invalidateQueries({queryKey:["devices"]}),e.invalidateQueries({queryKey:["devices",t]}),re.success("Kalibrasyon baÅarıyla silindi.")},onError:r=>{ce(r,"Kalibrasyon silinemedi.")}})},{Search:A_}=G,M_=[{value:"all",label:"Tüm Tipler"},{value:"TERMAL_KAMERA",label:"Termal Kamera"},{value:"MEGGER",label:"Megger (İzolasyon Test)"},{value:"TOPRAKLAMA_OLCUM",label:"Topraklama Ãlçüm"},{value:"MULTIMETRE",label:"Multimetre"},{value:"BASINC_OLCUM",label:"Basınç Ãlçüm"},{value:"MOMENT_ANAHTARI",label:"Moment Anahtarı"},{value:"KALIPLIK_OLCER",label:"Kalınlık Ãlçer"},{value:"DIGER",label:"DiÄer"}],Up=t=>t==null?"-":t<0?`${Math.abs(t)} gün geçti`:t===0?"Bugün doluyor":`${t} gün`,ko=t=>t.is_calibration_valid?t.days_until_calibration_expiry!==null&&t.days_until_calibration_expiry!==void 0&&t.days_until_calibration_expiry<=30?{color:"warning",label:`Yakında Doluyor (${Up(t.days_until_calibration_expiry)})`,rowClassName:"device-list__row--expiring",status:"expiring"}:{color:"success",label:"Geçerli",rowClassName:"",status:"valid"}:{color:"error",label:"Geçersiz / Yok",rowClassName:"device-list__row--expired",status:"expired"},N_=()=>{const{data:t,isLoading:e}=Yp(),r=D_(),i=Le(),[s,a]=k.useState(""),[l,o]=k.useState("all"),[c,d]=k.useState("all"),[u,m]=k.useState("all"),h=He(v=>v.user),p=(h==null?void 0:h.role)==="ADMIN"||(h==null?void 0:h.role)==="MANAGER",y=v=>{r.mutate(v)},f=t==null?void 0:t.filter(v=>(l==="all"||v.kapsam_tipi===l)&&(c==="all"||v.device_type===c)&&(u==="all"||ko(v).status===u)&&(v.name.toLowerCase().includes(s.toLowerCase())||`${v.brand||""} ${v.model_name||""}`.toLowerCase().includes(s.toLowerCase())||(v.serial_number||"").includes(s))),g=[{title:"Cihaz Adı",dataIndex:"name",key:"name",width:180,ellipsis:!0,sorter:(v,S)=>v.name.localeCompare(S.name)},{title:"Marka / Model",key:"brand_model",width:180,render:(v,S)=>`${S.brand||"-"} / ${S.model_name||"-"}`},{title:"Seri No",dataIndex:"serial_number",key:"serial_number",width:120},{title:"Cihaz Tipi",dataIndex:"device_type",key:"device_type",width:160,render:v=>(v==null?void 0:v.replace(/_/g," "))||"-"},{title:"Kapsam",dataIndex:"kapsam_tipi",key:"kapsam_tipi",width:100,render:(v,S)=>{const R=cr(v);return n.jsx(ie,{color:R.color,children:S.kapsam_tipi_display||R.label})}},{title:"Kalibrasyon",key:"calibration",width:160,render:(v,S)=>{const R=ko(S);return n.jsx(ie,{color:R.color,children:R.label})}},{title:"Kalan Gün",key:"days_left",width:130,render:(v,S)=>Up(S.days_until_calibration_expiry)},{title:"İÅlemler",key:"action",width:130,render:(v,S)=>n.jsxs(W,{size:"middle",children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>i(`/devices/${S.id}`)}),p&&n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>i(`/devices/${S.id}/edit`)}
1),p&&n.jsx(Ot,{title:"Cihazı Sil",description:"Bu cihazı silmek istediÄinizden emin misiniz?",onConfirm:()=>y(S.id),okText:"Evet",cancelText:"Hayır",children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})})]})}];return n.jsxs(H,{title:"Cihazlar",extra:p?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>i("/devices/new"),style:{background:"#1B5E8C"},children:"Yeni Cihaz Ekle"}):null,children:[n.jsxs("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",gap:16,flexWrap:"wrap"},children:[n.jsx(A_,{placeholder:"Cihaz adı, marka/model veya seri no ile ara",allowClear:!0,onSearch:v=>a(v),onChange:v=>a(v.target.value),style:{width:300}}),n.jsxs(W,{wrap:!0,children:[n.jsx(pe,{style:{minWidth:190},value:c,options:M_,onChange:d}),n.jsx(pe,{style:{minWidth:180},value:u,options:[{value:"all",label:"Tüm Kalibrasyonlar"},{value:"valid",label:"Geçerli"},{value:"expiring",label:"Yakında Doluyor"},{value:"expired",label:"Geçersiz / Yok"}],onChange:v=>m(v)}),n.jsx(Tn,{value:l,options:[{label:"Tümü",value:"all"},{label:"Elektrik",value:"elektrik"},{label:"Mekanik",value:"mekanik"},{label:"Ortak",value:"ortak"}],onChange:v=>o(v)})]})]}),n.jsx(Ie,{columns:g,dataSource:f,rowKey:"id",loading:e||r.isPending,scroll:{x:1e3},rowClassName:v=>ko(v).rowClassName,pagination:{pageSize:10},locale:{emptyText:n.jsx(ht,{description:"Filtreye uygun cihaz bulunamadı"})}})]})},{TextArea:P_}=G,{Option:z_}=pe,O_=[{value:"TERMAL_KAMERA",label:"Termal Kamera"},{value:"MEGGER",label:"Megger (İzolasyon Test)"},{value:"TOPRAKLAMA_OLCUM",label:"Topraklama Ãlçüm"},{value:"MULTIMETRE",label:"Multimetre"},{value:"BASINC_OLCUM",label:"Basınç Ãlçüm"},{value:"MOMENT_ANAHTARI",label:"Moment Anahtarı"},{value:"KALIPLIK_OLCER",label:"Kalınlık Ãlçer"},{value:"DIGER",label:"DiÄer"}],L_=[{value:"elektrik",label:cr("elektrik").label},{value:"mekanik",label:cr("mekanik").label},{value:"ortak",label:cr("ortak").label}],Lu=()=>{const{id:t}=jt(),e=Le(),[r]=x.useForm(),i=He(m=>m.user),s=(i==null?void 0:i.role)==="ADMIN"||(i==null?void 0:i.role)==="MANAGER",a=!!t&&t!=="new",{data:l,isLoading:o}=Hp(a?t:""),c=w_(),d=C_();k.useEffect(()=>{l&&a&&r.setFieldsValue(l)},[l,a,r]);const u=m=>{a?d.mutate({id:t,data:m},{onSuccess:()=>e("/devices")}):c.mutate(m,{onSuccess:()=>e("/devices")})};return n.jsx(H,{title:a?"Cihaz Düzenle":"Yeni Cihaz Ekle",loading:o,children:n.jsxs(x,{form:r,layout:"vertical",onFinish:u,initialValues:{is_active:!0,kapsam_tipi:"ortak"},children:[!s&&n.jsx(be,{type:"warning",showIcon:!0,message:"Cihaz ekleme ve duzenleme icin MANAGER veya ADMIN yetkisi gereklidir.",style:{marginBottom:16}}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"kapsam_tipi",label:"Cihaz Kapsamı",rules:[{required:!0,message:"Lütfen cihaz kapsamını seçin"}],children:n.jsx(pe,{placeholder:"Kapsam seçin",options:L_})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"name",label:"Cihaz Adı",rules:[{required:!0,message:"Bu alan zorunludur"}],children:n.jsx(G,{placeholder:"Ãrn: Topraklama Ãlçü Aleti"})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"device_type",label:"Cihaz Tipi",rules:[{required:!0,message:"Lütfen bir tip seçin"}],children:n.jsx(pe,{placeholder:"Tip seçin",children:O_.map(m=>n.jsx(z_,{value:m.value,children:m.label},m.value))})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"serial_number",label:"Seri No",rules:[{required:!0,message:"Seri no benzersiz olmalıdır"}],children:n.jsx(G,{placeholder:"SN-12345"})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"brand",label:"Marka",rules:[{required:!0}],children:n.jsx(G,{placeholder:"Ãrn: Fluke"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"model_name",label:"Model",rules:[{required:!0}],children:n.jsx(G,{placeholder:"Ãrn: 1664 FC"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"inventory_number",label:"Envanter No",children:n.jsx(G,{placeholder:"Opsiyonel"})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"measurement_range",label:"Ãlçüm AralıÄı",children:n.jsx(G,{placeholder:"Ãrn: 0-1000V"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"accuracy",label:"Hassasiyet",children:n.jsx(G,{placeholder:"Ãrn: %1"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"is_active",label:"Aktif mi?",valuePropName:"checked",children:n.jsx(Tt,{})})})]}),n.jsx(x.Item,{name:"notes",label:"Notlar",children:n.jsx(P_,{rows:2,placeholder:"Ek bilgiler..."})}),n.jsx(x.Item,{children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",disabled:!s,loading:c.isPending||d.isPending,style:{background:"#1B5E8C"},children:"Kaydet"}),n.jsx(T,{onClick:()=>e("/devices"),children:"İptal"})]})})]})})},{TextArea:F_}=G,Fu=t=>!t||typeof t!="string"?"":t.startsWith("http")?t:`${typeof window<"u"?window.location.origin.replace(":3000",":8000"):"http://localhost:8000"}${t}`,Bu=t=>t==null?"-":t<0?`${Math.abs(t)} gün geçti`:t===0?"Bugün doluyor":`${t} gün`,B_=()=>{var I;const{id:t}=jt(),e=Le(),{data:r,isLoading:i,refetch:s}=Hp(t||""),a=R_(t||""),l=I_(t||""),o=T_(t||""),[c,d]=k.useState(!1),[u,m]=k.useState(null),[h,p]=k.useState(null),[y]=x.useForm(),f=He(j=>j.user),g=(f==null?void 0:f.role)==="ADMIN"||(f==null?void 0:f.role)==="MANAGER";if(i)return n.jsx("div",{style:{textAlign:"center",padding:"50px"},children:n.jsx(mt,{size:"large"})});if(!r)return n.jsx("div",{children:"Cihaz bulunamadı."});const v=r.calibrations||[],S=r.current_calibration,R=(S==null?void 0:S.expiry_date)||(S==null?void 0:S.kalibrasyon_gecerlilik_tarihi),z=r.days_until_calibration_expiry,P=cr(r.kapsam_tipi),U=a.isPending||l.isPending||o.isPending,A=j=>{m(j||null),p(null),y.setFieldsValue({calibration_date:j!=null&&j.calibration_date?Z(j.calibration_date):null,expiry_date:j!=null&&j.expiry_date||j!=null&&j.kalibrasyon_gecerlilik_tarihi?Z((j==null?void 0:j.expiry_date)||(j==null?void 0:j.kalibrasyon_gecerlilik_tarihi)):null,certificate_no:(j==null?void 0:j.certificate_no)||(j==null?void 0:j.kalibrasyon_numarasi)||"",calibration_lab:(j==null?void 0:j.calibration_lab)||"",notes:(j==null?void 0:j.notes)||""}),d(!0)},w=()=>{m(null),p(null),y.resetFields(),d(!1)},Y=async()=>{try{const j=await y.validateFields(),N={calibration_date:j.calibration_date.format("YYYY-MM-DD"),expiry_date:j.expiry_date.format("YYYY-MM-DD"),certificate_no:j.certificate_no,calibration_lab:j.calibration_lab,notes:j.notes||""};h&&(N.certificate_file=h),u?await l.mutateAsync({id:u.id,data:N}):await a.mutateAsync(N),w(),await s()}catch(j){if(j!=null&&j.errorFields)return}},D=async j=>{await o.mutateAsync(j),await s()},_={maxCount:1,beforeUpload:j=>(p(j),!1),onRemove:()=>{p(null)},fileList:h?[{uid:"certificate-file",name:h.name,status:"done"}]:[]},M=[{title:"Kalibrasyon Tarihi",dataIndex:"calibration_date",key:"calibration_date",render:j=>j?Z(j).format("DD/MM/YYYY"):"-"},{title:"Geçerlilik Tarihi",key:"expiry_date",render:(j,N)=>{const $=N.kalibrasyon_gecerlilik_tarihi||N.expiry_date;return $?Z($).format("DD/MM/YYYY"):"-"}},{title:"Kalibrasyon No",key:"certificate_no",render:(j,N)=>N.kalibrasyon_numarasi||N.certificate_no||"-"},{title:"KuruluÅ",dataIndex:"calibration_lab",key:"calibration_lab",render:j=>j||"-"},{title:"Sertifika",key:"certificate_file",render:(j,N)=>typeof N.certificate_file=="string"&&N.certificate_file?n.jsx(T,{type:"link",icon:n.jsx(cn,{}),href:Fu(N.certificate_file),target:"_blank",rel:"noreferrer",children:"Dosyayı Aç"}):"-"},{title:"Notlar",dataIndex:"notes",key:"notes",render:j=>j||"-"},...g?[{title:"İÅlemler",key:"actions",render:(j,N)=>n.jsxs(W,{size:"small",children:[n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>A(N)}),n.jsx(Ot,{title:"Kalibrasyon kaydını sil",description:"Bu kaydı silmek istediÄinizden emin misiniz?",okText:"Evet",cancelText:"Hayır",onConfirm:()=>D(N.id),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})})]})}]:[]],b=[{key:"1",label:`Kalibrasyon GeçmiÅi (${v.length})`,children:v.length?n.jsx(Ie,{dataSource:v,columns:M,rowKey:"id",size:"small",pagination:!1,scroll:{x:900}}
1):n.jsx(ht,{image:ht.PRESENTED_IMAGE_SIMPLE,description:"Bu cihaz için henüz kalibrasyon kaydı bulunmuyor."})},{key:"2",label:"KullanıldıÄı Hizmetler",children:n.jsx("div",{style:{padding:16,color:"#999"},children:"Kullanım geçmiÅi hizmetler sayfasından görüntülenebilir."})}];return n.jsxs("div",{children:[n.jsxs("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between"},children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/devices"),children:"Geri Dön"}),g?n.jsx(T,{type:"primary",icon:n.jsx(at,{}),onClick:()=>e(`/devices/${t}/edit`),style:{background:"#1B5E8C"},children:"Düzenle"}):null]}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,xl:18,children:n.jsx(H,{title:`${r.name} (${r.serial_number})`,style:{marginBottom:24,height:"100%"},children:n.jsxs(F,{bordered:!0,column:{xxl:2,xl:2,lg:2,md:1,sm:1,xs:1},children:[n.jsx(F.Item,{label:"Durum",children:n.jsx(ie,{color:r.is_active?"success":"error",children:r.is_active?"Aktif":"Pasif"})}),n.jsx(F.Item,{label:"Kapsam",children:n.jsx(ie,{color:P.color,children:r.kapsam_tipi_display||P.label})}),n.jsx(F.Item,{label:"Tip",children:((I=r.device_type)==null?void 0:I.replace(/_/g," "))||"-"}),n.jsxs(F.Item,{label:"Marka / Model",children:[r.brand," / ",r.model_name]}),n.jsx(F.Item,{label:"Seri No",children:r.serial_number}),n.jsx(F.Item,{label:"Envanter No",children:r.inventory_number||"-"}),n.jsx(F.Item,{label:"Ãlçüm AralıÄı",children:r.measurement_range||"-"}),n.jsx(F.Item,{label:"Hassasiyet",children:r.accuracy||"-"}),n.jsx(F.Item,{label:"Notlar",span:2,children:r.notes||"-"})]})})}),n.jsx(C,{xs:24,xl:6,children:n.jsxs(H,{title:"Kalibrasyon Durumu",extra:g?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>A(),style:{background:"#1B5E8C"},children:"Yeni Kalibrasyon"}):null,style:{marginBottom:24,height:"100%"},children:[n.jsx(Ee,{title:"Geçerlilik",value:r.is_calibration_valid?"Geçerli":"Geçersiz / Yok",valueStyle:{color:r.is_calibration_valid?"#3f8600":"#cf1322"},prefix:n.jsx(qn,{})}),n.jsxs("div",{style:{marginTop:16},children:[n.jsxs("div",{children:["Kalibrasyon No: ",n.jsx("b",{children:(S==null?void 0:S.kalibrasyon_numarasi)||(S==null?void 0:S.certificate_no)||"-"})]}),n.jsxs("div",{children:["Kalibrasyon Tarihi: ",n.jsx("b",{children:S!=null&&S.calibration_date?Z(S.calibration_date).format("DD/MM/YYYY"):"-"})]}),n.jsxs("div",{children:["Geçerlilik: ",n.jsx("b",{children:R?Z(R).format("DD/MM/YYYY"):"-"})]}),n.jsxs("div",{children:["Kalan Süre: ",n.jsx("b",{children:Bu(z)})]})]}),v.length?!r.is_calibration_valid&&R?n.jsx(be,{style:{marginTop:16},type:"error",showIcon:!0,message:"Kalibrasyon süresi dolmuÅ",de
1scription:`${Z(R).format("DD/MM/YYYY")} tarihinde sona ermiÅ.`}):z!=null&&z<=30?n.jsx(be,{style:{marginTop:16},type:"warning",showIcon:!0,message:"Kalibrasyon süresi yaklaÅıyor",description:`${Bu(z)} içinde yenilenmesi gerekiyor.`}):null:n.jsx(be,{style:{marginTop:16},type:"warning",showIcon:!0,message:"Kalibrasyon kaydı bulunmuyor",description:"Cihazın rapor ve iÅ emri seçimlerinde problemsiz kullanılabilmesi için geçerli bir kalibrasyon ekleyin."})]})})]}),n.jsx(H,{extra:g?n.jsx(T,{icon:n.jsx(rt,{}),onClick:()=>A(),children:"Yeni Kalibrasyon Ekle"}):null,children:n.jsx(Jn,{defaultActiveKey:"1",items:b})}),n.jsx(Ve,{title:u?"Kalibrasyon Düzenle":"Yeni Kalibrasyon Ekle",open:c,onCancel:w,onOk:Y,okText:u?"Güncelle":"Kaydet",cancelText:"İptal",confirmLoading:U,destroyOnClose:!0,children:n.jsxs(x,{form:y,layout:"vertical",children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"calibration_date",label:"Kalibrasyon Tarihi",rules:[{required:!0,message:"Kalibrasyon tarihi zorunludur."}],children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"expiry_date",label:"Geçerlilik Tarihi",dependencies:["calibration_date"],rules:[{required:!0,message:"Geçerlilik tarihi zorunludur."},({getFieldValue:j})=>({validator(N,$){const ue=j("calibration_date");return!$||!ue||$.isAfter(ue,"day")?Promise.resolve():Promise.reject(new Error("Geçerlilik tarihi kalibrasyon tarihinden sonra olmalıdır."))}})],children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})})]}),n.jsx(x.Item,{name:"certificate_no",label:"Kalibrasyon Numarası",rules:[{required:!0,message:"Kalibrasyon numarası zorunludur."}],children:n.jsx(G,{placeholder:"Ãrn: KAL-2026-001"})}),n.jsx(x.Item,{name:"calibration_lab",label:"Kalibrasyon KuruluÅu",rules:[{required:!0,message:"Kalibrasyon kuruluÅu zorunludur."}],children:n.jsx(G,{placeholder:"Ãrn: TÃRKAK Akredite Lab"})}),n.jsx(x.Item,{label:"Sertifika Dosyası",children:n.jsxs(W,{direction:"vertical",style:{width:"100%"},children:[n.jsx(An,{..._,children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"Dosya Seç"})}),u!=null&&u.certificate_file&&!h?n.jsx(T,{type:"link",icon:n.jsx(cn,{}),href:Fu(u.certificate_file),target:"_blank",rel:"noreferrer",style:{paddingInline:0},children:"Mevcut sertifika dosyasını aç"}):null]})}),n.jsx(x.Item,{name:"notes",label:"Notlar",children:n.jsx(F_,{rows:3,placeholder:"Kalibrasyonla ilgili ek notlar..."})})]})})]})},dt={getServices:async t=>(await L.get("/services/",{params:t})).data.results,getService:async t=>(await L.get(`/services/${t}/`)).data,createService:async t=>(await L.post("/services/",t)).data,updateService:async(t,e)=>(await L.patch(`/services/${t}/`,e)).data,deleteService:async t=>{await L.delete(`/services/${t}/`)},dispatchService:async t=>(await L.post(`/services/${t}/dispatch/`)).data,arriveService:async t=>(await L.post(`/services/${t}/arrive/`)).data,pauseService:async(t,e)=>(await L.post(`/services/${t}/pause/`,{notes:e})).data,resumeService:async(t,e)=>(await L.post(`/services/${t}/resume/`,{notes:e})).data,startService:async t=>(await L.post(`/services/${t}/start/`)).data,completeService:async t=>(await L.post(`/services/${t}/complete/`)).data,cancelService:async(t,e)=>(await L.post(`/services/${t}/cancel/`,{notes:e})).data,moveStage:async(t,e)=>(await L.post(`/services/${t}/move-stage/`,{target_stage:e})).data,rateService:async(t,e)=>(await L.post(`/services/${t}/rate/`,{rating:e})).data,uploadCustomerSignature:async(t,e)=>(await L.post(`/services/${t}/customer-sign/`,{image_base64:e})).data,getTimeline:async t=>(await L.get(`/services/${t}/timeline/`)).data,getChecklist:async t=>(await L.get(`/services/${t}/checklist/`)).data,updateChecklist:async(t,e)=>(await L.patch(`/services/${t}/checklist/`,{items:e})).data,getCalendar:async t=>(await L.get("/services/calendar/",{params:t})).data,getCalendarResources:async()=>(await L.get("/services/calendar/resources/")).data,getKanban:async()=>(await L.get("/services/kanban/")).data,getUnassignedServices:async t=>(await L.get("/services/unassigned/",{params:t})).data,getWorkload:async t=>(await L.get("/services/workload/",{params:t?{date:t}:void 0})).data,rescheduleService:async(t,e)=>(await L.patch(`/services/${t}/reschedule/`,e)).data,getAssignments:async t=>(await L.get(`/services/${t}/assignments/`)).data,createAssignment:async(t,e)=>(await L.post(`/services/${t}/assignments/`,e)).data,deleteAssignment:async(t,e)=>{await L.delete(`/services/${t}/assignments/${e}/`)},getEquipment:async t=>(await L.get("/equipment/",{params:t})).data.results,getServiceEquipments:async t=>(await L.get(`/services/${t}/equipments/`)).data,createServiceEquipment:async(t,e)=>(await L.post(`/services/${t}/equipments/`,e)).data,deleteServiceEquipment:async(t,e)=>{await L.delete(`/services/${t}/equipments/${e}/`)}},nr=(t,e)=>{t.invalidateQueries({queryKey:["services"]}),t.invalidateQueries({queryKey:["service-calendar"]}),t.invalidateQueries({queryKey:["service-kanban"]}),t.invalidateQueries({queryKey:["service-workload"]}),t.invalidateQueries({queryKey:["vehicles"]}
1),e&&(t.invalidateQueries({queryKey:["services",e]}),t.invalidateQueries({queryKey:["services",e,"assignments"]}),t.invalidateQueries({queryKey:["services",e,"equipments"]}),t.invalidateQueries({queryKey:["services",e,"timeline"]}),t.invalidateQueries({queryKey:["services",e,"checklist"]}))},Xs=()=>Re({queryKey:["services"],queryFn:dt.getServices}),qp=t=>Re({queryKey:["services",t],queryFn:()=>dt.getService(t),enabled:!!t}),Y_=()=>{const t=ve();return ye({mutationFn:e=>dt.createService(e),onSuccess:()=>{nr(t),re.success("İŠemri oluÅturuldu.")},onError:e=>{ce(e,"İŠemri oluÅturulamadı.")}})},H_=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>dt.updateService(e,r),onSuccess:(e,r)=>{nr(t,r.id),re.success("İŠemri güncellendi.")},onError:e=>{ce(e,"İŠemri güncellenemedi.")}})},U_=()=>{const t=ve();return ye({mutationFn:e=>dt.deleteService(e),onSuccess:()=>{nr(t),re.success("İŠemri silindi.")},onError:e=>{ce(e,"İŠemri silinemedi.")}})},Zc=(t,e)=>{const r=ve();return ye({mutationFn:t,onSuccess:(i,s)=>{nr(r,s),re.success(e)},onError:i=>{ce(i,"İÅlem tamamlanamadı.")}})},q_=()=>Zc(dt.dispatchService,"İŠemri yola çıkarıldı."),$_=()=>Zc(dt.arriveService,"Sahaya varıŠkaydedildi."),K_=()=>Zc(dt.completeService,"İŠemri tamamlandı."),G_=()=>{const t=ve();return ye({mutationFn:({id:e,notes:r})=>dt.pauseService(e,r),onSuccess:(e,r)=>{nr(t,r.id),re.success("İŠemri duraklatıldı.")},onError:e=>{ce(e,"İŠemri duraklatılamadı.")}})},W_=()=>{const t=ve();return ye({mutationFn:({id:e,notes:r})=>dt.resumeService(e,r),onSuccess:(e,r)=>{nr(t,r.id),re.success("İŠemri devam ettirildi.")},onError:e=>{ce(e,"İŠemri devam ettirilemedi.")}})},V_=()=>{const t=ve();return ye({mutationFn:({id:e,targetStage:r})=>dt.moveStage(e,r),onSuccess:(e,r)=>{nr(t,r.id),re.success("İŠemri aÅaması güncellendi.")},onError:e=>{ce(e,"İŠemri aÅaması güncellenemedi.")}})},Q_=()=>{const t=ve();return ye({mutationFn:({id:e,rating:r})=>dt.rateService(e,r),onSuccess:(e,r)=>{nr(t,r.id),re.success("MüÅteri puanı kaydedildi.")},onError:e=>{ce(e,"MüÅteri puanı kaydedilemedi.")}})},X_=()=>{const t=ve();return ye({mutationFn:({id:e,imageBase64:r})=>dt.uploadCustomerSignature(e,r),onSuccess:(e,r)=>{nr(t,r.id),re.success("MüÅteri imzası kaydedildi.")},onError:e=>{ce(e,"MüÅteri imzası yüklenemedi.")}})},Z_=t=>Re({queryKey:["services",t,"assignments"],queryFn:()=>dt.getAssignments(t),enabled:!!t}),J_=t=>Re({queryKey:["services",t,"equipments"],queryFn:()=>dt.getServiceEquipments(t),enabled:!!t}),ej=t=>Re({queryKey:["services",t,"timeline"],queryFn:()=>dt.getTimeline(t),enabled:!!t}),tj=t=>Re({queryKey:["services",t,"checklist"],queryFn:()=>dt.getChecklist(t),enabled:!!t}),nj=()=>{const t=ve();return ye({mutationFn:({id:e,items:r})=>dt.updateChecklist(e,r),onSuccess:(e,r)=>{nr(t,r.id),re.success("Kontrol listesi güncellendi.")},onError:e=>{ce(e,"Kontrol listesi güncellenemedi.")}})},$p=t=>Re({queryKey:["service-calendar",t],queryFn:()=>dt.getCalendar(t)}),rj=()=>Re({queryKey:["service-calendar-resources"],queryFn:dt.getCalendarResources}),ij=()=>Re({queryKey:["service-kanban"],queryFn:dt.getKanban}),sj=t=>Re({queryKey:["service-unassigned",t],queryFn:()=>dt.getUnassignedServices(t)}),Kp=t=>Re({queryKey:["service-workload",t],queryFn:()=>dt.getWorkload(t)}),Gp=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>dt.rescheduleService(e,r),onSuccess:(e,r)=>{nr(t,r.id),re.success("İŠemri yeniden planlandı.")},onError:e=>{ce(e,"Yeniden planlama yapılamadı.")}})},Wp={PLANNED:"Planlandı",ASSIGNED:"Atandı",IN_PROGRESS:"Devam Ediyor",COMPLETED:"Tamamlandı",CANCELLED:"İptal"},lc={PLANNED:"Planlandı",ASSIGNED:"Atandı",DISPATCHED:"Yolda",ONSITE:"Sahada",COMPLETED:"Tamamlandı",CANCELLED:"İptal"},zr={LOW:"DüÅük",NORMAL:"Orta",HIGH:"Yüksek",URGENT:"Acil"},aj={LEAD_ENGINEER:"BaÅ Mühendis",ASSISTANT_ENGINEER:"Yardımcı Mühendis",TECHNICIAN:"Teknisyen"},lj={muhendis:"Mühendis",tekniker:"Tekniker",teknisyen:"Teknisyen"},oj={CREATED:"OluÅturuldu",ASSIGNED:"Atandı",DISPATCHED:"Yola Ãıkıldı",ARRIVED:"Varıldı",STARTED:"BaÅlatıldı",PAUSED:"Duraklatıldı",RESUMED:"Devam Edildi",COMPLETED:"Tamamlandı",CANCELLED:"İptal Edildi"},{Search:cj}=G,{Text:Vn}=ft,dj={PLANNED:"default",ASSIGNED:"blue",IN_PROGRESS:"processing",COMPLETED:"success",CANCELLED:"error"},Yu={PLANNED:"#d9d9d9",ASSIGNED:"#1677ff",DISPATCHED:"#fa8c16",ONSITE:"#13c2c2",COMPLETED:"#52c41a",CANCELLED:"#ff4d4f"},uj={LOW:"success",NORMAL:"warning",HIGH:"volcano",URGENT:"red"},mj=()=>{var Y;const t=Le(),[e,r]=Yc(),i=e.get("view")||"table",[s,a]=k.useState(""),[l,o]=k.useState("week"),[c,d]=k.useState(Z()),{data:u,isLoading:m}=Xs(),{data:h}=$p(l==="week"?{view:"week",start:c.startOf("week").format("YYYY-MM-DD"),end:c.endOf("week").format("YYYY-MM-DD")}:{view:"month",month:c.format("YYYY-MM")}),{data:p,isLoading:y}=ij(),{data:f}=Kp(c.format("YYYY-MM-DD")),g=U_(),v=Gp(),S=V_(),R=He(D=>D.user),z=(R==null?void 0:R.role)==="ADMIN"||(R==null?void 0:R.role)==="MANAGER",P=k.useMemo(()=>(u==null?void 0:u.filter(D=>{const _=s.toLowerCase();return D.service_number.toLowerCase().includes(_)||(D.work_order_number||"").toLowerCase().includes(_)||(D.company_name||"").toLowerCase().includes(_)}))||[],[s,u]),U=[{title:"İŠEmri",key:"work_order_number",width:130,render:(D,_)=>n.jsxs("div",{children:[n.jsx("div",{children:_.work_order_number||"-"}),n.jsx(Vn,{type:"secondary",style:{fontSize:12},children:_.service_number})]})},{title:"Firma",dataIndex:"company_name",key:"company_name",width:130,ellipsis:!0,render:D=>D||"-"},{title:"Hizmet / Rapor Türü",key:"scope_name",width:180,ellipsis:!0,render:(D,_)=>n.jsxs("div",{children:[n.jsx("div",{style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:vn(_.scope_name)}),n.jsx(Vn,{type:"secondary",style:{fontSize:12},children:_.scope_code||"-"})]})},{title:"Kapsam",key:"scope_category",width:90,render:(D,_)=>{const M=vr(_.scope_category);
1return n.jsx(ie,{color:M.color,children:_.scope_category_display||M.label})}},{title:"Plan",key:"planned_date",width:130,render:(D,_)=>{var M,b;return n.jsxs("div",{style:{whiteSpace:"nowrap"},children:[n.jsx("div",{children:_.planned_date?Z(_.planned_date).format("DD/MM/YYYY"):"-"}),n.jsxs(Vn,{type:"secondary",style:{fontSize:12},children:[((M=_.scheduled_start_time)==null?void 0:M.slice(0,5))||"--:--"," â ",((b=_.scheduled_end_time)==null?void 0:b.slice(0,5))||"--:--"]})]})}},{title:"AÅama",key:"current_stage",width:110,render:(D,_)=>n.jsx(ie,{color:dj[_.status]||"default",children:lc[_.current_stage||_.status]||Wp[_.status]})},{title:"Ãncelik",dataIndex:"priority",key:"priority",width:90,render:D=>n.jsx(ie,{color:uj[D]||"default",children:zr[D]||D})},{title:"Personel",dataIndex:"assigned_personnel_names",key:"assigned_personnel_names",width:140,ellipsis:!0,render:D=>D&&D.length>0?D.join(", "):"-"},{title:"İÅlemler",key:"action",width:120,fixed:"right",render:(D,_)=>n.jsxs(W,{size:"middle",children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>t(`/services/${_.id}`)}),z&&n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>t(`/services/${_.id}/edit`)}),z&&n.jsx(Ot,{title:"İŠemrini sil",description:"Bu iÅ emrini silmek istediÄinizden emin misiniz?",onConfirm:()=>g.mutate(_.id),okText:"Evet",cancelText:"Hayır",children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})})]})}],A=()=>{const D=(h==null?void 0:h.events)||[],_=l==="week"?Array.from({length:7},(b,I)=>c.startOf("week").add(I,"day")):Array.from({length:c.daysInMonth()},(b,I)=>c.startOf("month").add(I,"day")),M=_.reduce((b,I)=>(b[I.format("YYYY-MM-DD")]=D.filter(j=>Z(j.start).format("YYYY-MM-DD")===I.format("YYYY-MM-DD")),b),{});return n.jsxs("div",{children:[n.jsxs(W,{style:{marginBottom:16},children:[n.jsx(T,{onClick:()=>d(b=>b.subtract(1,l)),children:"Ãnceki"}),n.jsx(T,{onClick:()=>d(Z()),children:"Bugün"}),n.jsx(T,{onClick:()=>d(b=>b.add(1,l)),children:"Sonraki"}),n.jsx(Tn,{value:l,options:[{label:"Haftalık",value:"week"},{label:"Aylık",value:"month"}],onChange:b=>o(b)}),n.jsx(Vn,{strong:!0,children:l==="week"?`${c.startOf("week").format("DD MMM")} - ${c.endOf("week").format("DD MMM YYYY")}`:c.format("MMMM YYYY")})]}),n.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(7, minmax(0, 1fr))",gap:12,alignItems:"start"},children:_.map(b=>n.jsxs("div",{onDragOver:I=>I.preventDefault(),onDrop:I=>{const j=I.dataTransfer.getData("service-id");j&&v.mutate({id:j,data:{planned_date:b.format("YYYY-MM-DD")}})},style:{minHeight:180,border:"1px solid #f0f0f0",borderRadius:12,padding:12,background:b.isSame(Z(),"day")?"#f6ffed":"#fff"},children:[n.jsx("div",{style:{fontWeight:600,marginBottom:12},children:b.format("ddd DD")}),n.jsx(W,{direction:"vertical",style:{width:"100%"},children:(M[b.format("YYYY-MM-DD")]||[]).map(I=>{var j;return n.jsxs(H,{size:"small",draggable:!0,onDragStart:N=>{N.dataTransfer.setData("service-id",I.id)},onClick:()=>t(`/services/${I.id}`),style:{borderLeft:`4px solid ${Yu[I.stage]||"#1677ff"}`,cursor:"grab"},bodyStyle:{padding:10},children:[n.jsx("div",{style:{fontWeight:600},children:I.company_name}),n.jsx("div",{children:vn(I.scope_name)}),n.jsx(Vn,{type:"secondary",children:I.scope_code}),n.jsxs(Vn,{type:"secondary",children:[Z(I.start).format("HH:mm")," - ",Z(I.end).format("HH:mm")]}),n.jsx("br",{}),n.jsx(Vn,{type:"secondary",children:((j=I.assigned_personnel_names)==null?void 0:j.join(", "))||"Atama bekliyor"})]},I.id)})})]},b.format("YYYY-MM-DD")))})]})},w=()=>{const D=["PLANNED","ASSIGNED","DISPATCHED","ONSITE","COMPLETED","CANCELLED"];return n.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(6, minmax(220px, 1fr))",gap:16,overflowX:"auto"},children:D.map(_=>{var b;const M=p==null?void 0:p[_];return n.jsxs("div",{onDragOver:I=>I.preventDefault(),onDrop:I=>{const j=I.dataTransfer.getData("service-id");j&&S.mutate({id:j,targetStage:_})},style:{minHeight:280,background:"#fafafa",borderRadius:12,padding:12,borderTop:`4px solid ${Yu[_]||"#d9d9d9"}`},children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:12},children:[n.jsx(Vn,{strong:!0,children:(M==null?void 0:M.label)||lc[_]}),n.jsx(fi,{count:((b=M==null?void 0:M.items)==null?void 0:b.length)||0})]}),n.jsxs(W,{direction:"vertical",style:{width:"100%"},children:[((M==null?void 0:M.items)||[]).map(I=>{var j;return n.jsxs(H,{size:"small",draggable:!0,onDragStart:N=>N.dataTransfer.setData("service-id",I.id),onClick:()=>t(`/services/${I.id}`),style:{cursor:"grab"},bodyStyle:{padding:10},children:[n.jsx("div",{style:{fontWeight:600},children:I.company_name}),n.jsx("div",{children:vn(I.scope_name)}
1),n.jsx(ie,{color:vr(I.scope_category).color,children:I.scope_category_display||vr(I.scope_category).label}),n.jsx(Vn,{type:"secondary",children:I.planned_date?Z(I.planned_date).format("DD/MM/YYYY"):"-"}),n.jsx("br",{}),n.jsx(Vn,{type:"secondary",children:((j=I.assigned_personnel_names)==null?void 0:j.join(", "))||"Atama bekliyor"})]},I.id)}),(!(M!=null&&M.items)||M.items.length===0)&&n.jsx(ht,{image:ht.PRESENTED_IMAGE_SIMPLE,description:"BoÅ"})]})]},_)})})};return n.jsx(H,{title:"İŠEmirleri",extra:z?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>t("/services/new"),style:{background:"#1B5E8C"},children:"Yeni İŠEmri"}):null,children:n.jsxs(W,{direction:"vertical",size:16,style:{width:"100%"},children:[n.jsxs(W,{style:{width:"100%",justifyContent:"space-between"},children:[n.jsx(cj,{placeholder:"İŠemri no, hizmet no veya firma",allowClear:!0,onChange:D=>a(D.target.value),style:{width:320}}),n.jsx(Tn,{value:i,options:[{label:"Tablo",value:"table"},{label:"Takvim",value:"calendar"},{label:"Kanban",value:"kanban"}],onChange:D=>r({view:String(D)})})]}),(Y=f==null?void 0:f.items)!=null&&Y.length?n.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, minmax(0, 1fr))",gap:12},children:f.items.slice(0,4).map(D=>n.jsx(H,{size:"small",children:n.jsx(Ee,{title:D.personnel_name,value:D.service_count,suffix:"iÅ emri"})},D.personnel_id))}):null,i==="table"&&n.jsx(Ie,{columns:U,dataSource:P,rowKey:"id",loading:m||g.isPending,pagination:{pageSize:15},scroll:{x:1100}}),i==="calendar"&&A(),i==="kanban"&&n.jsx("div",{children:y?n.jsx(Vn,{children:"Yükleniyor..."}):w()})]})})},Vp="mks-form-draft:";function hj(t,e,r={}){const{intervalMs:i=5e3,skip:s=!1,serialize:a,deserialize:l}=r,o=`${Vp}${e}`,[c,d]=k.useState(!1),[u,m]=k.useState(null),h=k.useRef(!1);return k.useEffect(()=>{if(!s)try{const g=window.localStorage.getItem(o);if(!g)return;const v=JSON.parse(g);v&&v.values&&Object.keys(v.values).length>0&&(d(!0),m(v.savedAt))}catch{window.localStorage.removeItem(o)}},[s,o]),k.useEffect(()=>{if(s)return;const g=window.setInterval(()=>{try{const v=t.getFieldsValue(!0);if(!v||Object.keys(v).length===0||!Object.values(v).some(z=>z!=null&&z!==""&&!(Array.isArray(z)&&z.length===0)))return;const R={values:a?a(v):v,savedAt:Date.now()};window.localStorage.setItem(o,JSON.stringify(R))}catch{}},i);return()=>window.clearInterval(g)},[t,i,a,s,o]),{hasDraft:c,draftSavedAt:u,restore:()=>{try{const g=window.localStorage.getItem(o);if(!g)return;const v=JSON.parse(g),S=l?l(v.values):v.values;t.setFieldsValue(S),d(!1),h.current=!0}catch{}},discard:()=>{window.localStorage.removeItem(o),d(!1),h.current=!0},clear:()=>{window.localStorage.removeItem(o),d(!1)}}}function pj(t,e,r={}){const{intervalMs:i=5e3,skip:s=!1,isEmpty:a}=r,l=`${Vp}${t}`,[o,c]=k.useState(!1),[d,u]=k.useState(null),[m,h]=k.useState(null),p=k.useRef(e),y=k.useRef(a);p.current=e,y.current=a,k.useEffect(()=>{if(!s)try{const R=window.localStorage.getItem(l);if(!R)return;const z=JSON.parse(R);z&&z.values&&(c(!0),u(z.savedAt),h(z.values))}catch{window.localStorage.removeItem(l)}},[s,l]);const f=k.useCallback(R=>{if(s||o)return!1;try{const z=R??p.current();if(!z||y.current&&y.current(z))return!1;const P=Date.now(),U={values:z,savedAt:P};return window.localStorage.setItem(l,JSON.stringify(U)),u(P),!0}catch{return!1}},[o,s,l]);return k.useEffect(()=>{if(s)return;const R=window.setInterval(f,i);return()=>window.clearInterval(R)},[i,f,s]),{hasDraft:o,draftSavedAt:d,draftValue:m,accept:()=>{c(!1)},dismiss:()=>{window.localStorage.removeItem(l),c(!1),h(null)},clear:()=>{window.localStorage.removeItem(l),c(!1),h(null)},saveNow:f}}const Ct={getRequests:async()=>(await L.get("/requests/")).data.results,getRequest:async t=>(await L.get(`/requests/${t}/`)).data,createRequest:async t=>(await L.post("/requests/",t)).data,updateRequest:async(t,e)=>(await L.patch(`/requests/${t}/`,e)).data,deleteRequest:async t=>{await L.delete(`/requests/${t}/`)},evaluateRequest:async(t,e)=>{const r=e?{assigned_to:e}:{};return(await L.post(`/requests/${t}/evaluate/`,r)).data},createProposalFromRequest:async t=>(await L.post(`/requests/${t}/create-proposal/`)).data,getProposalDefaults:async()=>(await L.get("/proposals/defaults/")).data,getProposals:async()=>(await L.get("/proposals/")).data.results,getProposal:async t=>(await L.get(`/proposals/${t}/`)).data,createProposal:async t=>(await L.post("/proposals/",t)).data,updateProposal:async(t,e)=>(await L.patch(`/proposals/${t}/`,e)).data,deleteProposal:async t=>{await L.delete(`/proposals/${t}/`)},sendProposal:async t=>(await L.post(`/proposals/${t}/send/`)).data,reviseProposal:async(t,e)=>(await L.post(`/proposals/${t}/revise/`,e)).data,acceptProposal:async t=>(await L.post(`/proposals/${t}/accept/`)).data,rejectProposal:async(t,e)=>(await L.post(`/proposals/${t}/reject/`,{rejection_reason:e})).data,generateProposalPdf:async t=>(await L.post(`/proposals/${t}/generate-pdf/`)).data,duplicateProposal:async(t,e)=>(await L.post(`/proposals/${t}/duplicate/`,e||{})).data,convertProposalToService:async(t,e)=>(await L.post(`/proposals/${t}/convert-to-service/`,{planned_date:e})).data},Qp=()=>Re({queryKey:["service-requests"],queryFn:Ct.getRequests}),Xp=t=>Re({queryKey:["service-requests",t],queryFn:()=>
1Ct.getRequest(t),enabled:!!t}),fj=()=>{const t=ve();return ye({mutationFn:e=>Ct.createRequest(e),onSuccess:()=>{t.invalidateQueries({queryKey:["service-requests"]}),re.success("Talep kaydedildi.")},onError:e=>{ce(e,"Talep kaydedilemedi.")}})},gj=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Ct.updateRequest(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["service-requests"]}),t.invalidateQueries({queryKey:["service-requests",r.id]}),re.success("Talep güncellendi.")},onError:e=>{ce(e,"Talep güncellenemedi.")}})},yj=()=>{const t=ve();return ye({mutationFn:e=>Ct.deleteRequest(e),onSuccess:()=>{t.invalidateQueries({queryKey:["service-requests"]}),re.success("Talep silindi.")},onError:e=>{ce(e,"Talep silinemedi.")}})},xj=()=>{const t=ve();return ye({mutationFn:({id:e,assignedTo:r})=>Ct.evaluateRequest(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["service-requests"]}),t.invalidateQueries({queryKey:["service-requests",r.id]}),re.success("Talep deÄerlendirildi.")},onError:e=>{ce(e,"Talep deÄerlendirilemedi.")}})},vj=()=>{const t=ve();return ye({mutationFn:e=>Ct.createProposalFromRequest(e),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["service-requests"]}),t.invalidateQueries({queryKey:["service-requests",r]}),t.invalidateQueries({queryKey:["proposals"]}),re.success("Taslak teklif oluÅturuldu.")},onError:e=>{ce(e,"Taslak teklif oluÅturulamadı.")}})},bj=()=>Re({queryKey:["proposal-defaults"],queryFn:Ct.getProposalDefaults,staleTime:5*60*1e3}),Jc=()=>Re({queryKey:["proposals"],queryFn:Ct.getProposals}),Zp=t=>Re({queryKey:["proposals",t],queryFn:()=>Ct.getProposal(t),enabled:!!t}),_j=()=>{const t=ve();return ye({mutationFn:e=>Ct.createProposal(e),onSuccess:()=>{t.invalidateQueries({queryKey:["proposals"]}),re.success("Teklif oluÅturuldu.")},onError:e=>{ce(e,"Teklif oluÅturulamadı.")}})},jj=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Ct.updateProposal(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["proposals"]}),t.invalidateQueries({queryKey:["proposals",r.id]}),re.success("Teklif güncellendi.")},onError:e=>{ce(e,"Teklif güncellenemedi.")}})},kj=()=>{const t=ve();return ye({mutationFn:e=>Ct.deleteProposal(e),onSuccess:()=>{t.invalidateQueries({queryKey:["proposals"]}),re.success("Teklif silindi.")},onError:e=>{ce(e,"Teklif silinemedi.")}})},Sj=()=>{const t=ve();return ye({mutationFn:e=>Ct.sendProposal(e),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["proposals"]}),t.invalidateQueries({queryKey:["proposals",r]}),t.invalidateQueries({queryKey:["service-requests"]}),re.success("Teklif gönderildi.")},onError:e=>{ce(e,"Teklif gönderilemedi.")}})},Ej=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Ct.reviseProposal(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["proposals"]}),t.invalidateQueries({queryKey:["proposals",r.id]}),re.success("Yeni revizyon taslaÄı oluÅturuldu.")},onError:e=>{ce(e,"Revizyon oluÅturulamadı.")}})},wj=()=>{const t=ve();return ye({mutationFn:e=>Ct.acceptProposal(e),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["proposals"]}),t.invalidateQueries({queryKey:["proposals",r]}),t.invalidateQueries({queryKey:["service-requests"]}),re.success("Teklif kabul edildi.")},onError:e=>{ce(e,"Teklif kabul edilemedi.")}})},Cj=()=>{const t=ve();return ye({mutationFn:({id:e,rejectionReason:r})=>Ct.rejectProposal(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["proposals"]}),t.invalidateQueries({queryKey:["proposals",r.id]}),t.invalidateQueries({queryKey:["service-requests"]}),re.success("Teklif reddedildi.")},onError:e=>{ce(e,"Teklif reddedilemedi.")}})},Dj=()=>{const t=ve();return ye({mutationFn:e=>Ct.generateProposalPdf(e),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["proposals",r]}),re.success("Teklif PDF'i oluÅturuldu.")},onError:e=>{ce(e,"Teklif PDF'i oluÅturulamadı.")}})},Rj=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Ct.duplicateProposal(e,r),onSuccess:()=>{t.invalidateQueries({queryKey:["proposals"]}),re.success("Teklif kopyalandı.")},onError:e=>{ce(e,"Teklif kopyalanamadı.")}})},Ij=()=>{const t=ve();return ye({mutationFn:({id:e,plannedDate:r})=>Ct.convertProposalToService(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["proposals"]}),t.invalidateQueries({queryKey:["proposals",r.id]}),t.invalidateQueries({queryKey:["services"]}),re.success("Teklif hizmete dönüÅtürüldü.")},onError:e=>{ce(e,"Teklif hizmete dönüÅtürülemedi.")}})},_n={getVehicles:async()=>(await L.get("/vehicles/")).data.results,getVehicle:async t=>(await L.get(`/vehicles/${t}/`)).data,createVehicle:async t=>(await L.post("/vehicles/",t,{headers:{"Content-Type":"multipart/form-data"}})).data,updateVehicle:async(t,e)=>(await L.patch(`/vehicles/${t}/`,e,{headers:{"Content-Type":"multipart/form-data"}})).data,deleteVehicle:async t=>{await L.delete(`/vehicles/${t}/`)},getMaintenances:async t=>(await L.get(`/vehicles/${t}/maintenances/`)).data,createMaintenance:async(t,e)=>(await L.post(`/vehicles/${t}/maintenances/`,e,{headers:{"Content-Type":"multipart/form-data"}})).data,deleteMaintenance:async(t,e)=>{await L.delete(`/vehicles/${t}/maintenances/${e}/`)},getFuelLogs:async t=>(await L.get(`/vehicles/${t}/fuel-logs/`)).data,createFuelLog:async(t,e)=>(await L.post(`/vehicles/${t}/fuel-logs/`,e)).data,deleteFuelLog:async(t,e)=>{await L.delete(`/vehicles/${t}/fuel-logs/${e}/`)},getAssignmentLogs:async t=>(await L.get(`/vehicles/${t}/assignment-logs/`)).data,createAssignmentLog:async(t,e)=>(await L.post(`/vehicles/${t}/assignment-logs/`,e)).data,deleteAssignmentLog:async(t,e)=>{await L.delete(`/vehicles/${t}/assignment-logs/${e}/`)}},Cr=(t,e)=>{t.invalidateQueries({queryKey:["vehicles"]}
1),e&&(t.invalidateQueries({queryKey:["vehicles",e]}),t.invalidateQueries({queryKey:["vehicles",e,"maintenances"]}),t.invalidateQueries({queryKey:["vehicles",e,"fuel-logs"]}),t.invalidateQueries({queryKey:["vehicles",e,"assignment-logs"]})),t.invalidateQueries({queryKey:["services"]}),t.invalidateQueries({queryKey:["service-calendar"]}),t.invalidateQueries({queryKey:["service-kanban"]}),t.invalidateQueries({queryKey:["service-workload"]})},Jp=()=>Re({queryKey:["vehicles"],queryFn:_n.getVehicles}),ef=t=>Re({queryKey:["vehicles",t],queryFn:()=>_n.getVehicle(t),enabled:!!t}),Tj=t=>Re({queryKey:["vehicles",t,"maintenances"],queryFn:()=>_n.getMaintenances(t),enabled:!!t}),Aj=t=>Re({queryKey:["vehicles",t,"fuel-logs"],queryFn:()=>_n.getFuelLogs(t),enabled:!!t}),Mj=t=>Re({queryKey:["vehicles",t,"assignment-logs"],queryFn:()=>_n.getAssignmentLogs(t),enabled:!!t}),Nj=()=>{const t=ve();return ye({mutationFn:_n.createVehicle,onSuccess:e=>{Cr(t,e.id),re.success("Araç oluÅturuldu.")},onError:e=>{ce(e,"Araç oluÅturulamadı.")}})},Pj=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>_n.updateVehicle(e,r),onSuccess:e=>{Cr(t,e.id),re.success("Araç güncellendi.")},onError:e=>{ce(e,"Araç güncellenemedi.")}})},zj=()=>{const t=ve();return ye({mutationFn:_n.deleteVehicle,onSuccess:()=>{Cr(t),re.success("Araç silindi.")},onError:e=>{ce(e,"Araç silinemedi.")}})},Oj=()=>{const t=ve();return ye({mutationFn:({vehicleId:e,data:r})=>_n.createMaintenance(e,r),onSuccess:(e,r)=>{Cr(t,r.vehicleId),re.success("Bakım kaydı eklendi.")},onError:e=>{ce(e,"Bakım kaydı eklenemedi.")}})},Lj=()=>{const t=ve();return ye({mutationFn:({vehicleId:e,maintenanceId:r})=>_n.deleteMaintenance(e,r),onSuccess:(e,r)=>{Cr(t,r.vehicleId),re.success("Bakım kaydı silindi.")},onError:e=>{ce(e,"Bakım kaydı silinemedi.")}})},Fj=()=>{const t=ve();return ye({mutationFn:({vehicleId:e,data:r})=>_n.createFuelLog(e,r),onSuccess:(e,r)=>{Cr(t,r.vehicleId),re.success("Yakıt kaydı eklendi.")},onError:e=>{ce(e,"Yakıt kaydı eklenemedi.")}})},Bj=()=>{const t=ve();return ye({mutationFn:({vehicleId:e,fuelLogId:r})=>_n.deleteFuelLog(e,r),onSuccess:(e,r)=>{Cr(t,r.vehicleId),re.success("Yakıt kaydı silindi.")},onError:e=>{ce(e,"Yakıt kaydı silinemedi.")}})},Yj=()=>{const t=ve();return ye({mutationFn:({vehicleId:e,data:r})=>_n.createAssignmentLog(e,r),onSuccess:(e,r)=>{Cr(t,r.vehicleId),re.success("Kullanım kaydı eklendi.")},onError:e=>{ce(e,"Kullanım kaydı eklenemedi.")}})},Hj=()=>{const t=ve();return ye({mutationFn:({vehicleId:e,assignmentLogId:r})=>_n.deleteAssignmentLog(e,r),onSuccess:(e,r)=>{Cr(t,r.vehicleId),re.success("Kullanım kaydı silindi.")},onError:e=>{ce(e,"Kullanım kaydı silinemedi.")}})},{TextArea:ma}=G,Uj=[{value:"LOW",label:zr.LOW},{value:"NORMAL",label:zr.NORMAL},{value:"HIGH",label:zr.HIGH},{value:"URGENT",label:zr.URGENT}],tf=["MAKINE_MUHENDISI","ELEKTRIK_MUHENDISI","ELEKTRIK_ELEKTRONIK_MUHENDISI"],qj=["MAKINE_TEKNIKERI","ELEKTRIK_TEKNIKERI"],So=t=>!!t&&tf.includes(t.title),$j=[...tf,...qj],Hu=()=>{const{id:t}=jt(),e=Le(),[r]=x.useForm(),i=He(q=>q.user),s=(i==null?void 0:i.role)==="ADMIN"||(i==null?void 0:i.role)==="MANAGER",a=!!t&&t!=="new",l=hj(r,"service-new",{skip:a,intervalMs:5e3,serialize:q=>{const ae={...q};for(const ge of["planned_date","scheduled_start_time","scheduled_end_time"]){const Me=ae[ge];Me&&Z.isDayjs(Me)&&(ae[ge]=Me.toISOString())}return ae},deserialize:q=>{const ae={...q};for(const ge of["planned_date","scheduled_start_time","scheduled_end_time"]){const Me=ae[ge];typeof Me=="string"&&(ae[ge]=Z(Me))}return ae}}),{data:o,isLoading:c}=qp(a?t:""),{data:d=[],isLoading:u}=tr(),{data:m=[],isLoading:h}=Qs(),{data:p=[],isLoading:y}=Jc(),{data:f=[],isLoading:g}=qr(),{data:v=[],isLoading:S}=Jp(),{data:R=[],isLoading:z}=Yp({is_active:!0}),P=Y_(),U=H_(),[A,w]=k.useState([]),[Y,D]=k.useState(!1),_=x.useWatch("proposal",r),M=x.useWatch("company_id",r),b=x.useWatch("scope_ids",r)||[],I=x.useWatch("personnel_ids",r)||[],j=x.useWatch("planned_date",r),N=k.useMemo(()=>f.filter(q=>q.is_active),[f]),$=k.useMemo(()=>m.filter(q=>q.is_active),[m]),ue=k.useMemo(()=>N.filter(q=>b.includes(q.id)),[N,b]),oe=p.filter(q=>q.status==="ACCEPTED"),K=k.useMemo(()=>b.length?3:I.length?2:j&&(M||_)?1:0,[j,M,I.length,_,b.length]),fe=(q,ae)=>ae.every(ge=>{var Me;
1return(Me=q.scope_qualifications)==null?void 0:Me.some(ze=>{var ut;return ze.is_active&&(ze.scope===ge||((ut=ze.scope_details)==null?void 0:ut.id)===ge)})}),J=q=>ue.every(ae=>!ae.requires_engineer_title||ae.requires_engineer_title==="ANY"?!0:ae.requires_engineer_title==="ELEKTRIK"?["ELEKTRIK_MUHENDISI","ELEKTRIK_ELEKTRONIK_MUHENDISI"].includes(q.title):ae.requires_engineer_title==="MAKINE"?q.title==="MAKINE_MUHENDISI":!0),B=q=>{const ae=[];return $j.includes(q.title)||ae.push("Muayene personeli unvanı gerekli"),b.length&&!fe(q,b)&&ae.push("Seçilen kapsamların tamamında yetki yok"),So(q)&&b.length&&!J(q)&&ae.push("Kapsamın istediÄi mühendislik unvanı ile uyumlu deÄil"),{value:q.id,label:`${q.full_name} - ${q.title_display||q.title}${ae.length?` ⢠${ae[0]}`:""}`,disabled:ae.length>0}},he=$.map(q=>B(q)),de=k.useMemo(()=>{const q=N.filter(ge=>ge.kapsam_tipi==="elektrik"),ae=N.filter(ge=>ge.kapsam_tipi==="mekanik");return[{label:"Elektrik Kapsamları",options:q.map(ge=>({value:ge.id,label:`${ge.code} - ${vn(ge.name)}`}))},{label:"Mekanik Kapsamları",options:ae.map(ge=>({value:ge.id,label:`${ge.code} - ${vn(ge.name)}`}))}].filter(ge=>ge.options.length>0)},[N]),_e=async q=>{if(!q)return w([]),[];D(!0);try{const ae=await $n.getBranches(q);return w(ae),ae}finally{D(!1)}},De=async(q,ae)=>{const ge=d.find(ut=>ut.id===q),Me=await _e(q),ze=(ae==null?void 0:ae.presetBranchId)||(Me.length===1?Me[0].id:void 0);r.setFieldsValue({company_id:q,branch:ze,proposal:ae!=null&&ae.resetProposal?void 0:r.getFieldValue("proposal"),customer_contact_name:r.getFieldValue("customer_contact_name")||(ge==null?void 0:ge.authorized_person)||void 0,customer_contact_phone:r.getFieldValue("customer_contact_phone")||(ge==null?void 0:ge.authorized_person_phone)||(ge==null?void 0:ge.phone)||void 0})},Ce=async q=>{if(!q)return;const ae=await Ct.getProposal(q),ge=d.find(ze=>ze.id===ae.company),Me=Array.from(new Set((ae.items||[]).map(ze=>ze.scope).filter(Boolean)));if(ge&&await De(ge.id,{presetBranchId:ae.branch||void 0}),r.setFieldsValue({branch:ae.branch||void 0,scope_ids:Me,proposal:ae.id,notes:ae.notes||r.getFieldValue("notes"),special_requirements:ae.notes||r.getFieldValue("special_requirements")}),ae.service_request){const ze=await Ct.getRequest(ae.service_request);r.setFieldsValue({customer_contact_name:ze.contact_person,customer_contact_phone:ze.contact_phone})}};k.useEffect(()=>{var Me;if(!o||!d.length)return;const q=d.find(ze=>ze.name===o.company_name),ae=o.selected_scope_ids||((Me=o.service_scopes)==null?void 0:Me.map(ze=>ze.scope))||(o.scope?[o.scope]:[]),ge=(o.assignments||[]).map(ze=>ze.personnel);q&&_e(q.id).then(()=>{r.setFieldsValue({proposal:o.proposal||void 0,company_id:q.id,branch:o.branch,scope_ids:ae,personnel_ids:ge,planned_date:o.planned_date?Z(o.planned_date):null,scheduled_start_time:o.scheduled_start_time?Z(o.scheduled_start_time,"HH:mm:ss"):null,scheduled_end_time:o.scheduled_end_time?Z(o.scheduled_end_time,"HH:mm:ss"):null,priority:o.priority,vehicle:o.vehicle||void 0,travel_distance_km:o.travel_distance_km?Number(o.travel_distance_km):void 0,travel_time_minutes:o.travel_time_minutes??void 0,customer_contact_name:o.customer_contact_name||void 0,customer_contact_phone:o.customer_contact_phone||void 0,isg_katip_sozlesme_id:o.isg_katip_sozlesme_id||void 0,special_requirements:o.special_requirements||"",safety_notes:o.safety_notes||"",field_notes:o.field_notes||"",notes:o.notes||"",device_ids:o.device_ids||[]})})},[d,r,o]);const Ue=q=>{var lt;const ae=q.scope_ids||[],ge=q.personnel_ids||[],Me=[];if(ae.length||Me.push("En az bir hizmet/kapsam seçmelisiniz."),ge.length||Me.push("En az bir muayene personeli seçmelisiniz."),ge.forEach(Zt=>{const gt=$.find(mn=>mn.id===Zt);gt&&(fe(gt,ae)||Me.push(`${gt.full_name} seçilen kapsamların tamamında yetkili deÄil.`),So(gt)&&!J(gt)&&Me.push(`${gt.full_name} seçilen kapsamların mühendislik Åartlarını karÅılamıyor.`))}),Me.length){tc.error({message:"İŠemri kaydedilemedi",description:Me.join(" | "),placement:"topRight",duration:8});return}const ze=ge.map(Zt=>{const gt=$.find(On=>On.id===Zt),mn=So(gt)?"LEAD_ENGINEER":"TECHNICIAN";return{personnel_id:Zt,role:mn}}),ut={proposal:q.proposal||null,branch:q.branch||null,direct_company:q.branch?null:q.company_id,scope:ae[0],scope_ids:ae,assignments:ze,planned_date:(lt=q.planned_date)==null?void 0:lt.format("YYYY-MM-DD"),scheduled_start_time:q.scheduled_start_time?q.scheduled_start_time.format("HH:mm:ss"):null,scheduled_end_time:q.scheduled_end_time?q.scheduled_end_time.format("HH:mm:ss"):null,priority:q.priority,vehicle:q.vehicle||null,travel_distance_km:q.travel_distance_km??null,travel_time_minutes:q.travel_time_minutes??null,customer_contact_name:q.customer_contact_name||null,customer_contact_phone:q.customer_contact_phone||null,isg_
1katip_sozlesme_id:q.isg_katip_sozlesme_id,special_requirements:q.special_requirements||"",safety_notes:q.safety_notes||"",field_notes:q.field_notes||"",notes:q.notes||"",device_ids:q.device_ids||[]};if(a){U.mutate({id:t,data:ut},{onSuccess:()=>e(`/services/${t}`)});return}P.mutate(ut,{onSuccess:Zt=>{l.clear(),e(`/services/${Zt.id}`)}})},se=ue.map(q=>{var Me;const ae=(Me=o==null?void 0:o.service_scopes)==null?void 0:Me.find(ze=>ze.scope===q.id),ge=cr(q.kapsam_tipi);return n.jsx(H,{size:"small",style:{marginBottom:12},children:n.jsxs(W,{direction:"vertical",size:4,children:[n.jsxs(W,{wrap:!0,children:[n.jsx(ie,{color:ge.color,children:q.kapsam_tipi_display||ge.label}),n.jsx(ie,{children:q.code})]}),n.jsx("strong",{children:vn(q.name)}),n.jsx("div",{style:{color:"#8c8c8c"},children:ae!=null&&ae.report_id?`Rapor: ${ae.report_number||ae.report_id} ⢠${ae.report_status||"Taslak"}`:"Bu kapsam için ayrı rapor taslaÄı oluÅturulacak."})]})},q.id)});return n.jsxs(H,{title:a?"İŠEmri Düzenle":"Yeni İŠEmri",loading:a&&c,children:[n.jsxs(Ve,{open:l.hasDraft,title:"Yarım kalan iÅ emri taslaÄı var",okText:"Devam Et",cancelText:"Yeni BaÅlat",onOk:l.restore,onCancel:l.discard,closable:!1,maskClosable:!1,children:["Ãnceki oturumdan kaydedilmiÅ bir taslaÄınız bulundu",l.draftSavedAt?` (${Z(l.draftSavedAt).format("DD.MM.YYYY HH:mm")})`:"",". Devam etmek ister misiniz?"]}),n.jsxs(x,{form:r,layout:"vertical",onFinish:Ue,initialValues:{priority:"NORMAL",personnel_ids:[]},children:[!s&&n.jsx(be,{type:"warning",showIcon:!0,message:"İŠemri planlama ve düzenleme için MANAGER veya ADMIN yetkisi gereklidir.",style:{marginBottom:16}}),n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Her seçilen hizmet için ayrı bir rapor oluÅturulacaktır.",description:"Ãnce firma ve Åubeyi seçin, ardından iÅ emri açılıŠbilgilerini, muayene personelini, hizmet kapsamlarını ve ekipmanları belirleyin."}),n.jsx(qc,{current:K,responsive:!0,style:{marginBottom:24},items:[{title:"Firma Seçimi"},{title:"İŠEmri AçılıÅı"},{title:"Muayene Personeli"},{title:"Hizmet ve Ekipman"}]}),n.jsx(on,{orientation:"left",children:"1. Firma Seçimi"}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"proposal",label:"Kabul Edilen Teklif",children:n.jsx(pe,{allowClear:!0,showSearch:!0,loading:y,optionFilterProp:"label",options:oe.map(q=>({value:q.id,label:`${q.proposal_number} - ${q.company_name}`})),onChange:q=>{if(q){Ce(q);return}r.setFieldValue("proposal",void 0)},placeholder:"Varsa teklifi seçin"})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"company_id",label:"Firma",rules:[{required:!0,message:"Firma seçimi zorunludur."}],children:n.jsx(pe,{showSearch:!0,disabled:!!_,loading:u,optionFilterProp:"label",options:d.map(q=>({value:q.id,label:`${q.name}${q.sector?` ⢠${q.sector}`:""}`})),onChange:q=>void De(q,{resetProposal:!!_}),placeholder:"İŠemri açılacak firmayı seçin"})})}),n.jsx(C,{span:8,children:M&&!Y&&A.length===0?n.jsx(x.Item,{label:"Åube",children:n.jsx(be,{type:"info",showIcon:!0,message:"Åube tanımlı deÄil",description:"İŠemri doÄrudan firma adına oluÅturulacak. Sahada birden fazla lokasyon varsa firma ayarlarından Åube ekleyebilirsiniz."})}):n.jsx(x.Item,{name:"branch",label:"Åube",rules:A.length>0?[{required:!0,message:"Åube seçimi zorunludur."}]:[],children:n.jsx(pe,{showSearch:!0,allowClear:!0,loading:Y,optionFilterProp:"label",options:A.map(q=>({value:q.id,label:q.name})),placeholder:"Muayenenin yapılacaÄı Åubeyi seçin"})})})]}),n.jsx(on,{orientation:"left",children:"2. İŠEmri AçılıŠFormu"}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"planned_date",label:"Planlanan Tarih",rules:[{required:!0,message:"Tarih zorunludur."}],children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"scheduled_start_time",label:"BaÅlangıç Saati",children:n.jsx(rl,{style:{width:"100%"},format:"HH:mm"})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"scheduled_end_time",label:"BitiÅ Saati",children:n.jsx(rl,{style:{width:"100%"},format:"HH:mm"})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"priority",label:"Ãncelik",rules:[{required:!0,message:"Ãncelik zorunludur."}],children:n.jsx(pe,{options:Uj})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"isg_katip_sozlesme_id",label:"İSG-KATİP SözleÅme ID",children:n.jsx(G,{placeholder:"Manuel olarak girin"})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"vehicle",label:"Araç",children:n.jsx(pe,{allowClear:!0,showSearch:!0,loading:S,optionFilterProp:"label",options:v.filter(q=>q.is_active).map(q=>({value:q.id,label:`${q.plate_number} - ${q.brand} ${q.model}`}))})})}),n.jsx(C,{span:3,children:n.jsx(x.Item,{name:"travel_distance_km",label:"Mesafe (km)",children:n.jsx(Ze,{style:{width:"100%"},min:0})})}),n.jsx(C,{span:3,children:n.jsx(x.Item,{name:"travel_time_minutes",label:"Süre (dk)",children:n.jsx(Ze,{style:{width:"100%"},min:0})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"customer_contact_name",label:"Sahada BuluÅulacak KiÅi",children:n.jsx(G,{placeholder:"Firma sahadaki yetkilisi"})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"customer_contact_phone",label:"İletiÅim Telefonu",children:n.jsx(G,{placeholder:"İletiÅim telefonu"})})}),n.jsx(C,{span:18,children:n.jsx(x.Item,{name:"special_requirements",label:"Ãzel Gereksinimler",children:n.jsx(ma,{rows:2,placeholder:"Sahaya özel gereksinimleri girin"})})})]}),n.jsx(on,{orientation:"left",children:"3. Muayene Personeli Seçimi"}),n.jsx(me,{gutter:16,children:n.jsx(C,{span:24,children:n.jsx(x.Item,{name:"personnel_ids",label:"Muayene Personeli",rules:[{required:!0,message:"En az bir muayene personeli seçin."}],children:n.jsx(pe,{mode:"multiple",showSearch:!0,loading:h,optionFilterProp:"label",options:he,placeholder:"Mühendis ve/veya tekniker seÃ
1§in"})})})}),n.jsx(on,{orientation:"left",children:"4. Hizmet ve Ekipman"}),n.jsx(me,{gutter:16,children:n.jsx(C,{span:24,children:n.jsx(x.Item,{name:"scope_ids",label:"Hizmet / Kapsam Seçimi",rules:[{required:!0,message:"En az bir hizmet/kapsam seçin."}],children:n.jsx(pe,{mode:"multiple",showSearch:!0,loading:g,optionFilterProp:"label",options:de,placeholder:"Bir veya daha fazla hizmet/kapsam seçin"})})})}),n.jsx(me,{gutter:16,children:n.jsx(C,{span:24,children:n.jsx(x.Item,{name:"device_ids",label:n.jsxs("span",{children:["Kullanılacak Ãlçüm Cihazları",n.jsx("span",{style:{color:"#8c8c8c",marginLeft:8,fontSize:12,fontWeight:400},children:"(Rapora otomatik aktarılır)"})]}),extra:"Saha çalıÅmasında kullanılacak ölçüm cihazlarını seçin. Rapor hazırlanırken bu liste otomatik gelir.",children:n.jsx(pe,{mode:"multiple",showSearch:!0,loading:z,optionFilterProp:"label",placeholder:"Cihazları seçin",options:R.filter(q=>{if(!b.length)return!0;const ae=N.filter(Me=>b.includes(Me.id)),ge=new Set(ae.map(Me=>Me.kapsam_tipi).filter(Boolean));return q.kapsam_tipi==="ortak"||ge.has(q.kapsam_tipi)}).map(q=>{const ae=q.is_calibration_valid?"":" â kalibrasyon yok/geçti";return{value:q.id,label:`${q.name} ⢠${q.brand||"-"} ${q.model_name||""}${ae}`.trim()}})})})})}),ue.length>0&&n.jsx(H,{size:"small",title:"Seçilen Hizmetler",extra:n.jsx("span",{style:{color:"#8c8c8c"},children:"Her biri için ayrı rapor oluÅturulur"}),style:{marginBottom:16},children:se}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"safety_notes",label:"İSG Notları",children:n.jsx(ma,{rows:2,placeholder:"İŠgüvenliÄi notları..."})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"field_notes",label:"Saha Notları",children:n.jsx(ma,{rows:2,placeholder:"Saha operasyon notları..."})})})]}),n.jsx(x.Item,{name:"notes",label:"Genel Notlar",children:n.jsx(ma,{rows:2,placeholder:"Ek bilgiler..."})}),n.jsx(x.Item,{children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",disabled:!s,loading:P.isPending||U.isPending,style:{background:"#1B5E8C"},children:"Kaydet"}),n.jsx(T,{onClick:()=>e(a?`/services/${t}`:"/services"),children:"İptal"})]})})]})]})},{Text:Uu,Title:Kj}=ft,Gj={PLANNED:"default",ASSIGNED:"blue",IN_PROGRESS:"processing",COMPLETED:"success",CANCELLED:"error"},qu=["PLANNED","ASSIGNED","DISPATCHED","ONSITE","COMPLETED"],Wj={DRAFT:{color:"default",label:"Taslak"},REVIEW:{color:"processing",label:"İncelemede"},IN_REVIEW:{color:"processing",label:"İncelemede"},REVISION:{color:"warning",label:"Revizyon"},APPROVED:{color:"success",label:"Onaylandı"},APPROVED_UNSIGNED:{color:"lime",label:"Onaylı (İmzasız)"},SIGNED_ELECTRONIC:{color:"green",label:"E-İmzalı"},SIGNED_WET:{color:"green",label:"Islak İmzalı"}},Vj=t=>new Promise((e,r)=>{const i=new FileReader;i.readAsDataURL(t),i.onload=()=>e(String(i.result)),i.onerror=r}),Qj=()=>{const{id:t}=jt(),e=Le(),[r,i]=k.useState(!1),[s,a]=k.useState([]),[l,o]=k.useState(!1),[c,d]=k.useState(!1),[u]=x.useForm(),{data:m,isLoading:h,refetch:p}=qp(t||""),{data:y,isLoading:f}=Z_(t||""),{data:g,isLoading:v,refetch:S}=J_(t||""),{data:R}=ej(t||""),{data:z,isLoading:P}=tj(t||""),U=q_(),A=$_(),w=G_(),Y=W_(),D=K_(),_=Q_(),M=X_(),b=nj();if(k.useEffect(()=>{r&&(async()=>{if(m!=null&&m.branch){o(!0);try{const fe=await dt.getEquipment({branch:m.branch});a(fe||[])}catch(fe){ce(fe,"Ekipman listesi alınamadı.")}finally{o(!1)}}})()},[r,m==null?void 0:m.branch]),h)return n.jsx("div",{style:{textAlign:"center",padding:50},children:n.jsx(mt,{size:"large"})});if(!m)return n.jsx(be,{message:"İŠemri bulunamadı.",type:"error"});const I=Math.max(qu.indexOf(m.current_stage||"PLANNED"),0),j=vr(m.scope_category),N=m.service_scopes||[],$=n.jsxs(W,{wrap:!0,children:[m.current_stage==="PLANNED"||m.current_stage==="ASSIGNED"?n.jsx(T,{type:"primary",icon:n.jsx(Ml,{}),loading:U.isPending,onClick:()=>U.mutate(m.id),style:{background:"#1677ff"},children:"Yola Ãıkar"}):null,m.current_stage==="DISPATCHED"?n.jsx(T,{type:"primary",icon:n.jsx(xv,{}),loading:A.isPending,onClick:()=>A.mutate(m.id),style:{background:"#13c2c2"},children:"Sahaya Varıldı"}):null,m.current_stage==="ONSITE"?n.jsxs(n.Fragment,{children:[n.jsx(T,{icon:n.jsx(vv,{}),loading:w.isPending,onClick:()=>w.mutate({id:m.id}),children:"Duraklat"}),n.jsx(T,{icon:n.jsx(bv,{}),loading:Y.isPending,onClick:()=>Y.mutate({id:m.id}),children:"Devam Et"}),n.jsx(T,{type:"primary",icon:n.jsx(Dn,{}),loading:D.isPending,onClick:()=>D.mutate(m.id),style:{background:"#52c41a"},children:"Tamamla"})]}):null]}),ue=async()=>{const K=await u.validateFields();d(!0);try{await dt.createServiceEquipment(m.id,K),re.success("Ekipman iÅ emrine eklendi."),i(!1),u.resetFields(),await S(),await p()}catch(fe){ce(fe,"Ekipman eklenemedi.")}finally{d(!1)}},oe={maxCount:1,showUploadList:!1,beforeUpload:async K=>{const fe=await Vj(K);return M.mutate({id:m.id,imageBase64:fe}),!1}};return n.jsxs("div",{children:[n.jsxs("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center",flexWrap:"wrap",gap:8},children:[n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/services"),children:"Geri"}),n.jsxs(Kj,{level:4,style:{margin:0}
1,children:[m.work_order_number||m.service_number,n.jsx(ie,{color:Gj[m.status]||"default",style:{marginLeft:8,verticalAlign:"middle"},children:Wp[m.status]||m.status})]})]}),n.jsxs(W,{children:[$,n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>e(`/services/${t}/edit`),children:"Düzenle"})]})]}),n.jsx(H,{size:"small",style:{marginBottom:16},children:n.jsx(qc,{current:I,size:"small",items:qu.map(K=>({title:lc[K]}))})}),n.jsx(H,{title:n.jsxs(W,{children:[n.jsx(Cs,{}),n.jsxs("span",{children:["Raporlar (",N.length,")"]})]}),style:{marginBottom:16,border:"2px solid #1B5E8C"},headStyle:{background:"#f0f7ff",borderBottom:"1px solid #1B5E8C"},children:N.length===0?n.jsx(be,{type:"warning",showIcon:!0,message:"Bu iÅ emri için hizmet kapsamı tanımlanmamıÅ."}):n.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(320px, 1fr))",gap:12},children:N.map(K=>{var he;const fe=cr(K.scope_kapsam_tipi),J=Wj[K.report_status]||null,B=!!K.report_id;return n.jsxs(H,{size:"small",style:{border:B?"1px solid #d9d9d9":"1px dashed #1B5E8C",background:B?"#fff":"#fafcff"},children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:8},children:[n.jsxs("div",{children:[n.jsx(Uu,{strong:!0,style:{fontSize:14},children:vn(K.scope_name)}),n.jsxs("div",{style:{marginTop:4},children:[n.jsx(ie,{color:fe.color,style:{fontSize:11},children:((he=K.scope_detail)==null?void 0:he.kapsam_tipi_display)||fe.label}),n.jsx(ie,{style:{fontSize:11},children:K.scope_code||"-"})]})]}),J&&n.jsx(ie,{color:J.color,children:J.label}),!B&&n.jsx(ie,{children:"Hazırlanacak"})]}),n.jsx(T,{type:B?"default":"primary",block:!0,size:"middle",icon:B?n.jsx(at,{}):n.jsx(rt,{}),onClick:()=>e(B?`/reports/${K.report_id}`:`/reports/new?service_id=${m.id}&scope_id=${K.scope}`),style:B?void 0:{background:"#1B5E8C"},children:B?"Raporu Aç / Düzenle":"Rapor TaslaÄı OluÅtur"})]},K.id)})})}),n.jsx(H,{size:"small",style:{marginBottom:16},children:n.jsxs(F,{size:"small",column:{xxl:3,xl:3,lg:2,md:1,sm:1,xs:1},children:[n.jsx(F.Item,{label:"Firma",children:m.company_name||"-"}),n.jsx(F.Item,{label:"Åube",children:m.branch_name||"-"}),n.jsx(F.Item,{label:"Kapsam",children:n.jsx(ie,{color:j.color,children:m.scope_category_display||j.label})}),n.jsx(F.Item,{label:"Planlanan Tarih",children:m.planned_date?Z(m.planned_date).format("DD/MM/YYYY"):"-"}),n.jsxs(F.Item,{label:"Planlanan Saat",children:[(m.scheduled_start_time||"--:--").slice(0,5)," - ",(m.scheduled_end_time||"--:--").slice(0,5)]}),n.jsx(F.Item,{label:"Ãncelik",children:zr[m.priority]||m.priority}),n.jsx(F.Item,{label:"MüÅteri",children:m.customer_contact_name||"-"}),n.jsx(F.Item,{label:"Telefon",children:m.customer_contact_phone||"-"}),n.jsx(F.Item,{label:"İSG-KATİP ID",children:m.isg_katip_sozlesme_id||"-"})]})}),n.jsx(H,{children:n.jsx(Jn,{defaultActiveKey:"assignments",items:[{key:"assignments",label:"Personel",children:n.jsx(Ie,{dataSource:y,columns:[{title:"Personel",dataIndex:"personnel_name",key:"personnel_name",render:K=>K||"-"},{title:"Unvan",dataIndex:"personnel_title",key:"personnel_title",render:K=>K||"-"},{title:"Rol",dataIndex:"role",key:"role",render:K=>aj[K]||K},{title:"Muayene Rolü",dataIndex:"personel_rolu",key:"personel_rolu",render:(K,fe)=>lj[K]||fe.personel_rolu_display||K||"-"},{title:"Cihaz",dataIndex:"device_name",key:"device_name",render:K=>K||"-"}],rowKey:"id",pagination:!1,loading:f,size:"small"})},{key:"equipments",label:`Ekipmanlar (${(g||[]).length})`,children:n.jsxs("div",{children:[n.jsx("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:12},children:n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>i(!0),style:{background:"#1B5E8C"},children:"Ekipman Ekle"})}),n.jsx(Ie,{dataSource:g,columns:[{title:"Ekipman",dataIndex:"equipment_name",key:"equipment_name",render:K=>K||"-"},{title:"Tip",dataIndex:"equipment_type",key:"equipment_type",render:K=>K||"-"},{title:"Konum",dataIndex:"equipment_location",key:"equipment_location",render:K=>K||"-"},{title:"Son Kontrol",dataIndex:"last_inspection_date",key:"last_inspection_date",render:K=>K?Z(K).format("DD/MM/YYYY"):"-"},{title:"",key:"actions",width:50,render:(K,fe)=>n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{}),onClick:()=>Ve.confirm({title:"Ekipman kaldırılsın mı?",content:fe.equipment_name,okText:"Kaldır",okButtonProps:{danger:!0},cancelText:"İptal",onOk:async()=>{try{await dt.deleteServiceEquipment(m.id,fe.id),re.success("Ekipman kaldırıldı."),await S(),await p()}catch(J){ce(J,"Ekipman kaldırılamadı.")}}})})}],rowKey:"id",pagination:!1,loading:v,size:"small"})]})},{key:"timeline",label:"Zaman Ãizelgesi",children:n.jsx($c,{mode:"left",items:(R||[]).map(K=>({color:K.action==="COMPLETED"?"green":K.action==="CANCELLED"?"red":"blue",label:Z(K.timestamp).format("DD/MM/YYYY HH:mm"),children:n.jsxs("div",{children:[n.jsx("strong",{children:oj[K.action]||K.action}),n.jsx("div",{children:K.performed_by_name}),K.notes?n.jsx("div",{children:K.notes}):null]})}))})},{key:"checklist",label:"Kontrol Listesi",children:n.jsx(Ie,{dataSource:(z==null?void 0:z.items)||[],rowKey:"id",loading:P,pagination:!1,size:"small",columns:[{title:"",key:"is_checked",width:40,render:(K,fe)=>n.jsx(ai,{checked:fe.is_checked,onChange:J=>b.mutate({id:m.id,items:[{id:fe.id,is_checked:J.target.checked}]})})},{title:"Madde",dataIndex:"item_text",key:"item_text"},{title:"İÅaretleyen",dataIndex:"checked_by_name",key:"checked_by_name",render:K=>K||"-"},{title:"Tarih",dataIndex:"checked_at",key:"checked_at",render:K=>K?Z(K).format("DD/MM/YYYY HH:mm"):"-"}]})},{key:"customer",label:"MüÅteri",children:n.jsxs(W,{direction:"vertical",style:{width:"100%"},children:[n.jsxs(F,{size:"small",column:2,children:[n.jsx(F.Item,{label:"MüÅteri Puanı",children:n.jsx(ei,{allowClear:!1,value:m.satisfaction_rating||0,onChange:K=>_.mutate({id:m.id,rating:K})})}),n.jsx(F.Item,{label:"MüÅteri İmzası",children:m.customer_signature?n.jsx(T,{size:"small",href:m.customer_signature,target:"_blank",children:"İmzayı Gör"}):n.jsx(Uu,{type:"secondary",children:"Yüklenmedi"})})]}),n.jsx(An,{...oe,children:n.jsx(T,{icon:n.jsx(Kn,{}),loading:M.isPending,size:"small",children:"MüÅteri İmzası Yükle"})}),m.special_requirements&&n.jsx(be,{type:"info",message:"Ãzel Gereksinimler",description:m.special_requirements}),m.notes&&n.jsx(be,{type:"info",message:"Genel Notlar",description:m.notes})]})}]})}),n.jsx(Ve,{title:"Ekipman Ekle",open:r,onCancel:()=>{i(!1),u.resetFields()},onOk:()=>void ue(),confirmLoading:c,okText:"Ekle",cancelText:"İptal",children:n.jsxs(x,{form:u,layout:"vertical",children:[n.jsx(x.Item,{name:"equipment",label:"Ekipman",rules:[{required:!0,message:"Ekipman seçimi zorunludur."}],children:n.jsx(pe,{showSearch:!0,loading:l,optionFilterProp:"label",options:s.map(K=>({value:K.id,label:`${K.name}${K.scope_name?` ⢠${K.scope_name}`:""}`}))})}),n.jsx(x.Item,{name:"service_scope",label:"İliÅkili Hizmet Kapsamı",children:n.jsx(pe,{allowClear:!0,options:N.map(K=>({value:K.id,label:`${K.scope_code||"-"} - ${K.scope_name||"-"}`}))})})]})})]})},Hn={uploadPhotos:async(t,e,r=[],i)=>{const s=new FormData;return e.forEach((l,o)=>{s.append("photos",l);const c=r[o];c!=null&&c.caption&&s.append(`caption_${o}`,c.caption),c!=null&&c.finding_code&&s.append(`finding_code_${o}`,c.finding_code)}),(await L.post(`/reports/${t}/upload-photos/`,s,{headers:{"Content-Type":"multipart/form-data"},signal:i==null?void 0:i.signal,onUploadProgress:i==null?void 0:i.onUploadProgress,timeout:i==null?void 0:i.timeout})).data},getPhotos:async t=>(await L.get(`/reports/${t}/photos/`)).data,deletePhoto:async(t,e)=>{await L.delete(`/reports/${t}/photos/${e}/`)},reorderPhotos:async(t,e)=>(await L.patch(`/reports/${t}/reorder-photos/`,{order:e})).data,updatePhotoSettings:async(t,e,r)=>(await L.patch(`/reports/${t}/photos/${e}/settings/`,r)).data,estimatePdfSize:async t=>(await L.get(`/reports/${t}/estimate-pdf-size/`)).data,generateCompressedPdf:async(t,e,r)=>(await L.post(`/reports/${t}/generate-pdf-compressed/`,{compression_profile:e,photo_layout:r})).data},Xe={getReports:async()=>{const t=[],e=new Set;let r="/reports/";for(;r&&!e.has(r);){e.add(r);const i=await L.get(r);t.push(...i.data.results||[]),r=i.data.next}return t},getReport:async t=>(await L.get(`/reports/${t}/`)).data,createReport:async t=>(await L.post("/reports/",t)).data,updateReport:async(t,e)=>(await L.patch(`/reports/${t}/`,e)).data,deleteReport:async t=>{await L.delete(`/reports/${t}/`)},cloneReport:async(t,e)=>(await L.post(`/reports/${t}/clone/`,e||{})).data,verifyPublicReport:async t=>{const e=encodeURIComponent(t);return(await L.get(`/reports/verify/${e}/`)).data},submitForReview:async t=>(await L.post(`/reports/${t}/submit_for_review/`)).data,approveReport:async(t,e)=>{const r=e?{overall_result:e}:{};return(await L.post(`/reports/${t}/approve/`,r)).data},requestRevision:async(t,e)=>(await L.post(`/reports/${t}/request_revision/`,{notes:e})).data,refreshPrefill:async t=>(await L.post(`/reports/${t}/refresh_prefill/`)).data,getPhotos:async t=>Hn.getPhotos(t),uploadPhoto:async(t,e,r,i)=>(await Hn.uploadPhotos(t,[e],[{caption:r,finding_code:i}
1])).uploaded[0],deletePhoto:async(t,e)=>{await Hn.deletePhoto(t,e)},getRevisionLogs:async t=>(await L.get(`/reports/${t}/revisions/`)).data,getTemplates:async t=>(await L.get("/templates/",{params:t})).data.results,getTemplate:async t=>(await L.get(`/templates/${t}/`)).data,generatePdf:async t=>(await L.post(`/reports/${t}/generate_pdf/`)).data,downloadPdf:async(t,e="unsigned")=>(await L.get(`/reports/${t}/download_pdf/`,{params:{variant:e},responseType:"blob"})).data,bulkDownload:async t=>{const e=await L.post("/reports/bulk-download/",{report_ids:t},{responseType:"blob"});return{blob:e.data,includedCount:Number(e.headers["x-included-count"]||t.length),skippedCount:Number(e.headers["x-skipped-count"]||0)}},exportExcel:async()=>(await L.get("/reports/export/excel/",{responseType:"blob"})).data,exportEkipnet:async()=>(await L.get("/reports/export/ekipnet/",{responseType:"blob"})).data,previewPdf:async(t,e="unsigned")=>(await L.get(`/reports/${t}/preview_pdf/`,{params:{variant:e},responseType:"blob"})).data,getPdfStatus:async t=>(await L.get(`/reports/${t}/pdf_status/`)).data,getLastUsedDevices:async t=>(await L.get("/reports/last-used-devices/",{params:t?{scope:t}:{}})).data,estimatePdfSize:async t=>Hn.estimatePdfSize(t),generateCompressedPdf:async(t,e,r)=>Hn.generateCompressedPdf(t,e,r),verifySignatures:async t=>(await L.get(`/reports/${t}/verify_signatures/`)).data,confirmWetSignature:async(t,e)=>{const r=new FormData;return e&&r.append("scanned_file",e),(await L.post(`/reports/${t}/confirm_wet_signature/`,r,{headers:{"Content-Type":"multipart/form-data"}})).data},getSignatureStatus:async t=>(await L.get(`/reports/${t}/signature_status/`)).data,removeSignature:async t=>(await L.post(`/reports/${t}/remove_signature/`,{confirm:!0})).data,getCertificates:async()=>(await L.get("/esign/certificates/")).data.results,deleteCertificate:async t=>{await L.delete(`/esign/certificates/${t}/`)},bulkWetSignature:async(t,e)=>{const r=new FormData;return t.forEach(s=>r.append("report_ids",s)),e&&r.append("scanned_file",e),(await L.post("/reports/bulk-wet-signature/",r,{headers:{"Content-Type":"multipart/form-data"}})).data},getSignatureRecords:async t=>(await L.get("/esign/signatures/",{params:{report_id:t}})).data.results,createSigningSession:async t=>(await L.post("/esign/signing-sessions/",{report:t})).data},Nl=()=>Re({queryKey:["reports"],queryFn:Xe.getReports}),ed=t=>Re({queryKey:["reports",t],queryFn:()=>Xe.getReport(t),enabled:!!t}),Xj=()=>{const t=ve();return ye({mutationFn:e=>Xe.createReport(e),onSuccess:()=>{t.invalidateQueries({queryKey:["reports"]}),re.success("Rapor taslaÄı baÅarıyla oluÅturuldu.")},onError:e=>{ce(e,"Rapor taslaÄı oluÅturulamadı.")}})},Zj=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Xe.updateReport(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["reports"]}),t.invalidateQueries({queryKey:["reports",r.id]}),re.success("Rapor güncellendi.")},onError:e=>{ce(e,"Rapor güncellenemedi.")}})},Jj=()=>{const t=ve();return ye({mutationFn:e=>Xe.deleteReport(e),onSuccess:()=>{t.invalidateQueries({queryKey:["reports"]}),re.success("Rapor baÅarıyla silindi.")},onError:e=>{ce(e,"Rapor silinemedi.")}})},ek=()=>{const t=ve();return ye({mutationFn:e=>Xe.cloneReport(e.id,{equipment_id:e.equipment_id,report_date:e.report_date}),onSuccess:()=>{t.invalidateQueries({queryKey:["reports"]}),re.success("Rapor kopyalandı. Düzenleme ekranı açılıyor...")},onError:e=>{ce(e,"Rapor kopyalanamadı.")}})},tk=()=>{const t=ve();return ye({mutationFn:e=>Xe.submitForReview(e),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["reports"]}),t.invalidateQueries({queryKey:["reports",r]}),re.success("Rapor incelemeye gönderildi.")},onError:e=>{ce(e,"Rapor incelemeye gönderilemedi.")}})},nk=()=>{const t=ve();return ye({mutationFn:({id:e,overallResult:r})=>Xe.approveReport(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["reports"]}),t.invalidateQueries({queryKey:["reports",r.id]}),re.success("Rapor baÅarıyla onaylandı.")},onError:e=>{ce(e,"Rapor onaylanamadı.")}})},rk=()=>{const t=ve();return ye({mutationFn:({id:e,notes:r})=>Xe.requestRevision(e,r),onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["reports"]}),t.invalidateQueries({queryKey:["reports",r.id]}),re.success("Rapor revizyona gönderildi.")},onError:e=>{ce(e,"Rapor revizyona gönderilemedi.")}})},ik=()=>{const t=ve();return ye({mutationFn:({reportIds:e,scannedFile:r})=>Xe.bulkWetSignature(e,r),onSuccess:e=>{t.invalidateQueries({queryKey:["reports"]}),re.success(e.message||"Toplu ıslak imza uygulandı.")},onError:e=>{ce(e,"Toplu ıslak imza uygulanamadı.")}})},Pi={DRAFT:"Taslak",REVIEW:"Incelemede",IN_REVIEW:"İncelemede",REVISION:"Revizyon Bekliyor",REVISION_REQUESTED:"Revizyon İstendi",APPROVED:"Onaylandı",APPROVED_UNSIGNED:"Onaylandı, İmzasız",SIGNED_ELECTRONIC:"E-İmzalı",SIGNED_WET:"Islak İmzalı",CANCELLED:"İptal",REJECTED:"Reddedildi"},ll={UYGUNDUR:"Uygundur",EKSIK_GIDERILMEZSE_UYGUN_DEGIL:"Yazılı eksikler giderilmediÄi takdirde uygun deÄildir",EKSIK_GIDERILDIKTEN_SONRA_UYGUN:"Yazılı eksikler giderildikten s
1onra uygundur",UYGUN:"Uygun",UYGUNSUZ:"Uygunsuz",SARTLI_UYGUN:"Åartlı Uygun"},td={DRAFT:"default",REVIEW:"processing",IN_REVIEW:"processing",REVISION:"warning",REVISION_REQUESTED:"warning",APPROVED:"success",APPROVED_UNSIGNED:"cyan",SIGNED_ELECTRONIC:"green",SIGNED_WET:"gold",CANCELLED:"error",REJECTED:"error"},nd={UYGUNDUR:"success",EKSIK_GIDERILMEZSE_UYGUN_DEGIL:"error",EKSIK_GIDERILDIKTEN_SONRA_UYGUN:"warning",UYGUN:"success",UYGUNSUZ:"error",SARTLI_UYGUN:"warning"},sk={USB_FLASH_SIGN:"E-İmza (Flash/Token)",ISLAK_IMZA:"Islak İmza",PDF_CERTIFICATE:"PDF E-İmza",USB_LOCAL_SIGN:"USB / Lokal İmza",WET_SIGNATURE:"Islak İmza"},As={NONE:"İmzalanmamıÅ",USB_FLASH_SIGN:"E-İmza (Flash/Token)",ISLAK_IMZA:"Islak İmza",PDF_CERTIFICATE:"PDF E-İmza",USB_LOCAL_SIGN:"USB / Lokal İmza",WET_SIGNATURE:"Islak İmza"},oc={NONE:"default",USB_FLASH_SIGN:"blue",ISLAK_IMZA:"gold",PDF_CERTIFICATE:"green",USB_LOCAL_SIGN:"blue",WET_SIGNATURE:"gold"},{Search:ak}=G,lk=["APPROVED","APPROVED_UNSIGNED","SIGNED_ELECTRONIC","SIGNED_WET"],ok=["OWNER","ADMIN","MANAGER"],$u=["APPROVED","APPROVED_UNSIGNED","DRAFT","REVIEW","IN_REVIEW","REVISION"],Ku=["APPROVED","APPROVED_UNSIGNED"],Qr=t=>(e,r)=>(t(e)||"").localeCompare(t(r)||"","tr"),{Text:Tr,Title:ck}=ft,dk="Firma belirtilmemiÅ",uk=[{key:"elektrik",label:"Elektrik Tesisatı",shortLabel:"Elektrik",color:"#1B5E8C",filename:"Elektrik Tesisatı Gözle Kontrol ve Fonksyion Testleri Periyodik Kontrol Raporu .pdf"},{key:"topraklama",label:"Topraklama Tesisatı",shortLabel:"Topraklama",color:"#52c41a",filename:"Topraklama Tesisatı.pdf"},{key:"transformator",label:"Transformatör (1-36 kV)",shortLabel:"Transformatör",color:"#722ed1",filename:"Transformatör 1-36 kV Gözle Kontrol ve Topraklama Periyodik Kontrol Raporu .pdf"},{key:"yangin",label:"Yangın Algılama Sistemi",shortLabel:"Yangın",color:"#f5222d",filename:"Yangın Algılama ve Uyarı Sistemleri Periyodik Kontrol Raporu .pdf"},{key:"yildirim",label:"Yıldırımdan Korunma",shortLabel:"Yıldırım",color:"#fa8c16",filename:"Yıldırımdan Korunma Tesisatı Periyodik Kontrol Raporu (5).pdf"},{key:"jenerator",label:"Jeneratör",shortLabel:"Jeneratör",color:"#d46b08",filename:"Jeneratör Periyodik Kontrol Raporu.pdf"}],mk=()=>{const{data:t,isLoading:e}=Nl(),r=Jj(),i=ek(),s=He(b=>{var I;return(I=b.user)==null?void 0:I.role}),l=He(b=>b.isSuperuser)||ok.includes(s||""),o=b=>{i.mutate({id:b.id},{onSuccess:I=>{const j=I==null?void 0:I.id;j&&c(`/reports/${j}/edit`)}})},c=Le(),[d,u]=k.useState(""),[m,h]=k.useState([]),[p,y]=k.useState({}),[f,g]=k.useState(null),v=(b,I)=>{const j=window.URL.createObjectURL(b),N=document.createElement("a");N.href=j,N.download=I,document.body.appendChild(N),N.click(),N.remove(),window.URL.revokeObjectURL(j)},S=async()=>{try{const b=await Xe.exportExcel();v(b,"raporlar-export.csv")}catch(b){ce(b,"Excel export iÅlemi baÅarısız oldu")}},R=b=>b.replace(/[<>:"/\\|?*\u0000-\u001f]/g,"-").replace(/\s+/g," ").trim(),z=async b=>{const I=!!b.signed_pdf_file;g(b.id);try{const j=await Xe.downloadPdf(b.id,I?"signed":"unsigned"),N=I?b.download_filename_signed:b.download_filename;v(j,N||`${R(b.equipment_name||b.report_number)}${I?"_signed":""}.pdf`)}catch(j){ce(j,"Rapor PDF dosyası indirilemedi.")}finally{g(null)}},P=async(b,I,j)=>{if(I.length===0)return;const N=`${b.key}:${j}`;g(N);try{const $=await Xe.bulkDownload(I);v($.blob,`${R(b.companyName)}-raporlar.zip`),$.skippedCount>0?re.warning(`${$.includedCount} rapor indirildi; PDF'i henüz oluÅturulmamıŠ${$.skippedCount} rapor atlandı.`):re.success(`${$.includedCount} rapor ZIP olarak indirildi.`)}catch($){ce($,"Toplu rapor indirme iÅlemi baÅarısız oldu.")}finally{g(null)}},U=(b,I,j)=>{c("/reports/bulk-sign",{state:{reportIds:I,mode:j,companyName:b.companyName}})},A=k.useMemo(()=>{const b=d.trim().toLocaleLowerCase("tr-TR");return(t||[]).filter(I=>b?[I.report_number,I.company_name,I.equipment_name,I.scope_name,I.scope_category_display].some(j=>(j||"").toLocaleLowerCase("tr-TR").includes(b)):!0).sort((I,j)=>{const N=new Date(I.created_at||I.report_date||0).getTime();return new Date(j.created_at||j.report_date||0).getTime()-N})},[t,d]),w=k.useMemo(()=>{const b=new Map;return A.forEach(I=>{const j=(I.company_name||"").trim()||dk,N=j.toLocaleLowerCase("tr-TR"),$=b.get(N);$?$.reports.push(I):b.set(N,{key:N,companyName:j,reports:[I]})}),Array.from(b.values()).sort((I,j)=>I.companyName.localeCompare(j.companyName,"tr"))},[A]);k.useEffect(()=>{d.trim()&&h(w.map(b=>b.key))},[w,d]);const Y={total:(t==null?void 0:t.length)||0,draft:(t==null?void 0:t.filter(b=>b.status==="DRAFT"||b.status==="REVISION").length)||0,reviewing:(t==null?void 0:t.filter(b=>b.status==="REVIEW"||b.status==="IN_REVIEW").length)||0,approved:(t==null?void 0:t.filter(b=>["APPROVED","APPROVED_UNSIGNED","SIGNED_ELECTRONIC","SIGNED_WET"].includes(b.status)).length)||0,unsigned:(t==null?void 0:t.filter(b=>b.status==="APPROVED_UNSIGNED").length)||0},_=[{title:"Rapor No",dataIndex:"report_number",key:"report_number",width:125,sorter:Qr(b=>b.report_number),render:b=>n.jsx(Tr,{strong:!0,style:{fontFamily:"monospace",fontSize:12},children:b})},{title:"Firma",dataIndex:"company_name",key:"company_name",width:130,ellipsis:!0,sorter:Qr(b=>b.company_name),render:b=>b||"-"},{title:"Ekipman",dataIndex:"equipment_name",key:"equipment_name",width:120,ellipsis:!0,sorter:Qr(b=>b.equipment_name),render:b=>b||"-"},{title:"Rapor Türü",dataIndex:"scope_name",key:"scope_name",width:180,ellipsis:!0,sorter:Qr(b=>b.scope_category_display||b.scope_name),render:(b,I)=>{const j=vr(I.scope_category);return n.jsxs(W,{direction:"vertical",size:0,children:[n.jsx(Tr,{style:{fontSize:12},children:vn(b)}
1),n.jsx(ie,{color:j.color,style:{fontSize:10,marginTop:2},children:I.scope_category_display||j.label})]})}},{title:"Tarih",dataIndex:"report_date",key:"report_date",width:110,defaultSortOrder:"descend",sorter:(b,I)=>{const j=new Date(b.created_at||b.report_date||0).getTime(),N=new Date(I.created_at||I.report_date||0).getTime();return j-N},render:b=>b?Z(b).format("DD/MM/YYYY"):"-"},{title:"Sonuç",dataIndex:"overall_result",key:"overall_result",width:90,sorter:Qr(b=>ll[b.overall_result||""]||b.overall_result),render:b=>b?n.jsx(ie,{color:nd[b]||"default",style:{fontSize:11},children:ll[b]||b}):n.jsx(Tr,{type:"secondary",children:"â"})},{title:"Durum",dataIndex:"status",key:"status",width:110,sorter:Qr(b=>Pi[b.status]||b.status),render:b=>n.jsx(ie,{color:td[b]||"default",children:Pi[b]||b})},{title:"İmza",dataIndex:"signature_method",key:"signature_method",width:110,sorter:Qr(b=>As[b.signature_method||"NONE"]||"İmzasız"),render:b=>n.jsx(ie,{color:oc[b||"NONE"]||"default",style:{fontSize:11},children:As[b||"NONE"]||"İmzasız"})},{title:"İÅlemler",key:"action",width:120,fixed:"right",render:(b,I)=>{const j=lk.includes(I.status),N=j&&!l;return n.jsxs(W,{size:4,children:[n.jsx(Xn,{title:"Detay",children:n.jsx(T,{type:"text",size:"small",icon:n.jsx($t,{}),onClick:()=>c(`/reports/${I.id}`)})}),n.jsx(Xn,{title:I.pdf_file||I.signed_pdf_file?"PDF İndir":"PDF henüz oluÅturulmadı",children:n.jsx(T,{type:"text",size:"small",icon:n.jsx(cn,{}),disabled:!I.pdf_file&&!I.signed_pdf_file,loading:f===I.id,onClick:()=>void z(I)})}),n.jsx(Xn,{title:"Düzenle",children:n.jsx(T,{type:"text",size:"small",icon:n.jsx(at,{}),onClick:()=>c(`/reports/${I.id}/edit`),disabled:["APPROVED","APPROVED_UNSIGNED","SIGNED_ELECTRONIC","SIGNED_WET","IN_REVIEW","REVIEW"].includes(I.status)})}),n.jsx(Ot,{title:"Bu raporu kopyala",description:n.jsxs("div",{style:{maxWidth:280},children:["Aynı firma ve iÅ emri için ",n.jsx("b",{children:"yeni bir taslak rapor"})," oluÅturulur. DoldurulmuÅ kontrol/ölçüm verileri miras alınır. Sonra ekipman, tarih ve deÄerleri istediÄiniz gibi düzenleyebilirsiniz."]}),onConfirm:()=>o(I),okText:"Kopyala",cancelText:"Vazgeç",children:n.jsx(Xn,{title:"Kopyala (yeni taslak rapor)",children:n.jsx(T,{type:"text",size:"small",icon:n.jsx(Kc,{}),loading:i.isPending,style:{color:"#1B5E8C"}})})}),n.jsx(Ot,{title:j?"Onaylı/İmzalı Raporu Sil":"Raporu Sil",description:j?n.jsxs("div",{style:{maxWidth:300},children:["Bu ",n.jsx("b",{children:"onaylanmıÅ/imzalanmıÅ"})," bir rapordur. Silme iÅlemi",n.jsx("b",{children:" geri alınamaz"})," ve resmi kaydı kaldırır. Devam etmek istiyor musunuz?"]}):void 0,okText:"Evet",okButtonProps:{danger:!0},cancelText:"Hayır",onConfirm:()=>r.mutate(I.id),children:n.jsx(Xn,{title:N?"Onaylı/imzalı raporu silme yetkiniz yok":"Sil",children:n.jsx(T,{type:"text",size:"small",danger:!0,icon:n.jsx(_t,{}),disabled:N})})})]})}}].filter(b=>b.key!=="company_name"),M=w.length>0&&w.every(b=>m.includes(b.key));return n.jsxs("div",{children:[n.jsxs(me,{gutter:12,style:{marginBottom:16},children:[n.jsx(C,{flex:"1",children:n.jsx(H,{size:"small",style:{textAlign:"center",border:"1px solid #d9d9d9"},children:n.jsx(Ee,{title:"Toplam Rapor",value:Y.total,valueStyle:{fontSize:20}})})}),n.jsx(C,{flex:"1",children:n.jsx(H,{size:"small",style:{textAlign:"center",border:"1px solid #faad14",background:"#fffbe6"},children:n.jsx(Ee,{title:"Taslak / Revizyon",value:Y.draft,valueStyle:{color:"#d46b08",fontSize:20}})})}),n.jsx(C,{flex:"1",children:n.jsx(H,{size:"small",style:{textAlign:"center",border:"1px solid #1890ff",background:"#e6f4ff"},children:n.jsx(Ee,{title:"İncelemede",value:Y.reviewing,valueStyle:{color:"#0958d9",fontSize:20}})})}),n.jsx(C,{flex:"1",children:n.jsx(H,{size:"small",style:{textAlign:"center",border:"1px solid #52c41a",background:"#f6ffed"},children:n.jsx(Ee,{title:"Onaylı",value:Y.approved,valueStyle:{color:"#389e0d",fontSize:20}})})}),Y.unsigned>0&&n.jsx(C,{flex:"1",children:n.jsx(H,{size:"small",style:{textAlign:"center",border:"1px solid #d46b08",background:"#fff7e6",cursor:"pointer"},onClick:()=>c("/reports/bulk-sign"),children:n.jsx(Ee,{title:n.jsx("span",{style:{color:"#d46b08"},children:"İmza Bekleyen"}),value:Y.unsigned,valueStyle:{color:"#d46b08",fontSize:20},suffix:n.jsx(fi,{count:"İmzala",style:{backgroundColor:"#d46b08",fontSize:10}})})})})]}),n.jsx(H,{size:"small",title:n.jsxs(W,{children:[n.jsx(_r,{style:{color:"#cf1322"}}),n.jsx("span",{children:"Elektrik Raporu Taslakları â Hızlı EriÅim"})]}),style:{marginBottom:16,borderColor:"#ffccc7"},styles:{header:{background:"#fff1f0",borderBottom:"1px solid #ffccc7"}},children:n.jsxs(W,{wrap:!0,children:[uk.map(b=>n.jsx(T,{icon:n.jsx(_r,{}),size:"small",style:{borderColor:b.color,color:b.color},onClick:()=>{window.open(`/api/v1/reports/pdf-templates/${encodeURIComponent(b.filename)}/`,"_blank","noopener,noreferrer")},children:b.shortLabel},b.key)),n.jsx(Tr,{type:"secondary",style:{fontSize:12},children:"* Taslak PDF'leri iÅ emri oluÅtururken referans alın"})]})}),n.jsxs(H,{title:n.jsx(ck,{level:5,style:{margin:0},children:"Raporlar"}),extra:n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(_o,{}),onClick:()=>c("/reports/bulk-sign"),style:{borderColor:"#d46b08",color:"#d46b08",fontWeight:600},children:"Toplu E-İmza / Islak İmza"}),n.jsx(T,{icon:n.jsx(cn,{}),onClick:S,children:"Excel İndir"}),n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>c("/reports/new"),style:{background:"#1B5E8C"},size:"middle",children:"Rapor TaslaÄı OluÅtur"})]}),children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:12},message:n.jsxs(W,{size:4,children:[n.jsx("span",{children:"Raporlama akıÅı: İŠemri oluÅtur â Rapor taslaÄı oluÅtur â PDF üret â İmzala"}),n.jsx(T,{type:"link",size:"small",style:{padding:0},onClick:()=>c("/reports/bulk-sign"),icon:n.jsx(Dn,{}),children:"Toplu imzaya git"})]})}),n.jsxs("div",{style:{marginBottom:12,display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"},children:[n.jsx(ak,{placeholder:"Firma klasörü, rapor no, ekipman veya kapsam ile ara",allowClear:!0,onChange:b=>{const I=b.target.value;u(I),I.trim()||h([])},style:{width:320}}),n.jsxs(W,{children:[n.jsxs(Tr,{type:"secondary",children:[w.length," firma klasörü"]}),n.jsx(T,{size:"small",icon:M?n.jsx(bu,{}):n.jsx(tl,{}),disabled:w.length===0,onClick:()=>{h(M?[]:w.map(b=>b.key))},children:M?"Tümünü Kapat":"Tümünü Aç"})]})]}),n.jsx(mt,{spinning:e||r.isPending,children:w.length>0?n.jsx(bp,{activeKey:m,onChange:b=>{h((Array.isArray(b)?b:[b]).map(String))},expandIconPosition:"end",items:w.map(b=>{const I=m.includes(b.key),j=b.reports.reduce((N,$)=>{const ue=$.report_date||$.created_at;return ue?N?new Date(ue).getTime()>
1new Date(N).getTime()?ue:N:ue:N},null);return{key:b.key,label:n.jsxs(W,{size:10,wrap:!0,children:[I?n.jsx(tl,{style:{color:"#faad14",fontSize:20}}):n.jsx(bu,{style:{color:"#faad14",fontSize:20}}),n.jsx(Tr,{strong:!0,children:b.companyName}),n.jsx(fi,{count:b.reports.length,overflowCount:9999,style:{backgroundColor:"#1B5E8C"},title:`${b.reports.length} rapor`}),j&&n.jsxs(Tr,{type:"secondary",style:{fontSize:12},children:["Son rapor: ",Z(j).format("DD/MM/YYYY")]})]}),children:n.jsx(Ie,{columns:_,dataSource:b.reports,rowKey:"id",rowSelection:{preserveSelectedRowKeys:!0,selectedRowKeys:p[b.key]||[],getCheckboxProps:N=>({disabled:!N.pdf_file&&!N.signed_pdf_file,name:N.equipment_name||N.report_number}),onChange:N=>{y($=>({...$,[b.key]:N}))}},title:()=>{const N=(p[b.key]||[]).map(String),$=b.reports.filter(B=>B.pdf_file||B.signed_pdf_file),ue=b.reports.filter(B=>Ku.includes(B.status)&&!!B.pdf_file&&!B.signed_pdf_file),oe=b.reports.filter(B=>$u.includes(B.status)&&!!B.pdf_file),K=b.reports.filter(B=>N.includes(B.id)),fe=K.filter(B=>Ku.includes(B.status)&&!!B.pdf_file&&!B.signed_pdf_file).map(B=>B.id),J=K.filter(B=>$u.includes(B.status)&&!!B.pdf_file).map(B=>B.id);return n.jsxs(W,{wrap:!0,children:[n.jsx(Tr,{type:"secondary",children:N.length>0?`${N.length} rapor seçildi`:"İndirmek istediÄiniz raporları seçin"}),n.jsx(T,{size:"small",icon:n.jsx(cn,{}),disabled:N.length===0,loading:f===`${b.key}:selected`,onClick:()=>void P(b,N,"selected"),children:"Seçilenleri İndir"}),n.jsxs(T,{size:"small",type:"primary",ghost:!0,icon:n.jsx(cn,{}),disabled:$.length===0,loading:f===`${b.key}:all`,onClick:()=>void P(b,$.map(B=>B.id),"all"),children:["Tümünü İndir (",$.length,")"]}),n.jsx(Za,{disabled:N.length===0,menu:{items:[{key:"electronic",icon:n.jsx(qn,{}),label:`E-imzala (${fe.length})`,disabled:fe.length===0,onClick:()=>U(b,fe,"electronic")},{key:"wet",icon:n.jsx(Dn,{}),label:`Islak imzala (${J.length})`,disabled:J.length===0,onClick:()=>U(b,J,"wet")}]},children:n.jsx(T,{size:"small",icon:n.jsx(_o,{}),children:"Seçilenleri İmzala"})}),n.jsx(Za,{disabled:ue.length===0&&oe.length===0,menu:{items:[{key:"electronic",icon:n.jsx(qn,{}),label:`Tümünü e-imzala (${ue.length})`,disabled:ue.length===0,onClick:()=>U(b,ue.map(B=>B.id),"electronic")},{key:"wet",icon:n.jsx(Dn,{}),label:`Tümünü ıslak imzala (${oe.length})`,disabled:oe.length===0,onClick:()=>U(b,oe.map(B=>B.id),"wet")}]},children:n.jsx(T,{size:"small",icon:n.jsx(_o,{}),children:"Tümünü İmzala"})})]})},pagination:b.reports.length>10?{pageSize:10,showSizeChanger:!0,showTotal:N=>`${N} rapor`}:!1,scroll:{x:980},size:"small"})}})}):n.jsx(ht,{image:ht.PRESENTED_IMAGE_SIMPLE,description:d?"Aramayla eÅleÅen rapor bulunamadı":"Henüz rapor bulunmuyor"})})]})]})},hk={B:5,C:10,D:15,TMÅ:10,NH:10},bn=t=>{if(t==null||t===""||t==="-")return null;const e=typeof t=="number"?t:Number(String(t).trim().replace(",","."));return Number.isFinite(e)&&e>0?e:null},Ms=(t,e=3)=>{const r=10**e;return Math.round((t+Number.EPSILON)*r)/r},pk=(t,e,r,i=15)=>{const s=bn(t),a=String(e||"").trim().toLocaleUpperCase("tr-TR"),l=a==="TMS"?"TMÅ":a.startsWith("NH")?"NH":a,o={...hk,D:bn(i)??15};return s===null||o[l]===void 0?null:Ms(s*o[l],1)},fk=t=>{const e=bn(t);return e===null?null:Ms(230/e,1)},nf=t=>{const e=bn(t);if(e!==null)return e;const r=String(t||"").match(/\d+(?:[.,]\d+)?/g);return r!=null&&r.length?bn(r[r.length-1]):null},cc=(t,e,r,i,s,a=!0,l=50)=>{const o=String(t||"").trim().toLocaleUpperCase("tr-TR"),c=a?nf(r):null;if(c!==null)return Ms(50/(c/1e3),2);const d=o.startsWith("TN")||o==="IT"?230:o==="TT"?bn(l)??50:null;if(d===null)return null;const u=bn(e);return u===null?null:Ms(d/u,2)},gk=(t,e)=>{const r=bn(t),i=bn(e);return{safe:r!==null&&i!==null&&r<=i,ratio:r!==null&&i!==null?Ms(i/r,2):null}},yk=(t,e,r,i,s,a)=>{const l=bn(e);if(l===null)return"Not-3";const o=cc(t,r,void 0,void 0,void 0,!1);if(o!==null&&l<=o)return"Not-1";const c=nf(i),d=bn(s),u=bn(a),m=cc(t,r,c);return c!==null&&d!==null&&u!==null&&d<=c&&u<=200&&m!==null&&l<=m?"Not-4":"Not-2"},xk=(t,e,r)=>{const i=bn(e),s=bn(r),a=String(t||"").trim().toLocaleUpperCase("tr-TR");return i===null||s===null||!a?null:(a.includes("SELEKT")||/(^|[^A-Z])S([^A-Z]|$)/.test(a))&&i>=3*s?"Not-1":"Not-7"},{Text:ri}=ft,{TextArea:Gu}=G,{Option:sr}
1=pe,rf=t=>(t??"").replace(",",".").replace(/[^\d.-]/g,""),vk=t=>t.is_group_header===!0||!!t.group_title&&!t.code&&!t.description,bk=t=>{const e=String(t||"").toUpperCase();return e==="UD"||e==="FAIL"||e==="UYGUNSUZ"?"UD":e==="N"||e==="NA"||e==="UYGULANAMAZ"||e==="-"?"N":e==="G"||e==="NOT_EVALUATED"||e==="GORULEMEDI"?"G":"U"},sf=t=>{const e=t.match(/\s*\(([^)]+)\)\s*$/);return e?{cleanLabel:t.slice(0,e.index).trim(),unit:e[1].trim()}:{cleanLabel:t,unit:null}},_k=t=>t.unit?t.unit:sf(t.label||"").unit,tn=t=>t.key||t.name||t.id||"",af=t=>t.replace(/DİESEL/g,"DİZEL").replace(/KOTROL/g,"KONTROL").replace(/Anahtarlamali/g,"Anahtarlamalı").replace(/Bölümu/g,"Bölümü").replace(/Topraklamalari/g,"Topraklamaları").replace(/Is Guvenligi/g,"İŠGüvenliÄi"),jk=t=>af(t.title||t.label||""),cs=t=>af(t||""),kk=new Set(["no"]),Wu=100,Sk=t=>{const e=tn(t).trim().toLowerCase(),r=String(t.label||"").trim().toLowerCase();return kk.has(e)||r==="no"},rd=t=>(t.columns||[]).filter(e=>!Sk(e)),id=t=>{const e=Number(t.max_rows);return!Number.isFinite(e)||e<=0?Wu:Math.min(e,Wu)},Ek=t=>t.reduce((e,r)=>(e[tn(r)]=r.type==="number"?null:"",e),{}),Vu=(t,e)=>{const r={...e||{}};return t.sections.forEach(i=>{if(i.type!=="measurement_table")return;const s=tn(i);if(!s)return;const a=rd(i),l=id(i),o=Array.isArray(r[s])?r[s]:[];r[s]=o.slice(0,l).map((c={})=>{const d={};return a.forEach(u=>{const m=tn(u);d[m]=c[m]??(u.type==="number"?null:"");const h=`${m}__unit`;c[h]!==void 0&&c[h]!==null&&c[h]!==""&&(d[h]=String(c[h]))}),d})}),r},wk=t=>t.default_result!==void 0?t.default_result:t.evaluation_style==="status_select"?"":"PASS",Ck=t=>{const e={};return t.sections.forEach(r=>{const i=tn(r);if(i){if(r.type==="info"&&r.fields){const s={};r.fields.forEach(a=>{const l=tn(a);if(!l)return;let o=Cu();if(a.type==="text"||a.type==="textarea"||a.type==="select"||a.type==="radio")o=Yn(),a.required?o=o.min(1,"Gereklidir"):o=o.optional().nullable();else if(a.type==="multiselect"){const c=a.required?oa(Yn()).min(1,"En az bir seçim yapın"):oa(Yn());o=Eu(d=>typeof d=="string"?d.trim()?[d]:[]:d,c),a.required||(o=o.optional().nullable())}else a.type==="number"?(o=wu(),a.required||(o=o.optional().nullable())):a.type==="checkbox"?o=Jv().optional():a.type==="date"&&(o=Cu());s[l]=o}),e[i]=os(s)}if(r.type==="checklist"&&r.items){const s=oa(os({code:Yn(),result:Yn().optional().nullable(),tespit:Yn().optional().nullable(),value:Yn().optional().nullable(),note:Yn().optional().nullable()}));e[i]=s}if(r.type==="measurement_table"&&r.columns){const s=rd(r),a=id(r),l=Number(r.min_rows)>0?Number(r.min_rows):0,o={};s.forEach(d=>{const u=tn(d);u&&(o[u]=d.type==="number"?wu().optional().nullable():Eu(m=>m==null?m:String(m),Yn().optional().nullable()),d.type==="number"&&(o[`${u}__unit`]=Yn().optional().nullable()))});let c=oa(os(o).passthrough()).max(a,`En fazla ${a} satır ekleyebilirsiniz.`);l>0&&(c=c.min(l,`En az ${l} satır girilmelidir.`)),e[i]=c}r.type==="summary"&&(e[i]=os({general_result:Yn().min(1,"Sonuç seçilmelidir"),notes:Yn().optional().nullable()}))}}),os(e)},Dk=({section:t,schema:e,control:r,getValues:i,setValue:s,readOnly:a,measurementScrollPositionsRef:l})=>{var U;const o=tn(t),c=qt.useMemo(()=>rd(t),[t]),d=id(t),u=qt.useRef(null),{fields:m,append:h,remove:p,insert:y}=eb({control:r,name:o}),f=Du({control:r,name:o}),g=Du({control:r,name:"etiket_detay.Åebeke_tipi"}),v=!a&&m.length<d,S=c.some(A=>!!A.calculation);if(qt.useEffect(()=>{const A=new Set(c.map(w=>w.calculation).filter(Boolean));!A.size||!Array.isArray(f)||f.forEach((w={},Y)=>{var _;if(w._calculation_mode==="manual")return;let D=w.acma_akımı_ia;if(A.has("zpkr01_opening_current")){const M=w._d_curve_multiplier??((_=e.calculation_config)==null?void 0:_.zpkr01_d_curve_multiplier);D=pk(w.koruma_in,w.acma_eÄrisi,w.acma_akımı_ia,M),String(w.acma_eÄrisi||"").trim().toLocaleUpperCase("tr-TR")==="D"&&w._d_curve_multiplier==null&&s(`${o}.${Y}._d_curve_multiplier`,M??15,{shouldDirty:!0}),w.acma_akımı_ia!==D&&s(`${o}.${Y}.acma_akımı_ia`,D,{shouldDirty:!0})}if(A.has("zpkr01_fault_current")){const M=fk(w.zx_rx);w.kisa_devre_ik1!==M&&s(`${o}.${Y}.kisa_devre_ik1`,M,{shouldDirty:!0})}if(A.has("zpkr01_zs_ra_limit")||A.has("zpkr01_tt_touch_voltage_limit")){const M=cc(g,D,w.rcd_tipi_in,w.rcd_acma_akımı,w.rcd_acma_zamani);w.sınır_deÄer_zs_ra!==M&&s(`${o}.${Y}.sınır_deÄer_zs_ra`,M,{shouldDirty:!0});const{safe:b,ratio:I}=gk(w.zx_rx,M);w.guvenli!==b&&s(`${o}.${Y}.guvenli`,b,{shouldDirty:!0}),w.limit_zx_orani!==I&&s(`${o}.${Y}.limit_zx_orani`,I,{shouldDirty:!0})}if(A.has("zpkr01_result")){const M=yk(g,w.zx_rx,D,w.rcd_tipi_in,w.rcd_acma_akımı,w.rcd_acma_zamani);w.sonuç!==M&&s(`${o}.${Y}.sonuç`,M,{shouldDirty:!0})}if(A.has("zpkr01_selectivity_result")){const M=xk(w.rcd_tipi,w.acma_akımı_i
1dn,w.tüketim_idn);w.sonuç!==M&&s(`${o}.${Y}.sonuç`,M,{shouldDirty:!0})}})},[c,g,(U=e.calculation_config)==null?void 0:U.zpkr01_d_curve_multiplier,o,s,f]),qt.useLayoutEffect(()=>{const A=u.current;if(!A)return;const w=l.current[o]||0;A.scrollLeft=Math.min(w,Math.max(0,A.scrollWidth-A.clientWidth))},[m.length,o]),!c.length)return null;const R=A=>{if(m.length>=d)return;const w=i(`${o}.${A}`)||{},Y={};c.forEach(D=>{const _=tn(D);Y[_]=w[_]??(D.type==="number"?null:"")}),w._calculation_mode==="manual"&&(Y._calculation_mode="manual"),w._d_curve_multiplier!=null&&(Y._d_curve_multiplier=w._d_curve_multiplier),y(A+1,Y)},z=A=>{const w=u.current;w&&(l.current[o]=w.scrollLeft),typeof document<"u"&&document.activeElement instanceof HTMLElement&&document.activeElement.blur(),p(A)},P=64+c.length*110+(a?0:80);return n.jsxs("div",{ref:u,className:"dyn-tbl-scroll",onScroll:A=>{l.current[o]=A.currentTarget.scrollLeft},children:[n.jsxs("table",{className:`dyn-tbl${o==="dolaylı_dokunma_koruma"?" dyn-tbl-zpkr01-51":""}`,style:{width:"100%",minWidth:P,borderCollapse:"collapse",marginTop:16},children:[n.jsx("thead",{children:n.jsxs("tr",{className:"dyn-tbl-head",style:{textAlign:"left"},children:[n.jsx("th",{className:"dyn-tbl-cell",style:{width:"64px",textAlign:"center"},children:"No"}),c.map(A=>n.jsx("th",{className:"dyn-tbl-cell",style:{minWidth:110},children:A.label},tn(A))),!a&&n.jsx("th",{className:"dyn-tbl-cell dyn-tbl-action-cell",style:{width:"80px",minWidth:80},children:"İÅlem"})]})}),n.jsxs("tbody",{children:[m.length===0&&n.jsx("tr",{children:n.jsx("td",{colSpan:c.length+1+(a?0:1),className:"dyn-tbl-cell dyn-tbl-empty",style:{textAlign:"center"},children:"Henüz satır eklenmedi."})}),m.map((A,w)=>{var Y;return n.jsxs("tr",{className:"dyn-tbl-row",children:[n.jsx("td",{className:"dyn-tbl-cell",style:{textAlign:"center"},children:n.jsx(ri,{strong:!0,children:w+1})}),c.map(D=>{const _=tn(D),b=((f==null?void 0:f[w])||{})._calculation_mode==="manual",I=_k(D),j=D.unit_options,N=!!(j&&j.length>0),$=!N&&!I,ue=N||$;return n.jsx("td",{className:"dyn-tbl-cell",children:D.type==="number"?n.jsxs(W.Compact,{style:{width:"100%"},children:[n.jsx(Rt,{name:`${o}.${w}.${_}`,control:r,render:({field:oe})=>n.jsx(Ze,{...oe,value:oe.value??null,disabled:a||!!D.readOnly&&!b,controls:!1,precision:D.precision,style:{width:ue?"calc(100% - 60px)":"100%"},size:"small",placeholder:"â",parser:rf})}),N&&n.jsx(Rt,{name:`${o}.${w}.${_}__unit`,control:r,render:({field:oe})=>n.jsx(pe,{...oe,value:oe.value||j[0],onChange:oe.onChange,disabled:a,size:"small",style:{width:60},options:j.map(K=>({value:K,label:K}))})}),$&&n.jsx(Rt,{name:`${o}.${w}.${_}__unit`,control:r,render:({field:oe})=>n.jsx(G,{...oe,value:oe.value??"",onChange:oe.onChange,disabled:a,size:"small",style:{width:60,fontSize:11,textAlign:"center"},placeholder:"birim",title:"Birimi manuel yazabilirsiniz (örn: kΩ, MΩ, kV)"})})]}):D.type==="select"?n.jsx(Rt,{name:`${o}.${w}.${_}`,control:r,render:({field:oe})=>n.jsx(pe,{...oe,value:oe.value??void 0,onChange:oe.onChange,disabled:a||!!D.readOnly&&!b,size:"small",allowClear:!0,style:{width:"100%"},placeholder:"Seçin",options:(D.options||[]).map(K=>({value:K,label:K}))})}):n.jsx(Rt,{name:`${o}.${w}.${_}`,control:r,render:({field:oe})=>n.jsx(G,{...oe,value:oe.value??"",disabled:a||!!D.readOnly&&!b,size:"small"})})},_)}),!a&&n.jsxs("td",{className:"dyn-tbl-cell dyn-tbl-action-cell",style:{textAlign:"center",whiteSpace:"nowrap"},children:[S&&n.jsx(Tn,{size:"small",value:((Y=f==null?void 0:f[w])==null?void 0:Y._calculation_mode)==="manual"?"manual":"auto",options:[{label:"Oto",value:"auto"},{label:"Manuel",value:"manual"}],onChange:D=>s(`${o}.${w}._calculation_mode`,D,{shouldDirty:!0}),title:"Otomatik hesaplama veya manuel deÄer giriÅi",style:{marginBottom:4}}),n.jsxs("div",{children:[n.jsx(T,{type:"text",icon:n.jsx(Kc,{}),onClick:()=>R(w),disabled:!v,size:"small",title:"Satırı kopyala",style:{color:"#1890ff"}}),n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{}),onClick:()=>z(w),size:"small",title:"Satırı sil"})]})]})]},A.id)})]})]}),!a&&n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,marginTop:8,flexWrap:"wrap"},children:[n.jsx(T,{type:"dashed",onClick:()=>h(Ek(c)),icon:n.jsx(rt,{}),disabled:!v,children:"Satır Ekle"}),n.jsxs(ri,{type:"secondary",children:[m.length,"/",d," satır"]})]})]})},lf=({schema:t,initialValues:e,onSubmit:r,onValuesChange:i,readOnly:s=!1,loading:a=!1,extraActions:l})=>{const o=qt.useMemo(()=>Ck(t),[t]),{control:c,getValues:d,setValue:u,watch:m,formState:{errors:h}}=Xv({resolver:Zv(o),defaultValues:e||{}}),p=qt.useRef({}),y=qt.useCallback(()=>{r(Vu(t,d()))},[d,r,t]);qt.useEffect(()=>{if(!i)return;const R=m(z=>{i(Vu(t,z))});return()=>R.unsubscribe()},[i,t,m]);const f=R=>{if(!R.fields)return null;const z=tn(R);return n.jsx(me,{gutter:16,children:R.fields.map(P=>{var w,Y,D;const U=tn(P),A=`${z}.${U}`;return n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{label:P.label,required:P.required,validateStatus:(w=h==null?void 0:h[z])!=null&&w[U]?"error":"",help:(D=(Y=h==null?void 0:h[z])==null?void 0:Y[U])==null?void 0:D.message,children:n.jsx(Rt,{name:A,control:c,render:({field:_})=>{var M,b,I;switch(P.type){case"text":return n.jsx(G,{..._,value:_.value??"",disabled:s,placeholder:P.placeholder});case"textarea":return n.jsx(Gu,{..._,value:_.value??"",disabled:s,rows:3,placeholder:P.placeholder});case"number":{const j=P.unit||sf(P.label||"").unit;return n.jsx(Ze,{..._,value:_.value??null,disabled:s,style:{width:"100%"},placeholder:P.placeholder,addonAfter:j||void 0,parser:rf})}case"select":return n.jsx(pe,{..._,disabled:s,placeholder:P.placeholder,allowClear:!0,children:(M=P.options)==null?void 0:M.map(j=>typeof j=="string"?n.jsx(sr,{value:j,children:j},j):n.jsx(sr,{value:j.value,children:j.label},j.value))});case"radio":return n.jsx(_s.Group,{value:_.value??void 0,onChange:j=>_.onChange(j.target.value),disabled:s,children:n.jsx(W,{wrap:!0,children:(b=P.options)==null?void 0:b.map(j=>typeof j=="string"?n.jsx(_s,{value:j,children:j},j):n.jsx(_s,{value:j.value,children:j.label},j.value))})});case"multiselect":{const j=Array.isArray(_.value)?_.value:_.value?[_.value]:[];return n.jsx(pe,{..._,mode:"multiple",allowClear:!0,value:j,disabled:s,placeholder:P.placeholder,children:(I=P.options)==null?void 0:I.map(N=>typeof N=="string"?n.jsx(sr,{value:N,children:N},N):n.jsx(sr,{value:N.value,children:N.label},N.value))})}case"date":return n.jsx(We,{disabled:s,style:{width:"100%"},format:"YYYY-MM-DD",value:_.value?Z(_.value):null,onChange:(j,N)=>_.onChange(N)});case"checkbox":return n.jsx(ai,{checked:_.value,onChange:j=>_.onChange(j.target.checked),disabled:s,children:P.label});default:return n.jsx(G,{..._,value:_.value??"",disabled:s})}}})})},U)})})},g=R=>{if(!R.items)return null;const z=tn(R);let P=-1;const U=R.items.map((w,Y)=>vk(w)?{kind:"group",item:w,key:`grp-${Y}`}:(P+=1,{kind:"item",item:w,index:P,key:w.code||`item-${P}`})),A=(w,Y)=>(w&&w.length?w:Y).map(_=>({value:_,label:_==="P"?n.jsx("span",{style:{color:"#15803d",fontWeight:700},children:"â"}):_==="UD"?n.jsx("span",{style:{color:"#b91c1c",fontWeight:700},children:_}):_==="U"||_==="DD"||_==="TY"||_==="ÃA"||_==="TE"?n.jsx("span",{style:{color:"#15803d",fontWeight:700},children:_}):_}));if(R.evaluation_style==="jenerator"){const w=U.filter(Y=>Y.kind==="item");return n.jsx("div",{style:{overflowX:"auto"},children:n.jsxs("table",{className:"dyn-tbl",style:{width:"100%",minWidth:920,borderCollapse:"collapse",marginTop:16},children:[n.jsx("thead",{children:n.jsxs("tr",{className:"dyn-tbl-head",style:{textAlign:"left"},children:[n.jsx("th",{className:"dyn-tbl-cell",style:{width:72,textAlign:"center"},children:"Sıra No"}),n.jsx("th",{className:"dyn-tbl-cell",children:"Kontrol Açıklaması"}),n.jsx("th",{className:"dyn-tbl-cell",style:{width:120,textAlign:"center"},children:"Tespit"}),n.jsx("th",{className:"dyn-tbl-cell",style:{width:120,textAlign:"center"},children:"Sonuç"}),n.jsx("th",{className:"dyn-tbl-cell",style:{width:180},children:"Not"})]})}),n.jsx("tbody",{children:w.map(Y=>{const D=`${z}.${Y.index}`,_=Y.item,M=A(_.tespit_options||R.tespit_options,["P","-"]),b=A(_.result_options||R.result_options,["U","UD","DD","TY","ÃA","TE"]);return n.jsxs("tr",{className:"dyn-tbl-row",children:[n.jsx(Rt,{name:`${D}.code`,control:c,defaultValue:_.code,render:()=>n.jsx("td",{style:{display:"none"}})}),n.jsx("td",{className:"dyn-tbl-cell",style:{textAlign:"center"},children:n.jsx(ri,{strong:!0,children:Y.index+1})}),n.jsx("td",{className:"dyn-tbl-cell",children:cs(_.description)}),n.jsx("td",{className:"dyn-tbl-cell",style:{textAlign:"center"},children:n.jsx(Rt,{name:`${D}.tespit`,control:c,defaultValue:_.default_tespit||"",render:({field:I})=>
1n.jsx(pe,{...I,value:I.value??_.default_tespit??void 0,onChange:I.onChange,allowClear:!0,disabled:s,size:"small",style:{width:"100%"},options:M})})}),n.jsx("td",{className:"dyn-tbl-cell",style:{textAlign:"center"},children:n.jsx(Rt,{name:`${D}.result`,control:c,defaultValue:_.default_result||"",render:({field:I})=>n.jsx(pe,{...I,value:I.value??_.default_result??void 0,onChange:I.onChange,allowClear:!0,disabled:s,size:"small",style:{width:"100%"},options:b})})}),n.jsx("td",{className:"dyn-tbl-cell",children:n.jsx(Rt,{name:`${D}.note`,control:c,render:({field:I})=>n.jsx(G,{...I,value:I.value??"",disabled:s,size:"small"})})})]},Y.key)})})]})})}if(R.evaluation_style==="tick_cross"||R.evaluation_style==="two_column"||R.evaluation_style==="u_ud_ug"||R.evaluation_style==="status_select"){const w=R.evaluation_style==="two_column",Y=R.evaluation_style==="u_ud_ug",D=R.evaluation_style==="status_select",_=w?[{label:n.jsx("span",{style:{color:"#15803d",fontWeight:600},children:"Uygun"}),value:"PASS"},{label:n.jsx("span",{style:{color:"#b91c1c",fontWeight:600},children:"Uygun DeÄildir"}),value:"FAIL"},{label:n.jsx("span",{style:{color:"#475569",fontWeight:600},children:"-"}),value:"NA"}]:Y?[{label:n.jsx("span",{style:{color:"#15803d",fontWeight:700},children:"U â Uygun"}),value:"U"},{label:n.jsx("span",{style:{color:"#b91c1c",fontWeight:700},children:"UD â Uygun DeÄil"}),value:"UD"},{label:n.jsx("span",{style:{color:"#475569",fontWeight:700},children:"N â Uygulaması Yok"}),value:"N"},{label:n.jsx("span",{style:{color:"#475569",fontWeight:700},children:"G â Görülemedi"}),value:"G"}]:D?[{label:n.jsx("span",{style:{color:"#15803d",fontWeight:600},children:"Uygundur"}),value:"PASS"},{label:n.jsx("span",{style:{color:"#b91c1c",fontWeight:600},children:"Uygun DeÄildir"}),value:"FAIL"},{label:n.jsx("span",{style:{color:"#475569",fontWeight:600},children:"-"}),value:"NA"}]:[{label:n.jsx("span",{style:{color:"#15803d",fontWeight:700,fontSize:16},children:"â"}),value:"PASS"},{label:n.jsx("span",{style:{color:"#b91c1c",fontWeight:700,fontSize:16},children:"â"}),value:"FAIL"}],M=Y?"U":wk(R),b=U.filter(N=>N.kind==="item"),I=b.length,j=N=>{const $=N||"";u(`${z}.${I}.result`,$,{shouldDirty:!0}),b.forEach(ue=>{u(`${z}.${ue.index}.result`,$,{shouldDirty:!0})})};return n.jsxs("div",{style:{overflowX:"auto"},children:[R.section_result_control&&n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:8,marginBottom:8,flexWrap:"wrap"},children:[n.jsx(ri,{strong:!0,children:"Toplu DeÄerlendirme"}),n.jsx(Rt,{name:`${z}.${I}.code`,control:c,defaultValue:"__section_result",render:()=>n.jsx("span",{style:{display:"none"}})}),n.jsx(Rt,{name:`${z}.${I}.result`,control:c,defaultValue:"",render:({field:N})=>n.jsx(pe,{value:N.value||void 0,onChange:$=>{N.onChange($||""),j($)},onClear:()=>{N.onChange(""),j("")},allowClear:!0,disabled:s,style:{width:220},placeholder:"Seçim yok",options:[{value:"PASS",label:"Uygundur"},{value:"FAIL",label:"Uygun DeÄildir"},{value:"NA",label:"-"}]})})]}),n.jsxs("table",{className:"dyn-tbl",style:{width:"100%",borderCollapse:"collapse",marginTop:16},children:[n.jsx("thead",{children:n.jsxs("tr",{className:"dyn-tbl-head",style:{textAlign:"left"},children:[n.jsx("th",{className:"dyn-tbl-cell",style:{width:"8%"},children:"No"}),n.jsx("th",{className:"dyn-tbl-cell",style:{width:"67%"},children:"Kontrol Kriteri"}),n.jsx("th",{className:"dyn-tbl-cell",style:{width:"25%",textAlign:"center"},children:"DeÄerlendirme"})]})}),n.jsx("tbody",{children:U.map(N=>{if(N.kind==="group")return n.jsx("tr",{className:"dyn-tbl-group",children:n.jsx("td",{className:"dyn-tbl-cell",colSpan:3,style:{fontWeight:700,background:"rgba(245,124,0,0.08)"},children:cs(N.item.group_title||N.item.description)})},N.key);const $=`${z}.${N.index}`,ue=N.item;return n.jsxs("tr",{className:"dyn-tbl-row",children:[n.jsx(Rt,{name:`${$}.code`,control:c,defaultValue:ue.code,render:()=>n.jsx("td",{style:{display:"none"}})}),n.jsx("td",{className:"dyn-tbl-cell",style:{textAlign:"center"},children:n.jsx(ri,{strong:!0,children:N.index+1})}),n.jsx("td",{className:"dyn-tbl-cell",children:cs(ue.description)}),n.jsx("td",{className:"dyn-tbl-cell",style:{textAlign:"center"},children:ue.value_field?n.jsx(Rt,{name:`${$}.value`,control:c,render:({field:oe})=>n.jsx(G,{...oe,value:oe.value??"",disabled:s,size:"small",placeholder:"DeÄer"})}):n.jsx(Rt,{name:`${$}.result`,control:c,defaultValue:M,render:({field:oe})=>n.jsx(Tn,{value:Y?bk(oe.value):oe.value??M,onChange:oe.onChange,disabled:s,options:_})})})]},N.key)})})]})]})}return n.jsx("div",{style:{overflowX:"auto"},children:n.jsxs("table",{className:"dyn-tbl",style:{width:"100%",borderCollapse:"collapse",marginTop:16},children:[n.jsx("thead",{children:n.jsxs("tr",{className:"dyn-tbl-head",style:{textAlign:"left"},children:[n.jsx("th",{className:"dyn-tbl-cell",style:{width:"10%"},children:"Kod"}),n.jsx("th",{className:"dyn-tbl-cell",style:{width:"40%"},children:"Açıklama"}),n.jsx("th",{className:"dyn-tbl-cell",style:{width:"15%"},children:"Uygunluk"}),n.jsx("th",{className:"dyn-tbl-cell",style:{width:"15%"},children:"DeÄer"}),n.jsx("th",{className:"dyn-tbl-cell",style:{width:"20%"},children:"Not/Açıklama"})]})}),n.jsx("tbody",{children:U.map(w=>{if(w.kind==="group")return n.jsx("tr",{className:"dyn-tbl-group",children:n.jsx("td",{className:"dyn-tbl-cell",colSpan:5,style:{fontWeight:700,background:"rgba(245,124,0,0.08)"},children:cs(w.item.group_title||w.item.description)})},w.key);const Y=`${z}.${w.index}`,D=w.item;return n.jsxs("tr",{className:"dyn-tbl-row",children:[n.jsx(Rt,{name:`${Y}.code`,control:c,defaultValue:D.code,render:()=>n.jsx("td",{style:{display:"none"}})}),n.jsx("td",{className:"dyn-tbl-cell",children:n.jsx(ri,{strong:!0,children:D.code})}),n.jsx("td",{className:"dyn-tbl-cell",children:cs(D.description)}),n.jsx("td",{className:"dyn-tbl-cell",children:n.jsx(Rt,{name:`${Y}.result`,control:c,defaultValue:"PASS",render:({field:_})=>n.jsxs(pe,{..._,disabled:s,style:{width:"100%"},size:"small",children:[n.jsx(sr,{value:"PASS",style:{color:"green"},children:"Uygun"}),n.jsx(sr,{value:"FAIL",style:{color:"red"},children:"Uygunsuz"}),n.jsx(sr,{value:"NOT_EVALUATED",children:"DeÄerlendirilmedi"}),n.jsx(sr,{value:"NA",children:"Uygulanamaz"})]})})}),n.jsx("td",{className:"dyn-tbl-cell",children:n.jsx(Rt,{name:`${Y}.value`,control:c,render:({field:_})=>n.jsx(G,{..._,value:_.value??"",disabled:s,size:"small",placeholder:"Ãlçüm vb."})})}),n.jsx("td",{style:{padding:"8px"},children:n.jsx(Rt,{name:`${Y}.note`,control:c,render:({field:_})=>n.jsx(G,{..._,value:_.value??"",disabled:s,size:"small",placeholder:"Gerekliyse not"})})})]},w.key)})})]})})},v=R=>{var P;const z=tn(R);return n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:24,children:n.jsx(x.Item,{label:"Genel Sonuç",validateStatus:(P=h==null?void 0:h[z])!=null&&P.general_result?"error":"",children:n.jsx(Rt,{name:`${z}.general_result`,control:c,render:({field:U})=>n.jsxs(pe,{...U,disabled:s,style:{width:250},children:[n.jsx(sr,{value:"PASS",children:"Uygundur"}),n.jsx(sr,{value:"FAIL",children:"Uygun DeÄildir"})]})})})}
1),n.jsx(C,{span:24,children:n.jsx(x.Item,{label:"Genel DeÄerlendirme / Notlar",children:n.jsx(Rt,{name:`${z}.notes`,control:c,render:({field:U})=>n.jsx(Gu,{...U,disabled:s,rows:4,placeholder:"Raporun sonuna eklenecek genel deÄerlendirme metni..."})})})})]})},S=h&&Object.keys(h).length>0;return n.jsxs(x,{layout:"vertical",onFinish:y,children:[S&&n.jsx(be,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"Formda doÄrulama hatası var",description:"AÅaÄıdaki bölümlerde iÅaretli alanları kontrol edip tekrar deneyin.",closable:!0}),t.sections.map(R=>n.jsxs(H,{title:jk(R),style:{marginBottom:24},type:"inner",children:[R.type==="info"&&f(R),R.type==="checklist"&&g(R),R.type==="measurement_table"&&n.jsx(Dk,{section:R,schema:t,control:c,getValues:d,setValue:u,readOnly:s,measurementScrollPositionsRef:p}),R.type==="summary"&&v(R)]},tn(R))),!s&&n.jsx(x.Item,{children:n.jsxs(W,{children:[l,n.jsx(T,{type:"primary",htmlType:"button",size:"large",loading:a,onClick:y,style:{background:"#1B5E8C"},children:"TaslaÄı Kaydet"}),n.jsx(ri,{type:"secondary",children:"Eksik alanlar taslak kaydını engellemez."})]})})]})};var Qu=!1,ii,dc,uc,Ya,Ha,of,Ua,mc,hc,pc,cf,fc,gc,df,uf;function fn(){if(!Qu){Qu=!0;var t=navigator.userAgent,e=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Ice
1weasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(t),r=/(Mac OS X)|(Windows)|(Linux)/.exec(t);if(fc=/\b(iPhone|iP[ao]d)/.exec(t),gc=/\b(iP[ao]d)/.exec(t),pc=/Android/i.exec(t),df=/FBAN\/\w+;/i.exec(t),uf=/Mobile/i.exec(t),cf=!!/Win64/.exec(t),e){ii=e[1]?parseFloat(e[1]):e[5]?parseFloat(e[5]):NaN,ii&&document&&document.documentMode&&(ii=document.documentMode);var i=/(?:Trident\/(\d+.\d+))/.exec(t);of=i?parseFloat(i[1])+4:ii,dc=e[2]?parseFloat(e[2]):NaN,uc=e[3]?parseFloat(e[3]):NaN,Ya=e[4]?parseFloat(e[4]):NaN,Ya?(e=/(?:Chrome\/(\d+\.\d+))/.exec(t),Ha=e&&e[1]?parseFloat(e[1]):NaN):Ha=NaN}else ii=dc=uc=Ha=Ya=NaN;if(r){if(r[1]){var s=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(t);Ua=s?parseFloat(s[1].replace("_",".")):!0}else Ua=!1;mc=!!r[2],hc=!!r[3]}else Ua=mc=hc=!1}}var yc={ie:function(){return fn()||ii},ieCompatibilityMode:function(){return fn()||of>ii},ie64:function(){return yc.ie()&&cf},firefox:function(){return fn()||dc},opera:function(){return fn()||uc},webkit:function(){return fn()||Ya},safari:function(){return yc.webkit()},chrome:function(){return fn()||Ha},windows:function(){return fn()||mc},osx:function(){return fn()||Ua},linux:function(){return fn()||hc},iphone:function(){return fn()||fc},mobile:function(){return fn()||fc||gc||pc||uf},nativeApp:function(){return fn()||df},android:function(){return fn()||pc},ipad:function(){return fn()||gc}},Rk=yc,Ik=!!(typeof window<"u"&&window.document&&window.document.createElement),Tk={canUseDOM:Ik},Ak=Tk,mf=Ak,hf;mf.canUseDOM&&(hf=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);/** 2 * Checks if an event is supported in the current execution environment. 3 * 4 * NOTE: This will not work correctly for non-generic events such as `change`, 5 * `reset`, `load`, `error`, and `select`. 6 * 7 * Borrows from Modernizr. 8 * 9 * @param {string} eventNameSuffix Event name, e.g. "click". 10 * @param {?boolean} capture Check if the capture phase is supported. 11 * @return {boolean} True if the event is supported. 12 * @internal 13 * @license Modernizr 3.0.0pre (Custom Build) | MIT 14 */function Mk(t,e){if(!mf.canUseDOM||e&&!("addEventListener"in document))return!1;var r="on"+t,i=r in document;if(!i){var s=document.createElement("div");s.setAttribute(r,"return;"),i=typeof s[r]=="function"}return!i&&hf&&t==="wheel"&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}var Nk=Mk,Pk=Rk,zk=Nk,Xu=10,Zu=40,Ju=800;function pf(t){var e=0,r=0,i=0,s=0;return"detail"in t&&(r=t.detail),"wheelDelta"in t&&(r=-t.wheelDelta/120),"wheelDeltaY"in t&&(r=-t.wheelDeltaY/120),"wheelDeltaX"in t&&(e=-t.wheelDeltaX/120),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=r,r=0),i=e*Xu,s=r*Xu,"deltaY"in t&&(s=t.deltaY),"deltaX"in t&&(i=t.deltaX),(i||s)&&t.deltaMode&&(t.deltaMode==1?(i*=Zu,s*=Zu):(i*=Ju,s*=Ju)),i&&!e&&(e=i<1?-1:1),s&&!r&&(r=s<1?-1:1),{spinX:e,spinY:r,pixelX:i,pixelY:s}}pf.getEventType=function(){return Pk.firefox()?"DOMMouseScroll":zk("wheel")?"wheel":"mousewheel"};var Ok=pf,Lk=Ok;const Fk=Zx(Lk);function Ns(t){"@babel/helpers - typeof";return Ns=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ns(t)}function Bk(t,e){if(Ns(t)!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var i=r.call(t,e);if(Ns(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Yk(t){var e=Bk(t,"string");return Ns(e)=="symbol"?e:e+""}function Hk(t,e,r){return(e=Yk(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function em(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable})),r.push.apply(r,i)}return r}function Bt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};
14e%2?em(Object(r),!0).forEach(function(i){Hk(t,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):em(Object(r)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(r,i))})}return t}function Uk(t,e,r,i,s,a=0){const{width:l,height:o}=Yi(t,e,a),c=Math.min(l,r),d=Math.min(o,i);return c>d*s?{width:d*s,height:d}:{width:c,height:c/s}}function qk(t){return t.width>t.height?t.width/t.naturalWidth:t.height/t.naturalHeight}function ds(t,e,r,i,s=0){const{width:a,height:l}=Yi(e.width,e.height,s);return{x:tm(t.x,a,r.width,i),y:tm(t.y,l,r.height,i)}}function tm(t,e,r,i){const s=Math.abs(e*i/2-r/2);return Pl(t,-s,s)}function nm(t,e){return Math.sqrt(Math.pow(t.y-e.y,2)+Math.pow(t.x-e.x,2))}function rm(t,e){return Math.atan2(e.y-t.y,e.x-t.x)*180/Math.PI}function $k(t,e,r,i,s,a=0,l=!0){const o=l?Kk:Gk,c=Yi(e.width,e.height,a),d=Yi(e.naturalWidth,e.naturalHeight,a),u={x:o(100,((c.width-r.width/s)/2-t.x/s)/c.width*100),y:o(100,((c.height-r.height/s)/2-t.y/s)/c.height*100),width:o(100,r.width/c.width*100/s),height:o(100,r.height/c.height*100/s)},m=Math.round(o(d.width,u.width*d.width/100)),h=Math.round(o(d.height,u.height*d.height/100)),p=d.width>=d.height*i?{width:Math.round(h*i),height:h}:{width:m,height:Math.round(m/i)};return{croppedAreaPercentages:u,croppedAreaPixels:Bt(Bt({},p),{},{x:Math.round(o(d.width-p.width,u.x*d.width/100)),y:Math.round(o(d.height-p.height,u.y*d.height/100))})}}function Kk(t,e){return Math.min(t,Math.max(0,e))}function Gk(t,e){return e}function Wk(t,e,r,i,s,a){const l=Yi(e.width,e.height,r),o=Pl(i.width/l.width*(100/t.width),s,a);return{crop:{x:o*l.width/2-i.width/2-l.width*o*(t.x/100),y:o*l.height/2-i.height/2-l.height*o*(t.y/100)},zoom:o}}function Vk(t,e,r){const i=qk(e);return r.height>r.width?r.height/(t.height*i):r.width/(t.width*i)}function Qk(t,e,r=0,i,s,a){const l=Yi(e.naturalWidth,e.naturalHeight,r),o=Pl(Vk(t,e,i),s,a),c=i.height>i.width?i.height/t.height:i.width/t.width;return{crop:{x:((l.width-t.width)/2-t.x)*c,y:((l.height-t.height)/2-t.y)*c},zoom:o}}function im(t,e){return{x:(e.x+t.x)/2,y:(e.y+t.y)/2}}function Xk(t){return t*Math.PI/180}function Yi(t,e,r){const i=Xk(r);return{width:Math.abs(Math.cos(i)*t)+Math.abs(Math.sin(i)*e),height:Math.abs(Math.sin(i)*t)+Math.abs(Math.cos(i)*e)}}function Pl(t,e,r){return Math.min(Math.max(t,e),r)}function ha(...t){return t.filter(e=>typeof e=="string"&&e.length>0).join(" ").trim()}var Zk=`.reactEasyCrop_Container { 15 position: absolute; 16 top: 0; 17 left: 0; 18 right: 0; 19 bottom: 0; 20 overflow: hidden; 21 user-select: none; 22 touch-action: none; 23 cursor: move; 24 display: flex; 25 justify-content: center; 26 align-items: center; 27} 28 29.reactEasyCrop_Image, 30.reactEasyCrop_Video { 31 will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */ 32 max-width: unset; /* prevent global img/video reset rules from constraining the cropper media */ 33} 34 35.reactEasyCrop_Contain { 36 max-width: 100%; 37 max-height: 100%; 38 margin: auto; 39 position: absolute; 40 top: 0; 41 bottom: 0; 42 left: 0; 43 right: 0; 44} 45.reactEasyCrop_Cover_Horizontal { 46 width: 100%; 47 height: auto; 48} 49.reactEasyCrop_Cover_Vertical { 50 width: auto; 51 height: 100%; 52} 53 54.reactEasyCrop_CropArea { 55 position: absolute; 56 left: 50%; 57 top: 50%; 58 transform: translate(-50%, -50%); 59 border: 1px solid rgba(255, 255, 255, 0.5); 60 box-sizing: border-box; 61 box-shadow: 0 0 0 9999em; 62 color: rgba(0, 0, 0, 0.5); 63 overflow: hidden; 64} 65 66.reactEasyCrop_CropAreaRound { 67 border-radius: 50%; 68} 69 70.reactEasyCrop_CropAreaGrid::before { 71 content: ' '; 72 box-sizing: border-box; 73 position: absolute; 74 border: 1px solid rgba(255, 255, 255, 0.5); 75 top: 0; 76 bottom: 0; 77 left: 33.33%; 78 right: 33.33%; 79 border-top: 0; 80 border-bottom: 0; 81} 82 83.reactEasyCrop_CropAreaGrid::after { 84 content: ' '; 85 box-sizing: border-box; 86 position: absolute; 87 border: 1px solid rgba(255, 255, 255, 0.5); 88 top: 33.33%; 89 bottom: 33.33%; 90 left: 0; 91 right: 0; 92 border-left: 0; 93 border-right: 0; 94} 95`;const Jk=1,eS=3,tS=1;var zl=class Qn extends k.Component{constructor(...e){super(...e),this.cropperRef=k.createRef(),this.imageRef=k.createRef(),this.videoRef=k.createRef(),this.containerPosition={x:0,y:0}
95,this.containerRef=null,this.styleRef=null,this.containerRect=null,this.mediaSize={width:0,height:0,naturalWidth:0,naturalHeight:0},this.dragStartPosition={x:0,y:0},this.dragStartCrop={x:0,y:0},this.gestureZoomStart=0,this.gestureRotationStart=0,this.isTouching=!1,this.lastPinchDistance=0,this.lastPinchRotation=0,this.rafDragTimeout=null,this.rafPinchTimeout=null,this.wheelTimer=null,this.currentDoc=typeof document<"u"?document:null,this.currentWindow=typeof window<"u"?window:null,this.resizeObserver=null,this.previousCropSize=null,this.isInitialized=!1,this.state={cropSize:null,hasWheelJustStarted:!1,mediaObjectFit:void 0},this.initResizeObserver=()=>{if(typeof window.ResizeObserver>"u"||!this.containerRef)return;let r=!0;this.resizeObserver=new window.ResizeObserver(i=>{if(r){r=!1;return}this.computeSizes()}),this.resizeObserver.observe(this.containerRef)},this.preventZoomSafari=r=>r.preventDefault(),this.cleanEvents=()=>{this.currentDoc&&(this.currentDoc.removeEventListener("mousemove",this.onMouseMove),this.currentDoc.removeEventListener("mouseup",this.onDragStopped),this.currentDoc.removeEventListener("touchmove",this.onTouchMove),this.currentDoc.removeEventListener("touchend",this.onDragStopped),this.currentDoc.removeEventListener("gesturechange",this.onGestureChange),this.currentDoc.removeEventListener("gestureend",this.onGestureEnd),this.currentDoc.removeEventListener("scroll",this.onScroll))},this.clearScrollEvent=()=>{this.containerRef&&this.containerRef.removeEventListener("wheel",this.onWheel),this.wheelTimer&&clearTimeout(this.wheelTimer)},this.onMediaLoad=()=>{const r=this.computeSizes();r&&(this.previousCropSize=r,this.emitCropData(),this.setInitialCrop(r),this.isInitialized=!0),this.props.onMediaLoaded&&this.props.onMediaLoaded(this.mediaSize)},this.setInitialCrop=r=>{if(this.props.initialCroppedAreaPercentages){const{crop:i,zoom:s}=Wk(this.props.initialCroppedAreaPercentages,this.mediaSize,this.props.rotation,r,this.props.minZoom,this.props.maxZoom);this.props.onCropChange(i),this.props.onZoomChange&&this.props.onZoomChange(s)}else if(this.props.initialCroppedAreaPixels){const{crop:i,zoom:s}=Qk(this.props.initialCroppedAreaPixels,this.mediaSize,this.props.rotation,r,this.props.minZoom,this.props.maxZoom);this.props.onCropChange(i),this.props.onZoomChange&&this.props.onZoomChange(s)}},this.computeSizes=()=>{const r=this.imageRef.current||this.videoRef.current;if(r&&this.containerRef){var i,s,a,l,o,c;this.containerRect=this.containerRef.getBoundingClientRect(),this.saveContainerPosition();const d=this.containerRect.width/this.containerRect.height,u=((i=this.imageRef.current)===null||i===void 0?void 0:i.naturalWidth)||((s=this.videoRef.current)===null||s===void 0?void 0:s.videoWidth)||0,m=((a=this.imageRef.current)===null||a===void 0?void 0:a.naturalHeight)||((l=this.videoRef.current)===null||l===void 0?void 0:l.videoHeight)||0,h=r.offsetWidth<u||r.offsetHeight<m,p=u/m;let y;if(h)switch(this.state.mediaObjectFit){default:case"contain":y=d>p?{width:this.containerRect.height*p,height:this.containerRect.height}:{width:this.containerRect.width,height:this.containerRect.width/p};break;case"horizontal-cover":y={width:this.containerRect.width,height:this.containerRect.width/p};break;case"vertical-cover":y={width:this.containerRect.height*p,height:this.containerRect.height};break}else y={width:r.offsetWidth,height:r.offsetHeight};this.mediaSize=Bt(Bt({},y),{},{naturalWidth:u,naturalHeight:m}),this.props.setMediaSize&&this.props.setMediaSize(this.mediaSize);const f=this.props.cropSize?this.props.cropSize:Uk(this.mediaSize.width,this.mediaSize.height,this.containerRect.width,this.containerRect.height,this.props.aspect,this.props.rotation);return(((o=this.state.cropSize)===null||o===void 0?void 0:o.height)!==f.height||((c=this.state.cropSize)===null||c===void 0?void 0:c.width)!==f.width)&&this.props.onCropSizeChange&&this.props.onCropSizeChange(f),this.setState({cropSize:f},this.recomputeCropPosition),this.props.setCropSize&&this.props.setCropSize(f),f}},this.saveContainerPosition=()=>{if(this.containerRef){const r=this.containerRef.getBoundingClientRect();this.containerPosition={x:r.left,y:r.top}}},this.onMouseDown=r=>{this.currentDoc&&(r.preventDefault(),this.currentDoc.addEventListener("mousemove",this.onMouseMove),this.currentDoc.addEventListener("mouseup",this.onDragStopped),this.saveContainerPosition(),this.onDragStart(Qn.getMousePoint(r)))},this.onMouseMove=r=>this.onDrag(Qn.getMousePoint(r)),this.onScroll=r=>{this.currentDoc&&(r.preventDefault(),this.saveContainerPosition())},this.onTouchStart=r=>{this.currentDoc&&(this.isTouching=!0,!(this.props.onTouchRequest&&!this.props.onTouchRequest(r))&&(this.currentDoc.addEventListener("touchmove",this.onTouchMove,{passive:!1}),this.currentDoc.addEventListener("touchend",this.onDragStopped),this.saveContainerPosition(),r.touches.length===2?this.onPinchStart(r):r.touches.length===1&&this.onDragStart(Qn.getTouchPoint(r.touches[0]))))},this.onTouchMove=r=>{r.preventDefault(),r.touches.length===2?this.onPinchMove(r):r.touches.length===1&&this.onDrag(Qn.getTouchPoint(r.touches[0]))},this.onGestureStart=r=>{this.currentDoc&&(r.preventDefault(),this.currentDoc.addEventListener("gesturechange",this.onGestureChange),this.currentDoc.addEventListener("gestureend",this.onGestureEnd),this.gestureZoomStart=this.props.zoom,this.gestureRotationStart=this.props.rotation)},this.onGestureChange=r=>{if(r.preventDefault(),this.isTouching)return;const i=Qn.getMousePoint(r),s=this.gestureZoomStart-1+r.scale;if(this.setNewZoom(s,i,{shouldUpdatePosition:!0}),this.props.onRotationChange){const a=this.gestureRotationStart+r.rotation;this.props.onRotationChange(a)}},this.onGestureEnd=r=>{this.cleanEvents()},this.onDragStart=({x:r,y:i})=>{var s,a;this.dragStartPosition={x:r,y:i},this.dragStartCrop=Bt({},this.props.crop),(s=(a=this.props).onInteractionStart)===null||s===void 0||s.call(a)},this.onDrag=({x:r,y:i})=>{this.currentWindow&&(this.rafDragTimeout&&this.currentWindow.cancelAnimationFrame(this.rafDragTimeout),this.rafDragTimeout=this.currentWindow.requestAnimationFrame(()=>{if(!this.state.cropSize||r===void 0||i===void 0)return;const s=r-this.dragStartPosition.x,a=i-this.dragStartPosition.y,l={x:this.dragStartCrop.x+s,y:this.dragStartCrop.y+a},o=this.props.restrictPosition?ds(l,this.mediaSize,this.state.cropSize,this.props.zoom,this.props.rotation):l;this.props.onCropChange(o)}))},this.onDragStopped=()=>{var r,i;this.isTouching=!1,this.cleanEvents(),this.emitCropData(),(r=(i=this.props).onInteractionEnd)===null||r===void 0||r.call(i)},this.onWheel=r=>{if(!this.currentWindow||this.props.onWheelRequest&&!this.props.onWheelRequest(r))return;r.preventDefault();const i=Qn.getMousePoint(r),{pixelY:s}=Fk(r),a=this.props.zoom-s*this.props.zoomSpeed/200;this.setNewZoom(a,i,{shouldUpdatePosition:!0}),this.state.hasWheelJustStarted||this.setState({hasWheelJustStarted:!0},()=>{var l,o;return(l=(o=this.props).onInteractionStart)===null||l===void 0?void 0:l.call(o)}),this.wheelTimer&&clearTimeout(this.wheelTimer),this.wheelTimer=this.currentWindow.setTimeout(()=>this.setState({hasWheelJustStarted:!1},()=>{var l,o;return(l=(o=this.props).onInteractionEnd)===null||l===void 0?void 0:l.call(o)}),250)},this.getPointOnContainer=({x:r,y:i},s)=>{if(!this.containerRect)throw new Error("The Cropper is not mounted");return{x:this.containerRect.width/2-(r-s.x),y:this.containerRect.height/2-(i-s.y)}},this.getPointOnMedia=({x:r,y:i})=>{const{crop:s,zoom:a}=this.props;return{x:(r+s.x)/a,y:(i+s.y)/a}},this.setNewZoom=(r,i,{shouldUpdatePosition:s=!0}={})=>
95{if(!this.state.cropSize||!this.props.onZoomChange)return;const a=Pl(r,this.props.minZoom,this.props.maxZoom);if(s){const l=this.getPointOnContainer(i,this.containerPosition),o=this.getPointOnMedia(l),c={x:o.x*a-l.x,y:o.y*a-l.y},d=this.props.restrictPosition?ds(c,this.mediaSize,this.state.cropSize,a,this.props.rotation):c;this.props.onCropChange(d)}this.props.onZoomChange(a)},this.getCropData=()=>this.state.cropSize?$k(this.props.restrictPosition?ds(this.props.crop,this.mediaSize,this.state.cropSize,this.props.zoom,this.props.rotation):this.props.crop,this.mediaSize,this.state.cropSize,this.getAspect(),this.props.zoom,this.props.rotation,this.props.restrictPosition):null,this.emitCropData=()=>{const r=this.getCropData();if(!r)return;const{croppedAreaPercentages:i,croppedAreaPixels:s}=r;this.props.onCropComplete&&this.props.onCropComplete(i,s),this.props.onCropAreaChange&&this.props.onCropAreaChange(i,s)},this.emitCropAreaChange=()=>{const r=this.getCropData();if(!r)return;const{croppedAreaPercentages:i,croppedAreaPixels:s}=r;this.props.onCropAreaChange&&this.props.onCropAreaChange(i,s)},this.recomputeCropPosition=()=>{var r,i;if(!this.state.cropSize)return;let s=this.props.crop;if(this.isInitialized&&(!((r=this.previousCropSize)===null||r===void 0)&&r.width)&&(!((i=this.previousCropSize)===null||i===void 0)&&i.height)&&(Math.abs(this.previousCropSize.width-this.state.cropSize.width)>1e-6||Math.abs(this.previousCropSize.height-this.state.cropSize.height)>1e-6)){const l=this.state.cropSize.width/this.previousCropSize.width,o=this.state.cropSize.height/this.previousCropSize.height;s={x:this.props.crop.x*l,y:this.props.crop.y*o}}const a=this.props.restrictPosition?ds(s,this.mediaSize,this.state.cropSize,this.props.zoom,this.props.rotation):s;this.previousCropSize=this.state.cropSize,this.props.onCropChange(a),this.emitCropData()},this.onKeyDown=r=>{const{crop:i,onCropChange:s,keyboardStep:a,zoom:l,rotation:o}=this.props;let c=a;if(!this.state.cropSize)return;r.shiftKey&&(c*=.2);let d=Bt({},i);switch(r.key){case"ArrowUp":d.y-=c,r.preventDefault();break;case"ArrowDown":d.y+=c,r.preventDefault();break;case"ArrowLeft":d.x-=c,r.preventDefault();break;case"ArrowRight":d.x+=c,r.preventDefault();break;default:return}if(this.props.restrictPosition&&(d=ds(d,this.mediaSize,this.state.cropSize,l,o)),!r.repeat){var u,m;(u=(m=this.props).onInteractionStart)===null||u===void 0||u.call(m)}s(d)},this.onKeyUp=r=>{var i,s;switch(r.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":r.preventDefault();break;default:return}this.emitCropData(),(i=(s=this.props).onInteractionEnd)===null||i===void 0||i.call(s)}}componentDidMount(){!this.currentDoc||!this.currentWindow||(this.containerRef&&(this.containerRef.ownerDocument&&(this.currentDoc=this.containerRef.ownerDocument),this.currentDoc.defaultView&&(this.currentWindow=this.currentDoc.defaultView),this.initResizeObserver(),typeof window.ResizeObserver>"u"&&this.currentWindow.addEventListener("resize",this.computeSizes),this.props.zoomWithScroll&&this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}),this.containerRef.addEventListener("gesturestart",this.onGestureStart)),this.currentDoc.addEventListener("scroll",this.onScroll),this.props.disableAutomaticStylesInjection||(this.styleRef=this.currentDoc.createElement("style"),this.styleRef.setAttribute("type","text/css"),this.props.nonce&&this.styleRef.setAttribute("nonce",this.props.nonce),this.styleRef.innerHTML=Zk,this.currentDoc.head.appendChild(this.styleRef)),this.imageRef.current&&this.imageRef.current.complete&&this.onMediaLoad(),this.props.setImageRef&&this.props.setImageRef(this.imageRef),this.props.setVideoRef&&this.props.setVideoRef(this.videoRef),this.props.setCropperRef&&this.props.setCropperRef(this.cropperRef))}componentWillUnmount(){var e;if(!(!this.currentDoc||!this.currentWindow)){if(typeof window.ResizeObserver>"u"&&this.currentWindow.removeEventListener("resize",this.computeSizes),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),this.containerRef&&this.containerRef.removeEventListener("gesturestart",this.preventZoomSafari),this.styleRef){var r;(r=this.styleRef.parentNode)===null||r===void 0||r.removeChild(this.styleRef)}this.cleanEvents(),this.props.zoomWithScroll&&this.clearScrollEvent()}}componentDidUpdate(e){var r,i,s,a,l,o,c,d;if(e.rotation!==this.props.rotation?(this.computeSizes(),this.recomputeCropPosition()):e.aspect!==this.props.aspect?this.computeSizes():e.objectFit!==this.props.objectFit?this.computeSizes():e.zoom!==this.props.zoom?this.recomputeCropPosition():((r=e.cropSize)===null||r===void 0?void 0:r.height)!==((i=this.props.cropSize)===null||i===void 0?void 0:i.height)||((s=e.cropSize)===null||s===void 0?void 0:s.width)!==((a=this.props.cropSize)===null||a===void 0?void 0:a.width)?this.computeSizes():(((l=e.crop)===null||l===void 0?void 0:l.x)!==((o=this.props.crop)===null||o===void 0?void 0:o.x)||((c=e.crop)===null||c===void 0?void 0:c.y)!==((d=this.props.crop)===null||d===void 0?void 0:d.y))&&this.emitCropAreaChange(),e.zoomWithScroll!==this.props.zoomWithScroll&&this.containerRef&&(this.props.zoomWithScroll?this.containerRef.addEventListener("wheel",this.onWheel,{passive:!1}):this.clearScrollEvent()),e.video!==this.props.video){var u;(u=this.videoRef.current)===null||u===void 0||u.load()}const m=this.getObjectFit();m!==this.state.mediaObjectFit&&this.setState({mediaObjectFit:m},this.computeSizes)}getAspect(){const{cropSize:e,aspect:r}=this.props;return e?e.width/e.height:r}getObjectFit(){if(this.props.objectFit==="cover"){if((this.imageRef.current||this.videoRef.current)&&this.containerRef){var e,r,i,s;this.containerRect=this.containerRef.getBoundingClientRect();const a=this.containerRect.width/this.containerRect.height;return(((e=this.imageRef.current)===null||e===void 0?void 0:e.naturalWi
95dth)||((r=this.videoRef.current)===null||r===void 0?void 0:r.videoWidth)||0)/(((i=this.imageRef.current)===null||i===void 0?void 0:i.naturalHeight)||((s=this.videoRef.current)===null||s===void 0?void 0:s.videoHeight)||0)<a?"horizontal-cover":"vertical-cover"}return"horizontal-cover"}return this.props.objectFit}onPinchStart(e){const r=Qn.getTouchPoint(e.touches[0]),i=Qn.getTouchPoint(e.touches[1]);this.lastPinchDistance=nm(r,i),this.lastPinchRotation=rm(r,i),this.onDragStart(im(r,i))}onPinchMove(e){if(!this.currentDoc||!this.currentWindow)return;const r=Qn.getTouchPoint(e.touches[0]),i=Qn.getTouchPoint(e.touches[1]),s=im(r,i);this.onDrag(s),this.rafPinchTimeout&&this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout),this.rafPinchTimeout=this.currentWindow.requestAnimationFrame(()=>{const a=nm(r,i),l=this.props.zoom*(a/this.lastPinchDistance);this.setNewZoom(l,s,{shouldUpdatePosition:!1}),this.lastPinchDistance=a;const o=rm(r,i),c=this.props.rotation+(o-this.lastPinchRotation);this.props.onRotationChange&&this.props.onRotationChange(c),this.lastPinchRotation=o})}render(){var e;const{image:r,video:i,mediaProps:s,cropperProps:a,transform:l,crop:{x:o,y:c},rotation:d,zoom:u,cropShape:m,showGrid:h,roundCropAreaPixels:p,style:{containerStyle:y,cropAreaStyle:f,mediaStyle:g},classes:{containerClassName:v,cropAreaClassName:S,mediaClassName:R}}=this.props,z=(e=this.state.mediaObjectFit)!==null&&e!==void 0?e:this.getObjectFit();return k.createElement("div",{onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,ref:P=>this.containerRef=P,"data-testid":"container",style:y,className:ha("reactEasyCrop_Container",v)},r?k.createElement("img",Bt(Bt({alt:"",className:ha("reactEasyCrop_Image",z==="contain"&&"reactEasyCrop_Contain",z==="horizontal-cover"&&"reactEasyCrop_Cover_Horizontal",z==="vertical-cover"&&"reactEasyCrop_Cover_Vertical",R)},s),{},{src:r,ref:this.imageRef,style:Bt(Bt({},g),{},{transform:l||`translate(${o}px, ${c}px) rotate(${d}deg) scale(${u})`}),onLoad:this.onMediaLoad})):i&&k.createElement("video",Bt(Bt({autoPlay:!0,playsInline:!0,loop:!0,muted:!0,className:ha("reactEasyCrop_Video",z==="contain"&&"reactEasyCrop_Contain",z==="horizontal-cover"&&"reactEasyCrop_Cover_Horizontal",z==="vertical-cover"&&"reactEasyCrop_Cover_Vertical",R)},s),{},{ref:this.videoRef,onLoadedMetadata:this.onMediaLoad,style:Bt(Bt({},g),{},{transform:l||`translate(${o}px, ${c}px) rotate(${d}deg) scale(${u})`}),controls:!1}),(Array.isArray(i)?i:[{src:i}]).map(P=>k.createElement("source",Bt({key:P.src},P)))),this.state.cropSize&&k.createElement("div",Bt({ref:this.cropperRef,style:Bt(Bt({},f),{},{width:p?Math.round(this.state.cropSize.width):this.state.cropSize.width,height:p?Math.round(this.state.cropSize.height):this.state.cropSize.height}),tabIndex:0,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp,"data-testid":"cropper",className:ha("reactEasyCrop_CropArea",m==="round"&&"reactEasyCrop_CropAreaRound",h&&"reactEasyCrop_CropAreaGrid",S)},a)))}};zl.defaultProps={zoom:1,rotation:0,aspect:4/3,maxZoom:eS,minZoom:Jk,cropShape:"rect",objectFit:"contain",showGrid:!0,style:{},classes:{},mediaProps:{},cropperProps:{},zoomSpeed:1,restrictPosition:!0,zoomWithScroll:!0,keyboardStep:tS};zl.getMousePoint=t=>({x:Number(t.clientX),y:Number(t.clientY)});zl.getTouchPoint=t=>({x:Number(t.clientX),y:Number(t.clientY)});var nS=zl;const rS={GENERAL:"Genel",FINDING:"Bulgu",THERMAL:"Termal",NAMEPLATE:"İsim Plakası",MEASUREMENT:"Ãlçüm",BEFORE_AFTER:"Ãncesi-Sonrası",PANORAMIC:"Panoramik"},sm={FULL_WIDTH:"Tam GeniÅlik",HALF_WIDTH:"Yarım",QUARTER_WIDTH:"Ãeyrek"},ff={AUTO:"Otomatik",GRID_2X2:"2x2 Grid",GRID_3X2:"3x2 Grid",SINGLE_PAGE:"Tek Sayfa",FULL_WIDTH:"Tam GeniÅlik",COMPACT:"SıkıÅtırılmıÅ"},am={high_quality:"Yüksek Kalite",standard:"Standart",web:"Web",web_optimized:"Web Optimized",minimum:"Minimum"},{Text:ln,Title:iS}=ft,sS=[{value:"AUTO",icon:n.jsx(_u,{})},{value:"GRID_2X2",icon:n.jsx(Cv,{})},{value:"GRID_3X2",icon:n.jsx(Dv,{})},{value:"SINGLE_PAGE",icon:n.jsx(Rv,{})},{value:"FULL_WIDTH",icon:n.jsx(Iv,{})},{value:"COMPACT",icon:n.jsx(_u,{rotate:90})}],lm={high_quality:"200 DPI, baskı için",standard:"150 DPI, genel amaç",web:"100 DPI, e-posta eki",web_optimized:"100 DPI, e-posta eki",minimum:"72 DPI, dijital görüntüleme"},Eo=t=>t?t>=1024*1024?`${(t/(1024*1024)).toFixed(1)} MB`:`${Math.max(1,Math.round(t/1024))} KB`:"-",aS=t=>t?Z(t).format("DD/MM/YYYY HH:mm"):"-",om=t=>[...t].sort((e,r)=>e.sort_order-r.sort_order),cm=t=>t.thumbnail_url||t.processed_url||t.original_url||void 0,lS=t=>t.processed_url||t.original_url||t.thumbnail_url||void 0,oS=t=>n.jsxs("span",{className:"rpm-layout-option",children:[t.icon,ff[t.value]]}),dm=["high_quality","standard","web_optimized","minimum"],cS=50*1024*1024,dS=["image/jpeg","image/png","image/webp","image/bmp","image/x-bmp","image/heic","image/heif"],uS=t=>{var i;if(t.size>cS)return`Dosya boyutu çok büyük (${(t.size/1024/1024).toFixed(1)} MB). En fazla 50 MB yükleyebilirsiniz.`;const e=(i=t.name.split(".").pop())==null?void 0:i.toLowerCase(),r=e==="bmp";return!dS.includes(t.type)&&!r?`Desteklenmeyen dosya formatı: ${t.type||e||"bilinmiyor"}. İzin verilenler: JPG, PNG, BMP, WEBP, HEIC`:null},gf=({reportId:t,readOnly:e=!1,checklistItems:r=[]})=>{const i=ve(),{data:s,isLoading:a}=ed(t),[l,o]=k.useState([]),[c,d]=k.useState({}),[u,m]=k.useState([]),[h,p]=k.useState(null),[y,f]=k.useState(null),[g,v]=k.useState(!1),[S,R]=k.useState("AUTO"),[z,P]=k.useState(null),[U,A]=k.useState(!1),[w,Y]=k.useState(!1),[D,_]=k.useState("standard"),[M,b]=k.useState(!1),[I,j]=k.useState(null),[N]=x.useForm(),[$,ue]=k.useState({x:0,y:0}),[oe,K]=k.useState(1),[fe,J]=k.useState(null),[B,he]=k.useState(null),[de,_e]=k.useState(null);k.useEffect(()=>{if(!s)return;const ee=om(s.photos||[]);o(ee),d(ee.reduce((O,X)=>(O[X.id]=X.caption||"",O),{})),R(s.photo_layout_mode||"AUTO")},[s]),k.useEffect(()=>{let ee=!1;return(async()=>
95{if(t){A(!0);try{const X=await Hn.estimatePdfSize(t);ee||(P(X),_(X.recommendation||"standard"))}catch{ee||P(null)}finally{ee||A(!1)}}})(),()=>{ee=!0}},[t,S,l.length]);const De=k.useMemo(()=>r.map(ee=>({value:ee.code,label:`${ee.code} ${ee.description}`})),[r]),Ce=!e&&s&&(s.status==="DRAFT"||s.status==="REVISION"),Ue=!!s&&["DRAFT","REVISION","APPROVED","APPROVED_UNSIGNED","SIGNED_ELECTRONIC","SIGNED_WET"].includes(s.status),se=async()=>{await i.invalidateQueries({queryKey:["reports",t]}),await i.invalidateQueries({queryKey:["reports"]})},q=(ee,O)=>{m(X=>X.map(Oe=>Oe.id===ee?{...Oe,...O}:Oe))},ae=async(ee,O,X=0)=>{var Qe,Et,Pt,te;const Oe=new AbortController;q(ee,{status:"uploading",progress:0,error:void 0,controller:Oe});try{const Ae=await Hn.uploadPhotos(t,[O],[{}],{signal:Oe.signal,timeout:6e4,onUploadProgress:qe=>{if(!qe.total)return;const Lt=Math.round(qe.loaded/qe.total*100);q(ee,{progress:Lt})}});if(Ae.errors.length>0){q(ee,{status:"error",error:Ae.errors[0].error,progress:100,controller:void 0});return}q(ee,{status:"success",progress:100,controller:void 0}),await se()}catch(Ae){if((Ae==null?void 0:Ae.code)==="ERR_CANCELED"){q(ee,{status:"cancelled",error:"Yükleme iptal edildi.",controller:void 0});return}if(X<2){q(ee,{error:`BaÄlantı sorunu algılandı, ${X+2}. deneme yapılıyor...`}),await new Promise(Lt=>window.setTimeout(Lt,1500)),await ae(ee,O,X+1);return}const qe=((Et=(Qe=Ae==null?void 0:Ae.response)==null?void 0:Qe.data)==null?void 0:Et.error)||((te=(Pt=Ae==null?void 0:Ae.response)==null?void 0:Pt.data)==null?void 0:te.detail)||"FotoÄraf yüklenemedi.";q(ee,{status:"error",error:qe,controller:void 0})}},ge=async(ee,O)=>{const X=uS(ee),Oe=O||`${ee.name}-${ee.lastModified}-${Math.random().toString(36).slice(2,8)}`;if(O||m(Qe=>[...Qe,{id:Oe,file:ee,fileName:ee.name,progress:0,status:X?"error":"uploading",error:X||void 0}]),X){O&&q(Oe,{file:ee,fileName:ee.name,status:"error",progress:0,error:X,controller:void 0});return}O&&q(Oe,{file:ee,fileName:ee.name}),await ae(Oe,ee)},Me=async ee=>{if(!(ee!=null&&ee.length))return;const O=Array.from(ee);for(let X=0;X<O.length;X+=1)j({current:X+1,total:O.length}),await ge(O[X]);j(null)},ze=async ee=>{await ge(ee.file,ee.id)},ut=async ee=>{const O=c[ee.id]??"";if((ee.caption||"")!==O)try{await Hn.updatePhotoSettings(t,ee.id,{caption:O}),re.success("Açıklama güncellendi."),await se()}catch(X){ce(X,"Açıklama güncellenemedi.")}},lt=async(ee,O)=>{if(ee===O)return;const X=l.findIndex(te=>te.id===ee),Oe=l.findIndex(te=>te.id===O);if(X<0||Oe<0)return;const Qe=[...l],[Et]=Qe.splice(X,1);Qe.splice(Oe,0,Et);const Pt=Qe.map((te,Ae)=>({...te,sort_order:Ae}));o(Pt);try{await Hn.reorderPhotos(t,Pt.map(te=>({id:te.id,sort_order:te.sort_order}))),re.success("FotoÄraf sırası güncellendi."),await se()}catch(te){ce(te,"FotoÄraf sırası güncellenemedi."),s&&o(om(s.photos||[]))}},Zt=ee=>{Ve.confirm({title:"FotoÄraf silinsin mi?",content:`${ee.caption||ee.original_format||"FotoÄraf"} kalıcı olarak listeden kaldırılacak.`,okText:"Sil",okButtonProps:{danger:!0},cancelText:"İptal",onOk:async()=>{try{await Hn.deletePhoto(t,ee.id),re.success("FotoÄraf silindi."),await se()}catch(O){ce(O,"FotoÄraf silinemedi.")}}})},gt=ee=>{f(ee),ue({x:0,y:0}),K(1),J(null),he(null),_e(null),N.setFieldsValue({caption:ee.caption||"",finding_code:ee.finding_code||void 0,photo_category:ee.photo_category,display_size:ee.display_size})},mn=ee=>{const O=ee.crop_left_percent??0,X=ee.crop_top_percent??0,Oe=ee.crop_right_percent??0,Qe=ee.crop_bottom_percent??0;return{x:O,y:X,width:Math.max(5,100-O-Oe),height:Math.max(5,100-X-Qe)}},On=ee=>{if(!y)return;const O=ee.naturalWidth/Math.max(1,ee.naturalHeight);he(O);const X=mn(y),Oe=X.width*ee.naturalWidth/Math.max(1,X.height*ee.naturalHeight)||O;J(Oe);const Qe=ee.width,Et=ee.height;let Pt=Math.min(Qe,Et*Oe),te=Pt/Oe;te>Et&&(te=Et,Pt=Et*Oe);const Ae=Math.min(8,Math.max(1,Pt/Qe*(100/X.width)));K(Ae),ue({x:Ae*Qe/2-Pt/2-Qe*Ae*(X.x/100),y:Ae*Et/2-te/2-Et*Ae*(X.y/100)})},Gn=()=>{ue({x:0,y:0}),K(1),B&&J(B)},jn=ee=>{const O=Math.round(ee*10)/10;return O<1?0:Math.min(95,Math.max(0,O))},Ln=async()=>
95{if(y)try{v(!0);const ee=await N.validateFields();de&&(ee.crop_left_percent=jn(de.x),ee.crop_top_percent=jn(de.y),ee.crop_right_percent=jn(100-de.x-de.width),ee.crop_bottom_percent=jn(100-de.y-de.height)),await Hn.updatePhotoSettings(t,y.id,ee),re.success("FotoÄraf ayarları kaydedildi."),f(null),await se()}catch(ee){if(ee!=null&&ee.errorFields)return;ce(ee,"FotoÄraf ayarları kaydedilemedi.")}finally{v(!1)}},Jt=async ee=>{const O=ee,X=S;R(O);try{await Xe.updateReport(t,{photo_layout_mode:O}),re.success("PDF fotoÄraf düzeni güncellendi."),await se()}catch(Oe){R(X),ce(Oe,"FotoÄraf düzeni güncellenemedi.")}},Wn=async()=>{for(let ee=0;ee<15;ee+=1){await new Promise(O=>window.setTimeout(O,2e3));try{if((await Xe.getPdfStatus(t)).has_pdf)return await se(),!0}catch{}}return!1},Kt=async()=>{try{b(!0);const ee=await Hn.generateCompressedPdf(t,D,S);re.success(ee.status==="processing"?"PDF üretimi baÅlatıldı.":"PDF üretimi tetiklendi."),Y(!1),await Wn()?re.success("PDF hazır."):re.warning("PDF üretimi sürüyor. Birkaç saniye sonra tekrar kontrol edin.")}catch(ee){ce(ee,"PDF üretimi baÅlatılamadı.")}finally{b(!1)}};return a?n.jsx("div",{className:"rpm-state",children:n.jsx(mt,{})}):s?n.jsxs("div",{className:"rpm-root",children:[n.jsx(H,{title:"FotoÄraf Yükleme",size:"small",children:Ce?n.jsxs(n.Fragment,{children:[n.jsxs("label",{className:"rpm-upload-zone",htmlFor:`photo-upload-${t}`,onDragOver:ee=>{ee.preventDefault()},onDrop:ee=>{ee.preventDefault(),Me(ee.dataTransfer.files)},children:[n.jsx("input",{id:`photo-upload-${t}`,type:"file",multiple:!0,accept:".jpg,.jpeg,.png,.webp,.bmp,.heic,.heif",className:"rpm-hidden-input",onChange:ee=>{Me(ee.target.files),ee.currentTarget.value=""}}),n.jsx(_p,{className:"rpm-upload-icon"}),n.jsx(iS,{level:5,children:"FotoÄrafları sürükleyin veya seçin"}),n.jsx(ln,{type:"secondary",children:"JPEG, PNG, WEBP, BMP, HEIC, HEIF â Max 50MB / dosya"})]}),u.length>0&&n.jsxs("div",{className:"rpm-upload-list",children:[I?n.jsx(be,{style:{marginBottom:12},type:"info",showIcon:!0,message:`${I.current}/${I.total} fotoÄraf yükleniyor...`}):null,u.map(ee=>n.jsxs("div",{className:"rpm-upload-item",children:[n.jsxs("div",{className:"rpm-upload-head",children:[n.jsxs(W,{children:[n.jsx(ln,{strong:!0,children:ee.fileName}),ee.status==="success"&&n.jsx(_v,{twoToneColor:"#52c41a"}),ee.status==="error"&&n.jsx(jv,{twoToneColor:"#ff4d4f"}),ee.status==="cancelled"&&n.jsx(Rs,{style:{color:"#faad14"}})]}),ee.status==="uploading"&&n.jsx(T,{icon:n.jsx(kv,{}),size:"small",onClick:()=>{var O;return(O=ee.controller)==null?void 0:O.abort()},children:"İptal"}),(ee.status==="error"||ee.status==="cancelled")&&n.jsx(T,{size:"small",onClick:()=>{ze(ee)},children:"Tekrar Dene"})]}),n.jsx(oi,{percent:ee.progress,size:"small",status:ee.status==="error"?"exception":"active"}),ee.error&&n.jsx(ln,{type:"danger",children:ee.error})]},ee.id))]})]}):n.jsx(be,{type:"info",showIcon:!0,message:"Bu rapor durumunda fotoÄraf yükleme ve düzenleme kapalı."})}),n.jsx(H,{title:`FotoÄraf Grid'i (${l.length})`,size:"small",extra:Ce?n.jsx(ln,{type:"secondary",children:"Kartları sürükleyerek sıralayabilirsiniz."}):null,children:l.length===0?n.jsx(ht,{description:"Henüz fotoÄraf yüklenmedi."}):n.jsx("div",{className:"rpm-grid",children:l.map(ee=>n.jsxs("div",{className:"rpm-card",draggable:Ce,onDragStart:()=>p(ee.id),onDragOver:O=>{Ce&&O.preventDefault()},onDrop:O=>{O.preventDefault(),h&<(h,ee.id),p(null)},children:[n.jsxs("div",{className:"rpm-card-media",children:[cm(ee)?n.jsx("img",{src:cm(ee),alt:ee.caption||"FotoÄraf"}):n.jsx("div",{className:"rpm-card-placeholder",children:n.jsx(Sv,{})}),Ce&&n.jsx("div",{className:"rpm-card-handle",children:n.jsx(Ev,{})})]}),n.jsxs("div",{className:"rpm-card-body",children:[Ce?n.jsx(G,{size:"small",value:c[ee.id]??"",placeholder:"Açıklama girin",onChange:O=>d(X=>({...X,[ee.id]:O.target.value})),onBlur:()=>{ut(ee)},onPressEnter:()=>{ut(ee)}}):n.jsx(ln,{children:ee.caption||"-"}),n.jsxs(W,{size:[6,6],wrap:!0,children:[ee.finding_code?n.jsxs(ie,{color:"blue",children:["[",ee.finding_code,"]"]}):n.jsx(ie,{children:"Bulgu yok"}),n.jsx(ie,{children:`${(ee.original_format||"IMG").toUpperCase()}âJPG`}
95),n.jsx(ie,{color:"green",children:`${Eo(ee.original_size_bytes)}â${Eo(ee.processed_size_bytes)} â${Math.round(ee.compression_ratio||0)}%`})]}),n.jsxs(W,{size:"small",children:[n.jsx(T,{icon:n.jsx(at,{}),size:"small",onClick:()=>gt(ee),children:Ce?"Düzenle":"Görüntüle"}),n.jsx(T,{icon:n.jsx(_t,{}),size:"small",danger:!0,disabled:!Ce,onClick:()=>Zt(ee),children:"Sil"})]})]})]},ee.id))})}),n.jsxs(H,{title:"PDF FotoÄraf Düzeni",size:"small",children:[n.jsx(Tn,{block:!0,disabled:!Ue,value:S,options:sS.map(ee=>({value:ee.value,label:oS(ee)})),onChange:ee=>{Jt(ee)}}),S==="SINGLE_PAGE"&&n.jsx(be,{style:{marginTop:16},type:"info",showIcon:!0,message:"20'den fazla fotoÄraf varsa bazıları tek sayfaya sıÄmayabilir."})]}),n.jsx(H,{title:"PDF Boyut Tahmini",size:"small",extra:U?n.jsx(mt,{size:"small"}):null,children:z?n.jsx("div",{className:"rpm-estimate-grid",children:dm.map(ee=>n.jsx("div",{className:`rpm-estimate-card ${z.recommendation===ee?"is-recommended":""}`,children:n.jsxs(W,{direction:"vertical",size:4,children:[n.jsxs(W,{children:[n.jsx(ln,{strong:!0,children:am[ee]}),z.recommendation===ee&&n.jsx(ie,{color:"green",children:"Ãnerilen"})]}),n.jsxs(ln,{className:"rpm-estimate-size",children:["~",z.estimates[ee].estimated_size_mb.toFixed(2)," MB"]}),n.jsx(ln,{type:"secondary",children:lm[ee]})]})},ee))}):n.jsx(be,{type:"warning",showIcon:!0,message:"Boyut tahmini alınamadı."})}),n.jsx(H,{title:"PDF OluÅtur",size:"small",extra:n.jsx(T,{type:"primary",icon:n.jsx(_r,{}),disabled:!Ue,onClick:()=>Y(!0),children:"PDF OluÅtur"}),children:n.jsxs(ln,{type:"secondary",children:["Seçili düzen: ",ff[S],". SıkıÅtırma profilini seçerek yeni PDF üretin."]})}),n.jsx(Ve,{title:"FotoÄraf Ayarları",open:!!y,onCancel:()=>f(null),onOk:()=>{Ln()},confirmLoading:g,okText:"Kaydet",okButtonProps:{style:{display:Ce?void 0:"none"}},cancelText:Ce?"İptal":"Kapat",width:680,children:y&&n.jsxs("div",{className:"rpm-modal-content",children:[Ce?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"rpm-crop-container",children:n.jsx(nS,{image:y.original_url||y.processed_url||y.thumbnail_url||void 0,crop:$,zoom:oe,minZoom:1,maxZoom:8,aspect:fe??4/3,onCropChange:ue,onZoomChange:K,onCropComplete:ee=>_e(ee),onMediaLoaded:On,zoomWithScroll:!0,showGrid:!0},y.id)}),n.jsxs("div",{className:"rpm-crop-controls",children:[n.jsx(ln,{type:"secondary",children:"YakınlaÅtır"}),n.jsx(wv,{className:"rpm-crop-slider",min:1,max:8,step:.05,value:oe,onChange:ee=>K(ee),tooltip:{formatter:ee=>`${(ee??1).toFixed(1)}x`}}),n.jsx(T,{size:"small",onClick:Gn,children:"Sıfırla"})]}),n.jsx(ln,{type:"secondary",style:{display:"block"},children:"FotoÄrafı sürükleyip yakınlaÅtırarak çerçeveye almak istediÄiniz bölümü seçin. Kaydedince fotoÄraf orijinalinden kırpılıp yeniden iÅlenir; PDF'e kırpılmıŠhali girer."})]}):n.jsx(jp,{src:lS(y),alt:y.caption||"FotoÄraf",className:"rpm-modal-preview"}),n.jsxs(x,{form:N,layout:"vertical",children:[n.jsx(x.Item,{label:"Açıklama",name:"caption",rules:[{max:300,message:"Açıklama en fazla 300 karakter olabilir."}],children:n.jsx(G,{maxLength:300,disabled:!Ce})}),n.jsx(x.Item,{label:"Bulgu Kodu",name:"finding_code",children:n.jsx(pe,{allowClear:!0,options:De,placeholder:"Kontrol maddesi seçin",disabled:!Ce})}),n.jsx(x.Item,{label:"Kategori",name:"photo_category",children:n.jsx(pe,{disabled:!Ce,options:Object.entries(rS).map(([ee,O])=>({value:ee,label:O}))})}),n.jsx(x.Item,{label:"PDF Gösterim Boyutu",name:"display_size",children:n.jsx(Tn,{block:!0,disabled:!Ce,options:Object.keys(sm).map(ee=>({value:ee,label:sm[ee]}))})})]}),n.jsxs("div",{className:"rpm-meta",children:[n.jsx(ln,{strong:!0,children:"EXIF Bilgileri"}),n.jsxs("div",{className:"rpm-meta-grid",children:[n.jsx("span",{children:"Ãekim Tarihi"}),n.jsx("span",{children:aS(y.exif_date)}),n.jsx("span",{children:"GPS"}),n.jsx("span",{children:y.exif_gps_lat&&y.exif_gps_lon?`${y.exif_gps_lat}, ${y.exif_gps_lon}`:"-"}),n.jsx("span",{children:"Kamera"}),n.jsx("span",{children:[y.camera_make,y.camera_model].filter(Boolean).join(" ")||"-"}),n.jsx("span",{children:"Orijinal Boyut"}),n.jsx("span",{children:Eo(y.original_size_bytes)})]})]})]})}),n.jsx(Ve,{title:"PDF OluÅtur",open:w,onCancel:()=>Y(!1),onOk:()=>{Kt()},confirmLoading:M,okText:"PDF OluÅtur",cancelText:"İptal",children:n.jsx("div",{className:"rpm-profile-grid",children:dm.map(ee=>n.jsxs("button",{type:"button",className:`rpm-profile-card ${D===ee?"is-selected":""}`,onClick:()=>_(ee),children:[n.jsx(ln,{strong:!0,children:am[ee]}),n.jsxs(ln,{className:"rpm-profile-size",children:["~",(z==null?void 0:z.estimates[ee].estimated_size_mb.toFixed(2))??"--"," MB"]}),n.jsx(ln,{type:"secondary",children:lm[ee]})]},ee))})})]}):n.jsx(be,{type:"error",message:"Rapor bilgisi yüklenemedi.",showIcon:!0})},mS=new Set(["no"]),um=100;function hS(t){const e=String((t==null?void 0:t.key)||(t==null?void 0:t.name)||"").trim().toLowerCase(),r=String((t==null?void 0:t.label)||"").trim().toLowerCase();return mS.has(e)||r==="no"}function xc(t){return!t||!Array.isArray(t.sections)?{sections:[]}:{sections:t.sections.map(r=>{const i={name:r.id||r.name||"",label:r.title||r.label||"",type:r.type,evaluation_style:r.evaluation_style,result_options:Array.isArray(r.result_options)?r.result_options.map(String):void 0,tespit_options:Array.isArray(r.tespit_options)?r.tespit_options.map(String):void 0,section_result_control:r.section_result_control,default_result:r.default_result};if(r.type==="info"||r.type==="general"){const a=(r.fields||[]).map(l
95=>({name:l.key||l.name||"",label:l.label||"",type:mm(l.type),required:l.required||!1,placeholder:l.placeholder,options:hm(l.options)}));return{...i,type:"info",fields:a}}if(r.type==="checklist"){const a=(r.items||[]).map(l=>({code:l.code||l.key||"",description:l.description||l.label||"",norm:l.norm,result_options:Array.isArray(l.result_options)?l.result_options.map(String):void 0,tespit_options:Array.isArray(l.tespit_options)?l.tespit_options.map(String):void 0,default_result:l.default_result,default_tespit:l.default_tespit,show_note:l.show_note===!0,is_group_header:l.is_group_header===!0,group_title:l.group_title||l.title,value_field:l.value_field===!0}));return{...i,type:"checklist",items:a}}if(r.type==="measurement_table"){const a=(r.columns||[]).filter(o=>!hS(o)).map(o=>{const c=o.type==="number"?"number":o.type==="select"?"select":"text";return{name:o.key||o.name||"",label:o.label||"",type:c,readOnly:o.read_only===!0||o.readOnly===!0,calculation:o.calculation,precision:Number.isFinite(Number(o.precision))?Number(o.precision):void 0,...c==="select"&&Array.isArray(o.options)?{options:o.options.map(String)}:{}}}),l=Number(r.max_rows);return{...i,type:"measurement_table",columns:a,min_rows:r.min_rows,max_rows:Number.isFinite(l)&&l>0?Math.min(l,um):um}}if(r.type==="summary")return{...i,type:"summary"};const s=(r.fields||[]).map(a=>({name:a.key||a.name||"",label:a.label||"",type:mm(a.type),required:a.required||!1,options:hm(a.options)}));return{...i,type:"info",fields:s}}),calculation_config:t.calculation_config}}function mm(t){return{text:"text",string:"text",number:"number",integer:"number",float:"number",select:"select",choice:"select",multiselect:"multiselect",multi_select:"multiselect",radio:"radio",checkbox:"checkbox",boolean:"checkbox",date:"date",textarea:"textarea",text_area:"textarea"}[t]||"text"}function hm(t){if(t&&Array.isArray(t)&&t.length!==0)return t.map(e=>typeof e=="string"?{label:e,value:e}:typeof e=="object"&&e!==null?{label:e.label||e.name||String(e.value||e),value:e.value??e.id??e}:{label:String(e),value:e})}const{Text:pS,Title:fS}=ft,gS=[],yS=[{key:"elektrik",label:"Elektrik Tesisatı Gözle Kontrol",color:"#1B5E8C",filename:"Elektrik Tesisatı Gözle Kontrol ve Fonksyion Testleri Periyodik Kontrol Raporu .pdf"},{key:"topraklama",label:"Topraklama Tesisatı",color:"#52c41a",filename:"Topraklama Tesisatı.pdf"},{key:"transformator",label:"Transformatör 1-36 kV",color:"#722ed1",filename:"Transformatör 1-36 kV Gözle Kontrol ve Topraklama Periyodik Kontrol Raporu .pdf"},{key:"yangin",label:"Yangın Algılama Sistemi",color:"#f5222d",filename:"Yangın Algılama ve Uyarı Sistemleri Periyodik Kontrol Raporu .pdf"},{key:"yildirim",label:"Yıldırımdan Korunma",color:"#fa8c16",filename:"Yıldırımdan Korunma Tesisatı Periyodik Kontrol Raporu (5).pdf"},{key:"jenerator",label:"Jeneratör",color:"#d46b08",filename:"Jeneratör Periyodik Kontrol Raporu.pdf"}],xS=t=>((t==null?void 0:t.sections)||[]).filter(e=>e.type==="checklist").flatMap(e=>(e.items||[]).filter(r=>!r.is_group_header&&r.code).map(r=>({code:r.code,description:r.description}))),vS=[{value:"UYGUNDUR",label:"Uygundur"},{value:"EKSIK_GIDERILMEZSE_UYGUN_DEGIL",label:"Uygun DeÄildir"}],pm=()=>{var Et,Pt;const{id:t}=jt(),[e]=Yc(),r=Le(),i=e.get("service_id"),s=e.get("scope_id"),a=!!t&&t!=="new",{data:l,isLoading:o,refetch:c}=ed(a?t:""),{data:d,isLoading:u}=Xs(),{data:m}=qr(),h=m||gS,p=Xj(),y=Zj(),[f,g]=k.useState(a?2:0),[v,S]=k.useState(null),[R,z]=k.useState(),[P,U]=k.useState(i||void 0),[A,w]=k.useState(null),[Y,D]=k.useState(void 0),[_,M]=k.useState(s||void 0),[b,I]=k.useState([]),[j,N]=k.useState([]),[$,ue]=k.useState(null),[oe,K]=k.useState([]),fe=k.useRef(null),[J,B]=k.useState(null),[he,de]=k.useState(0),[_e,De]=k.useState(!1),Ce=k.useRef(null),[Ue,se]=k.useState(!1),[q,ae]=k.useState({equipment:void 0,report_date:null,inspection_start_date:null,inspection_start_time:null,inspection_end_date:null,inspection_end_time:null,next_inspection_date:null,overall_result:void 0,device_1:void 0,device_2:void 0,device_thermal:void 0}),ge=k.useRef(q);ge.current=q;const Me=(te=fe.current)=>({selectedServiceId:P,selectedScopeId:_,selectedServiceScopeId:Y,formValues:{equipment:q.equipment,report_date:q.report_date?q.report_date.toISOString():null,inspection_start_date:q.inspection_start_date?q.inspection_start_date.toISOString():null,inspection_start_time:q.inspection_start_time?q.inspection_start_time.toISOString():null,inspection_end_date:q.inspection_end_date?q.inspection_end_date.toISOString():null,inspection_end_time:q.inspection_end_time?q.inspection_end_time.toISOString():null,next_inspection_date:q.next_inspection_date?q.next_inspection_date.toISOString():null,overall_result:q.overall_result,device_1:q.device_1,device_2:q.device_2,device_thermal:q.device_thermal},dynamicFields:te,hasChanges:a?_e||te!==null:!!P||!!_||!!q.equipment||te!==null}),ze=pj(a?`report-edit-${t}`:"report-new",Me,{intervalMs:5e3,isEmpty:te=>!te.hasChanges}),ut=()=>{const te=ze.draftValue;te&&(te.selectedServiceId&&U(te.selectedServiceId),te.selectedScopeId&&M(te.selectedScopeId),te.selectedServiceScopeId&&D(te.selectedServiceScopeId),te.formValues&&ae({equipment:te.formValues.equipment,report_date:te.formValues.report_date?Z(te.formValues.report_date):null,inspection_start_date:te.formValues.inspection_start_date?Z(te.formValues.inspection_start_date):null,inspection_start_time:te.formValues.inspection_start_time?Z(te.formValues.inspection_start_time):null,inspection_end_date:te.formValues.inspection_end_date?Z(te.formValues.inspection_end_date):null,inspection_end_time:te.formValues.inspection_end_time?Z(te.formValues.inspection_end_time):null,next_inspection_date:te.formValues.next_inspection_date?Z(te.formValues.next_inspection_date):null,overall_result:te.formValues.overall_result,device_1:te.formValues.device_1,device_2:te.formValues.device_2,device_thermal:te.formValues.device_thermal}),te.dynamicFields&&(B(te.dynamicFields),fe.current=te.dynamicFields,de(Ae=>Ae+1)),De(!0),ze.accept())},lt=(te,Ae)=>{De(!0),ae(qe=>({...qe,[te]:Ae}))},Zt=qt.useCallback(te=>{fe.current=te},[]),gt=k.useMemo(()=>h.find(te=>te.id===_),[h,_]),mn=k.useMemo(()=>{var te,Ae;return((te=A==null?void 0:A.service_scopes)==null?void 0:te.find(qe=>qe.id===Y))||((Ae=A==null?void 0:A.service_scopes)==null?void 0:Ae.find(qe=>
95qe.scope===_))},[_,Y,A]),On=te=>{var Ae,qe,Lt,kt,Je,wt;ae({equipment:(te==null?void 0:te.equipment)||void 0,report_date:te!=null&&te.report_date?Z(te.report_date):null,inspection_start_date:te!=null&&te.inspection_start_date?Z(te.inspection_start_date):null,inspection_start_time:te!=null&&te.inspection_start_time?Z(te.inspection_start_time,"HH:mm:ss"):null,inspection_end_date:te!=null&&te.inspection_end_date?Z(te.inspection_end_date):null,inspection_end_time:te!=null&&te.inspection_end_time?Z(te.inspection_end_time,"HH:mm:ss"):null,next_inspection_date:te!=null&&te.next_inspection_date?Z(te.next_inspection_date):null,overall_result:(te==null?void 0:te.overall_result)||void 0,device_1:(qe=(Ae=te==null?void 0:te.report_devices)==null?void 0:Ae.find($e=>$e.sira===1))==null?void 0:qe.device,device_2:(kt=(Lt=te==null?void 0:te.report_devices)==null?void 0:Lt.find($e=>$e.sira===2))==null?void 0:kt.device,device_thermal:(wt=(Je=te==null?void 0:te.report_devices)==null?void 0:Je.find($e=>$e.sira===3))==null?void 0:wt.device})};k.useEffect(()=>{var te;if(l&&a){const Ae=((te=l.template_detail)==null?void 0:te.scope)||s||void 0;U(l.service||void 0),M(Ae),D(void 0),On(l),l.template_detail&&(z(l.template_detail.id),l.template_detail.template_schema&&S(xc(l.template_detail.template_schema))),g(2)}},[s,a,l]),k.useEffect(()=>{(async()=>{var Ae,qe,Lt,kt;if(!P){w(null),I([]),N([]),z(void 0),S(null);return}se(!0);try{const Je=await dt.getService(P);w(Je);const wt=((Ae=Je.service_scopes)==null?void 0:Ae.find(yt=>yt.scope===s))||((qe=Je.service_scopes)==null?void 0:qe[0]),$e=((Lt=l==null?void 0:l.template_detail)==null?void 0:Lt.scope)||(wt==null?void 0:wt.scope)||Je.scope;D(wt==null?void 0:wt.id),M($e);const Gr=Je.service_equipment||[];if(Gr.length>0)I(Gr.map(yt=>({value:yt.equipment,label:yt.equipment_name})));else if(Je.branch){const yt=await dt.getEquipment({branch:Je.branch});I(yt.map(zt=>({value:zt.id,label:zt.name})))}else I([]);const hr=(await wr.getDevices({is_active:!0})).filter(yt=>{if(!$e)return!0;
95const zt=h.find(At=>At.id===$e);return zt!=null&&zt.kapsam_tipi?yt.kapsam_tipi==="ortak"||yt.kapsam_tipi===zt.kapsam_tipi:!0});N(hr);const an=Je.device_ids||[];if(an.length>0){const yt=an.map(St=>hr.find(is=>is.id===St)).filter(Boolean),zt=yt.filter(St=>St.device_type!=="TERMAL_KAMERA").map(St=>St.id),At=(kt=yt.find(St=>St.device_type==="TERMAL_KAMERA"))==null?void 0:kt.id;ae(St=>({...St,device_1:St.device_1||zt[0],device_2:St.device_2||zt[1],device_thermal:St.device_thermal||At}))}else if(!a)try{const yt=await Xe.getLastUsedDevices($e),zt=new Set(hr.map(et=>et.id)),At=Object.fromEntries(Object.entries(yt.slots||{}).filter(([,et])=>et&&zt.has(et)));K(Object.values(At));const St=ge.current,is=St.device_1||St.device_2||St.device_thermal;Object.keys(At).length>0&&!is&&(ae(et=>({...et,...At})),ue(yt.source_report_number))}catch{}}catch(Je){ce(Je,"İŠemri bilgileri yüklenemedi.")}finally{se(!1)}})()},[s,(Et=l==null?void 0:l.template_detail)==null?void 0:Et.scope,h,P]),k.useEffect(()=>{const te=async()=>{if(!_){z(void 0),S(null),Ce.current=null;return}if(Ce.current!==_){Ce.current=_,se(!0);try{const Ae=await Xe.getTemplates({scope:_,is_default:!0});if(!Ae.length){re.warning("Seçilen hizmet için varsayılan rapor Åablonu bulunamadı."),z(void 0),S(null);return}const qe=await Xe.getTemplate(Ae[0].id);z(qe.id),S(qe.template_schema?xc(qe.template_schema):null)}catch(Ae){ce(Ae,"Rapor Åablonu yüklenemedi.")}finally{se(!1)}}};a&&v||te()},[a,_,v]),k.useEffect(()=>{const te=q.inspection_start_date||q.report_date;if(!te)return;const Ae=Z(te).add(1,"year");ae(qe=>qe.next_inspection_date&&qe.next_inspection_date.isSame(Ae,"day")?qe:{...qe,next_inspection_date:Ae})},[q.inspection_start_date,q.report_date]);const Gn=async()=>{if(t)try{await Xe.refreshPrefill(t),re.success("İŠemrinden ön doldurma alanları yenilendi."),await c()}catch(te){ce(te,"Ãn doldurma yenilenemedi.")}},jn=te=>{fe.current=te;const Ae={...Me(te),hasChanges:!0};if(ze.saveNow(Ae),!P||!R){re.warning("Ãnce hizmet ve kapsam seçimini tamamlayın.");return}if(Kt&&!q.equipment){re.warning("Muayene edilen ekipman seçimi zorunludur.");return}if(!q.report_date){re.warning("Raporu kaydetmeden önce rapor tarihini seçin.");return}const qe=[q.device_1?{device:q.device_1,sira:1}:null,q.device_2?{device:q.device_2,sira:2}:null,q.device_thermal?{device:q.device_thermal,sira:3}:null].filter($e=>$e!==null),Lt=q.report_date,kt=q.inspection_start_date||Lt,Je=q.inspection_end_date||kt,wt={service:P,equipment:q.equipment,template:R,dynamic_fields:te,overall_result:q.overall_result||null,report_date:Lt.format("YYYY-MM-DD"),inspection_start_date:kt.format("YYYY-MM-DD"),inspection_end_date:Je.format("YYYY-MM-DD"),inspection_start_time:q.inspection_start_time?q.inspection_start_time.format("HH:mm:ss"):null,inspection_end_time:q.inspection_end_time?q.inspection_end_time.format("HH:mm:ss"):null,next_inspection_date:q.next_inspection_date?q.next_inspection_date.format("YYYY-MM-DD"):null,report_devices:qe};if(a){y.mutate({id:t,data:wt},{onSuccess:()=>{ze.clear(),r(`/reports/${t}`)},onError:()=>ze.saveNow(Ae)});return}p.mutate(wt,{onSuccess:$e=>{ze.clear(),$e!=null&&$e.id?r(`/reports/${$e.id}`):r("/reports")},onError:()=>ze.saveNow(Ae)})};if(a&&o)return n.jsx(mt,{size:"large",style:{display:"block",margin:"100px auto"}});if(a&&!l&&!o)return n.jsx(Gc,{status:"404",title:"Rapor bulunamadı"});const Ln=cr(gt==null?void 0:gt.kapsam_tipi),Jt=(l==null?void 0:l.dynamic_fields)||{},Wn=!!P,Kt=(gt==null?void 0:gt.kapsam_tipi)!=="elektrik",ee=Wn&&!!_&&(!Kt||!!q.equipment),O=n.jsxs("div",{children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"İŠemrini seçin",description:"Rapor taslaÄı, seçtiÄiniz iÅ emrinden firma bilgileri, SGK sicil no, İSG-KATİP sözleÅme ID ve yetkili mühendis bilgilerini otomatik alır."}),n.jsxs(H,{size:"small",title:n.jsxs(W,{children:[n.jsx(_r,{style:{color:"#cf1322"}}),n.jsx("span",{children:"Referans PDF Taslakları"})]}),style:{marginBottom:16,borderColor:"#ffccc7",background:"#fff1f0"},children:[n.jsx(W,{wrap:!0,children:yS.map(te=>n.jsx(Xn,{title:`Rapor taslaÄını PDF olarak görüntüle: ${te.label}`,children:n.jsx(T,{icon:n.jsx(_r,{}),size:"small",style:{borderColor:te.color,color:te.color},onClick:()=>{const Ae=document.createElement("a");Ae.href=`/media/pdf_templates/${encodeURIComponent(te.filename)}`,Ae.target="_blank",Ae.click()},children:te.label})},te.key))}),n.jsx(pS,{type:"secondary",style:{display:"block",marginTop:8,fontSize:11},children:"ð Bu PDF'ler referans taslak raporlardır. İŠemri seçip rapor oluÅturduktan sonra sistem bu Åablona uygun PDF üretir."})]}),n.jsxs(H,{size:"small",title:"İŠEmri Seçimi",children:[n.jsx(me,{gutter:16,children:n.jsxs(C,{span:24,children:[n.jsx("label",{style:{fontWeight:600},children:"İŠEmri (Hizmet)"}),n.jsx(pe,{style:{width:"100%",marginTop:8}
95,showSearch:!0,placeholder:"İŠemri / hizmet kodu veya firma adı ile ara",loading:u,value:P,disabled:a,optionFilterProp:"label",size:"large",options:(d||[]).map(te=>({value:te.id,label:`${te.service_number} â ${te.company_name} (${vn(te.scope_name)})`})),onChange:te=>{U(te),ae(Ae=>({...Ae,equipment:void 0}))}})]})}),A&&n.jsx(be,{type:"success",showIcon:!0,style:{marginTop:12},message:`İŠemri: ${A.service_number||A.work_order_number}`,description:n.jsxs(F,{size:"small",column:2,children:[n.jsx(F.Item,{label:"Firma",children:A.company_name||"-"}),n.jsxs(F.Item,{label:"Kapsam Sayısı",children:[(A.service_scopes||[]).length," kapsam"]}),n.jsx(F.Item,{label:"SGK Sicil",children:Jt.sgk_sicil_no||A.sgk_sicil_no||"-"}),n.jsx(F.Item,{label:"İSG-KATİP ID",children:Jt.isg_katip_sozlesme_id||A.isg_katip_sozlesme_id||"-"})]})})]}),A&&(A.service_scopes||[]).length>1&&n.jsxs(H,{size:"small",title:"Rapor Kapsamı Seçin",style:{marginTop:12},children:[n.jsx(pe,{style:{width:"100%"},value:Y,disabled:a,options:((A==null?void 0:A.service_scopes)||[]).map(te=>({value:te.id,label:`${te.scope_code||"â"} â ${vn(te.scope_name)}`})),onChange:te=>{var qe;D(te);const Ae=(qe=A==null?void 0:A.service_scopes)==null?void 0:qe.find(Lt=>Lt.id===te);M(Ae==null?void 0:Ae.scope)},placeholder:"Kapsam seçin"}),gt&&n.jsxs("div",{style:{marginTop:8},children:[n.jsx(ie,{color:Ln.color,children:gt.kapsam_tipi_display||Ln.label}),n.jsx(ie,{children:gt.code})]})]}),mn!=null&&mn.report_id&&!a?n.jsx(be,{type:"warning",showIcon:!0,style:{marginTop:12},message:"Bu kapsam için zaten bir rapor taslaÄı mevcut",description:n.jsx(T,{type:"link",style:{padding:0},onClick:()=>r(`/reports/${mn.report_id}`),children:"Mevcut taslaÄı aç â"})}):null,n.jsx("div",{style:{marginTop:16,textAlign:"right"},children:n.jsx(T,{type:"primary",size:"large",icon:n.jsx(Dn,{}),disabled:!Wn||Ue,loading:Ue,onClick:()=>g(1),style:{background:"#1B5E8C"},children:"İleri: Ekipman & Tarih"})})]}),X=n.jsxs("div",{children:[n.jsxs(H,{size:"small",title:"Ekipman ve Tarih Bilgileri",children:[Kt&&n.jsx(me,{gutter:16,children:n.jsxs(C,{span:24,children:[n.jsxs("label",{style:{fontWeight:600},children:["Muayene Edilen Ekipman ",n.jsx("span",{style:{color:"#f5222d"},children:"*"})]}),n.jsx(pe,{style:{width:"100%",marginTop:8},value:q.equipment,options:b,onChange:te=>lt("equipment",te),placeholder:"Ekipman seçin",showSearch:!0,optionFilterProp:"label"})]})}),n.jsx(be,{type:"info",showIcon:!0,style:{marginTop:Kt?16:0,marginBottom:8},message:"Kontrol tarihlerini iÅ emrinden baÄımsız olarak elle girebilirsiniz."}),n.jsxs(me,{gutter:16,children:[n.jsxs(C,{xs:24,md:12,xl:6,children:[n.jsx("label",{style:{fontWeight:600},children:"Periyodik Kontrol BaÅlangıç Tarihi"}),n.jsx(We,{style:{width:"100%",marginTop:8},format:"DD/MM/YYYY",value:q.inspection_start_date,onChange:te=>lt("inspection_start_date",te)})]}),n.jsxs(C,{xs:24,md:12,xl:6,children:[n.jsx("label",{style:{fontWeight:600},children:"BaÅlangıç Saati"}),n.jsx(rl,{style:{width:"100%",marginTop:8},format:"HH:mm",minuteStep:5,value:q.inspection_start_time,onChange:te=>lt("inspection_start_time",te)})]}),n.jsxs(C,{xs:24,md:12,xl:6,children:[n.jsx("label",{style:{fontWeight:600},children:"Periyodik Kontrol BitiÅ Tarihi"}),n.jsx(We,{style:{width:"100%",marginTop:8},format:"DD/MM/YYYY",value:q.inspection_end_date,onChange:te=>lt("inspection_end_date",te)})]}),n.jsxs(C,{xs:24,md:12,xl:6,children:[n.jsx("label",{style:{fontWeight:600},children:"BitiÅ Saati"}),n.jsx(rl,{style:{width:"100%",marginTop:8},format:"HH:mm",minuteStep:5,value:q.inspection_end_time,onChange:te=>lt("inspection_end_time",te)})]})]}),n.jsxs(me,{gutter:16,style:{marginTop:12},children:[n.jsxs(C,{xs:24,md:12,xl:6,children:[n.jsxs("label",{style:{fontWeight:600},children:["Rapor Tarihi ",n.jsx("span",{style:{color:"#f5222d"},children:"*"})]}),n.jsx(We,{style:{width:"100%",marginTop:8},format:"DD/MM/YYYY",value:q.report_date,onChange:te=>lt("report_date",te)})]}),n.jsxs(C,{xs:24,md:12,xl:6,children:[n.jsx("label",{style:{fontWeight:600},children:"Sonraki Kontrol Tarihi"}),n.jsx(We,{style:{width:"100%",marginTop:8},format:"DD/MM/YYYY",value:q.next_inspection_date,onChange:te=>lt("next_inspection_date",te)})]})]}),n.jsxs("div",{style:{marginTop:16},children:[n.jsx("label",{style:{fontWeight:600},children:"Genel Sonuç"}),n.jsx(_s.Group,{style:{display:"grid",gap:8,marginTop:8}
95,value:q.overall_result,onChange:te=>lt("overall_result",te.target.value),children:vS.map(te=>n.jsx(_s,{value:te.value,children:te.label},te.value))})]})]}),n.jsxs(H,{size:"small",title:"Kullanılan Cihazlar â Ãlçüm Aletleri & Termal Kamera",extra:n.jsx("a",{href:P?`/services/${P}/edit`:"#",target:"_blank",rel:"noreferrer",style:{fontSize:12},children:"İŠemrindeki cihazları deÄiÅtir â"}),style:{marginTop:12},children:[((Pt=A==null?void 0:A.device_ids)==null?void 0:Pt.length)>0&&n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:12},message:`İŠemrinde ${A.device_ids.length} cihaz seçilmiÅ â rapora otomatik aktarıldı.`}),$&&n.jsx(be,{type:"success",showIcon:!0,closable:!0,style:{marginBottom:12},message:`Son raporunuzdaki (${$}) cihazlar otomatik seçildi â dilerseniz deÄiÅtirin.`,onClose:()=>ue(null)}),n.jsx(me,{gutter:16,children:[{key:"device_1",label:"Ãlçüm Cihazı 1",thermal:!1},{key:"device_2",label:"Ãlçüm Cihazı 2",thermal:!1},{key:"device_thermal",label:"Termal Kamera",thermal:!0}].map(te=>{const Ae=te.key,qe=q[Ae],Lt=j.filter($e=>te.thermal?$e.device_type==="TERMAL_KAMERA":$e.device_type!=="TERMAL_KAMERA").sort(($e,Gr)=>{const Wr=oe.includes($e.id)?0:1,hr=oe.includes(Gr.id)?0:1;return Wr-hr}),kt=j.find($e=>$e.id===qe),Je=kt==null?void 0:kt.current_calibration,wt=(Je==null?void 0:Je.expiry_date)||(Je==null?void 0:Je.kalibrasyon_gecerlilik_tarihi);return n.jsxs(C,{xs:24,lg:8,children:[n.jsx("label",{style:{fontWeight:500},children:te.label}),n.jsx(pe,{style:{width:"100%",marginTop:8},allowClear:!0,showSearch:!0,optionFilterProp:"label",value:qe,options:Lt.map($e=>{const Wr=$e.is_calibration_valid?"":" â kalibrasyon yok/süresi geçti",hr=oe.includes($e.id)?" â
son kullanılan":"";return{value:$e.id,label:`${$e.name} ⢠${$e.brand||"-"} ${$e.model_name||""}${hr}${Wr}`.trim()}}),onChange:$e=>lt(Ae,$e),placeholder:te.thermal?"Termal kamera seçin":"Kayıtlı cihazlardan seçin",notFoundContent:te.thermal?"Termal kamera tipinde cihaz yok â Cihazlar sayfasından ekleyin":"Kayıtlı cihaz bulunamadı â Cihazlar sayfasından ekleyin"}),kt&&n.jsxs("div",{style:{marginTop:6,padding:8,background:kt.is_calibration_valid?"rgba(15, 118, 110, 0.06)":"#fff7ed",borderRadius:6,fontSize:12,border:kt.is_calibration_valid?"1px solid rgba(15, 118, 110, 0.2)":"1px solid #fed7aa"},children:[n.jsxs("div",{children:["Marka/Model: ",n.jsxs("b",{children:[kt.brand||"-"," / ",kt.model_name||"-"]})]}),n.jsxs("div",{children:["Seri No: ",n.jsx("b",{children:kt.serial_number||"-"})]}),n.jsxs("div",{children:["Kalibrasyon No: ",n.jsx("b",{children:(Je==null?void 0:Je.kalibrasyon_numarasi)||(Je==null?void 0:Je.certificate_no)||"-"})]}),(Je==null?void 0:Je.calibration_date)&&n.jsxs("div",{children:["Kalibrasyon Tarihi: ",n.jsx("b",{children:Z(Je.calibration_date).format("DD.MM.YYYY")})]}),wt&&n.jsxs("div",{children:["Kalibrasyon Geçerlilik: ",n.jsx("b",{children:Z(wt).format("DD.MM.YYYY")})]}),!kt.is_calibration_valid&&n.jsx("div",{style:{marginTop:4,color:"#c2410c",fontWeight:600},children:"â Bu cihazın kalibrasyon bilgisi eksik/süresi geçmiÅ"}),n.jsx("div",{style:{marginTop:6},children:n.jsx("a",{href:`/devices/${kt.id}`,target:"_blank",rel:"noreferrer",style:{fontSize:11},children:"Kalibrasyon kayıtlarını yönet â"})})]})]},te.key)})}),!q.device_thermal&&n.jsx(be,{type:"info",showIcon:!0,style:{marginTop:12},message:"Termal kamera cihaz listesinde yoksa, aÅaÄıdaki â3. Termal Kamera Bilgileriâ bölümünden cihaz bilgilerini manuel girebilirsiniz."})]}),n.jsx(H,{size:"small",title:"İŠEmrinden Ãn Doldurulan Alanlar",style:{marginTop:12,background:"#fafafa"},extra:a?n.jsx(T,{icon:n.jsx(Is,{}),size:"small",onClick:()=>void Gn(),children:"Yenile"}):null,children:n.jsxs(F,{size:"small",column:2,children:[n.jsx(F.Item,{label:"Firma",children:Jt.f
95irma_adi||(A==null?void 0:A.company_name)||"-"}),n.jsx(F.Item,{label:"SGK Sicil No",children:Jt.sgk_sicil_no||"-"}),n.jsx(F.Item,{label:"Kontrol Adresi",children:Jt.periyodik_kontrol_adresi||"-"}),n.jsx(F.Item,{label:"İSG-KATİP ID",children:Jt.isg_katip_sozlesme_id||"-"}),n.jsx(F.Item,{label:"Yetkili Mühendis",children:Jt.yetkili_adi_soyadi||"-"}),n.jsx(F.Item,{label:"Yetkili Kayıt No",children:Jt.yetkili_kayit_no||"-"})]})}),n.jsxs(me,{justify:"space-between",style:{marginTop:16},children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>g(0),children:"Geri"}),n.jsx(T,{type:"primary",size:"large",icon:n.jsx(Cs,{}),disabled:!ee||Ue,loading:Ue,onClick:()=>g(2),style:{background:"#1B5E8C"},children:"İleri: Rapor İçeriÄi"})]})]}),Oe=n.jsxs("div",{children:[Ue&&n.jsx("div",{style:{textAlign:"center",padding:40},children:n.jsx(mt,{tip:"Rapor Åablonu yükleniyor..."})}),!Ue&&!v&&n.jsx(be,{message:"Bu hizmet için rapor Åablonu bulunamadı.",description:"Lütfen sistem yöneticinize rapor Åablonu tanımlamasını isteyin.",type:"warning",showIcon:!0}),v&&n.jsxs(n.Fragment,{children:[n.jsx(H,{size:"small",title:"Rapor Tarihi",style:{marginBottom:16},children:n.jsx(me,{gutter:16,children:n.jsxs(C,{xs:24,md:12,xl:6,children:[n.jsxs("label",{style:{fontWeight:600},children:["Rapor Tarihi ",n.jsx("span",{style:{color:"#f5222d"},children:"*"})]}),n.jsx(We,{style:{width:"100%",marginTop:8},format:"DD/MM/YYYY",value:q.report_date,onChange:te=>lt("report_date",te)})]})})}),n.jsx(lf,{schema:v,initialValues:J||(a?l==null?void 0:l.dynamic_fields:void 0),onSubmit:jn,onValuesChange:Zt,loading:p.isPending||y.isPending,extraActions:n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>g(1),children:"Geri"})},`${t||"new"}-${(l==null?void 0:l.updated_at)||_||"schema"}-${he}`)]}),a&&l&&n.jsx(H,{title:"Rapor FotoÄrafları",style:{marginTop:24},children:n.jsx(gf,{reportId:l.id,checklistItems:xS(v)})})]}),Qe=[{title:"İŠEmri",icon:n.jsx(Tv,{}),description:P?(A==null?void 0:A.company_name)||"Seçildi":"Seçilmedi"},{title:Kt?"Ekipman & Tarih":"Tarih & Sonuç",icon:n.jsx(Cs,{}),description:q.report_date?"Tarih seçildi":Kt?"Ekipman seç":"Tarih rapor içerikte"},{title:"Rapor İçeriÄi",icon:n.jsx(Dn,{}),description:v?"Åablon hazır":"Åablon yükleniyor"}];return n.jsxs("div",{children:[n.jsxs(Ve,{open:ze.hasDraft,title:"Yarım kalan rapor taslaÄı var",okText:"Devam Et",cancelText:"Yeni BaÅlat",onOk:ut,onCancel:ze.dismiss,closable:!1,maskClosable:!1,children:["Ãnceki oturumdan kaydedilmiÅ bir taslaÄınız bulundu",ze.draftSavedAt&&` (${Z(ze.draftSavedAt).format("DD.MM.YYYY HH:mm")})`,". Devam etmek ister misiniz?"]}),n.jsxs("div",{style:{marginBottom:16,display:"flex",alignItems:"center",gap:12},children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>r("/reports"),children:"Raporlara Dön"}),n.jsx(fS,{level:4,style:{margin:0},children:a?`Rapor Düzenle: ${l==null?void 0:l.report_number}`:"Yeni Rapor TaslaÄı"}),gt&&n.jsx(ie,{color:Ln.color,children:gt.kapsam_tipi_display||Ln.label})]}),n.jsx(H,{style:{marginBottom:20},children:n.jsx(qc,{current:f,items:Qe,onChange:te=>{te===0&&g(0),te===1&&Wn&&g(1),te===2&&ee&&g(2)}})}),f===0&&O,f===1&&X,f===2&&Oe]})},ol="hkingpgclcnbjakggockcmibpjmbmafn".trim(),bS=2e4;class Ht extends Error{constructor(r,i){super(i);vu(this,"code");this.name="BridgeError",this.code=r}}const Un={EXTENSION_NOT_FOUND:"E-imza eklentisi bulunamadı.",NATIVE_HOST_NOT_INSTALLED:"EkipLab İmza Yardımcısı bilgisayarınızda kurulu deÄil veya çalıÅtırılamıyor.",CONNECTED:"BaÄlantı baÅarılı. İmza altyapısı hazır.",SIGNING_NOT_ACTIVE:"Bu aÅamada gerçek imzalama henüz aktif deÄildir."},yf={DOWNLOADING:"Rapor indiriliyorâ¦",SIGNING:"İmzalanıyor⦠(PIN girmeniz istenebilir)",UPLOADING:"İmzalı rapor sunucuya yükleniyorâ¦"};function xf(){const t=window.chrome;return t!=null&&t.runtime&&typeof t.runtime.sendMessage=="function"?t.runtime:null}function fm(t){const e=window.crypto;if(e!=null&&e.getRandomValues){const r=e.getRandomValues(new Uint8Array(8)),i=Array.from(r,s=>s.toString(16).padStart(2,"0")).join("");return`${t}_${i}`}return`${t}_${Math.random().toString(16).slice(2)}${Date.now().toString(16)}`}function sd(t,e={}){return{type:t,requestId:fm("sigreq"),nonce:fm("nonce"),timestamp:Date.now(),...e}}function ad(t,e=bS){return new Promise((r,i)=>{const s=xf();if(!s||!ol){i(new Ht("EXTENSION_NOT_FOUND",Un.EXTENSION_NOT_FOUND));return}let a=!1;const l=window.setTimeout(()=>{a||(a=!0,i(new Ht("EXTENSION_NOT_FOUND",Un.EXTENSION_NOT_FOUND)))},e);try{s.sendMessage(ol,t,o=>{if(!a){if(a=!0,window.clearTimeout(l),s.lastError||o===void 0||o===null){i(new Ht("EXTENSION_NOT_FOUND",Un.EXTENSION_NOT_FOUND));return}r(o)}})}catch{if(a)return;a=!0,window.clearTimeout(l),i(new Ht("EXTENSION_NOT_FOUND",Un.EXTENSION_NOT_FOUND))}})}function ld(t){if(!t||typeof t!="object")throw new Ht("BRIDGE_ERROR","İmza köprüsünden beklenmeyen yanıt alındı.");
95if(t.ok===!1)throw t.code==="NATIVE_HOST_UNAVAILABLE"||t.code==="NATIVE_HOST_TIMEOUT"?new Ht("NATIVE_HOST_NOT_INSTALLED",Un.NATIVE_HOST_NOT_INSTALLED):new Ht("BRIDGE_ERROR",t.message||"İmza köprüsü hatası.");return t}async function _S(){const t=await ad(sd("GET_VERSION"));return ld(t)}async function vc(){const t=await ad(sd("PING"));return ld(t)}async function jS(){const t=await ad(sd("LIST_CERTIFICATES"),65e3);return ld(t).certificates||[]}const kS=5*60*1e3,cl="0.1.3",dl="0.3.0",ul=(t,e)=>{if(!t)return!1;const r=t.split(".").map(Number),i=e.split(".").map(Number),s=Math.max(r.length,i.length);for(let a=0;a<s;a+=1){const l=Number.isFinite(r[a])?r[a]:0,o=Number.isFinite(i[a])?i[a]:0;if(l>o)return!0;if(l<o)return!1}return!0};function vf(t,e){return new Promise((r,i)=>{const s=xf();if(!s||!ol||typeof s.connect!="function"){i(new Ht("EXTENSION_NOT_FOUND",Un.EXTENSION_NOT_FOUND));return}let a;try{a=s.connect(ol,{name:"ekiplab-sign"})}catch{i(new Ht("EXTENSION_NOT_FOUND",Un.EXTENSION_NOT_FOUND));return}let l=!1;const o=d=>{if(!l){l=!0,window.clearTimeout(c);try{a.disconnect()}catch{}d()}},c=window.setTimeout(()=>{o(()=>i(new Ht("BRIDGE_ERROR","İmzalama zaman aÅımına uÄradı.")))},kS);a.onDisconnect.addListener(()=>{o(()=>i(new Ht("EXTENSION_NOT_FOUND",Un.EXTENSION_NOT_FOUND)))}),a.onMessage.addListener(d=>{const u=d;if(!(!u||typeof u!="object")){if(u.type==="SIGN_PDF_PROGRESS"){u.stage&&e&&e(u.stage);return}if(u.type==="SIGN_PDF_COMPLETED"){o(()=>r(u));return}u.type==="ERROR"&&o(()=>{u.code==="NATIVE_HOST_UNAVAILABLE"||u.code==="NATIVE_HOST_TIMEOUT"?i(new Ht("NATIVE_HOST_NOT_INSTALLED",Un.NATIVE_HOST_NOT_INSTALLED)):i(new Ht("BRIDGE_ERROR",u.message||"İmzalama baÅarısız."))})}}),a.postMessage({...t,timestamp:Date.now()})})}const SS=({reportId:t,reportNo:e,canSign:r,onSigned:i})=>{const[s,a]=k.useState(null),[l,o]=k.useState(null),[c,d]=k.useState(null),[u,m]=k.useState(null),h=v=>{v instanceof Ht?v.code==="EXTENSION_NOT_FOUND"?d({kind:"warning",title:Un.EXTENSION_NOT_FOUND,description:"EkipLab İmza Köprüsü tarayıcı eklentisinin yüklü ve etkin olduÄundan emin olun."}):v.code==="NATIVE_HOST_NOT_INSTALLED"?d({kind:"error",title:Un.NATIVE_HOST_NOT_INSTALLED,description:"EkipLab İmza Yardımcısı uygulamasını kurup tarayıcıyı yeniden baÅlatın."}):d({kind:"error",title:v.message}):d({kind:"error",title:"Beklenmeyen bir hata oluÅtu."})},p=async()=>{a("extension"),d(null);try{await _S(),d({kind:"success",title:Un.CONNECTED})}catch(v){h(v)}finally{a(null)}},y=async()=>{a("native"),d(null);try{const v=await vc();d({kind:"success",title:"EkipLab İmza Köprüsü çalıÅıyor.",description:v.nativeHostVersion?`İmza yardımcısı sürümü: ${v.nativeHostVersion}`:void 0})}catch(v){h(v)}finally{a(null)}},f=async()=>{a("certs"),d(null);try{const v=await jS();m(v),v.length===0&&d({kind:"warning",title:"İmzalayıcıda sertifika bulunamadı.",description:"USB token takılı mı? İmza yardımcısı yapılandırması doÄru mu?"})}catch(v){m(null),h(v)}finally{a(null)}},g=async()=>{a("sign"),d(null),o("İmza oturumu açılıyorâ¦");try{const v=await vc();if(!ul(v.extensionVersion,cl)||!ul(v.nativeHostVersion,dl))throw new Ht("BRIDGE_ERROR",`E-imzanın doÄru kutuya yerleÅmesi için İmza Köprüsü ${cl} ve İmza Yardımcısı ${dl} veya üzeri gereklidir. Lütfen ikisini de güncelleyin.`);const S=await Xe.createSigningSession(t),R=await vf(S,z=>{o(yf[z]||null)});d({kind:"success",title:"Rapor e-imza ile imzalandı ve sisteme yüklendi.",description:R.message||void 0}),re.success(`${e} imzalandı.`),i==null||i()}catch(v){v instanceof Ht?h(v):(ce(v,"İmza oturumu açılamadı."),d({kind:"error",title:"İmza oturumu açılamadı."}))}finally{o(null),a(null)}};return n.jsxs(H,{size:"small",title:"E-İmza Köprüsü",extra:n.jsx(ie,{color:"purple",children:"Beta"}),children:[n.jsx("p",{style:{marginTop:0},children:"Raporu, tarayıcı eklentisi üzerinden bilgisayarınızdaki EkipLab İmza Yardımcısı ile imzalayın. PIN'iniz yalnızca bilgisayarınızda sorulur; tarayıcıya veya sunucuya iletilmez."}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{type:"primary",icon:n.jsx(at,{}),loading:s==="sign",disabled:!r||s!==null&&s!=="sign",onClick:()=>void g(),children:"E-imza ile imzala"}),n.jsx(T,{icon:n.jsx(qn,{}),loading:s==="extension",disabled:s!==null&&s!=="extension",onClick:()=>void p(),children:"Eklentiyi kontrol et"}),n.jsx(T,{icon:n.jsx(Av,{}),loading:s==="native",disabled:s!==null&&s!=="native",onClick:()=>void y(),children:"BaÄlantıyı test et"}),n.jsx(T,{icon:n.jsx(Mv,{}),loading:s==="certs",disabled:s!==null&&s!=="certs",onClick:()=>void f(),children:"Sertifikaları görüntüle"})]}),!r&&n.jsx(be,{style:{marginTop:12},type:"info",showIcon:!0,message:"İmzalamak için raporun onaylanmıŠve PDF'inin üretilmiÅ olması gerekir."}),l&&n.jsx(be,{style:{marginTop:12},type:"info",showIcon:!0,message:l}),c&&n.jsx(be,{style:{marginTop:12}
95,type:c.kind,showIcon:!0,message:c.title,description:c.description}),u&&u.length>0&&n.jsx(Ie,{style:{marginTop:12},rowKey:v=>`${v.serial}-${v.subject}`,size:"small",dataSource:u,pagination:!1,columns:[{title:"Sertifika Sahibi",dataIndex:"subject",key:"subject"},{title:"Veren",dataIndex:"issuer",key:"issuer",render:v=>v||"-"},{title:"Kaynak",key:"source",render:(v,S)=>n.jsx(ie,{color:S.source==="pkcs11"?"blue":"default",children:S.source==="pkcs11"?`USB Token${S.tokenLabel?` (${S.tokenLabel})`:""}`:"Dosya Sertifikası"})},{title:"Geçerlilik",key:"validity",render:(v,S)=>{const R=S.validUntil?Z(S.validUntil):null,z=R?R.isBefore(Z()):!1;return n.jsxs("span",{children:[R?R.format("DD/MM/YYYY"):"-"," ",R&&n.jsx(ie,{color:z?"red":"green",children:z?"Süresi dolmuÅ":"Geçerli"})]})}}]})]})},ES=t=>((t==null?void 0:t.sections)||[]).filter(e=>e.type==="checklist").flatMap(e=>(e.items||[]).map(r=>({code:r.code,description:r.description}))),wS=()=>{var J;const{id:t}=jt(),e=Le(),{data:r,isLoading:i,refetch:s}=ed(t||""),a=tk(),l=nk(),o=rk(),[c,d]=k.useState(!1),[u,m]=k.useState(!1),[h,p]=k.useState(!1),[y,f]=k.useState([]),[g,v]=k.useState(null);if(k.useEffect(()=>{(async()=>{if(r)try{const[he,de]=await Promise.all([Xe.getPdfStatus(r.id),Xe.getSignatureRecords(r.id)]);v(he),f(de||[])}catch{v(null),f([])}})()},[r==null?void 0:r.id,r==null?void 0:r.status]),i)return n.jsx("div",{style:{textAlign:"center",padding:"50px"},children:n.jsx(mt,{size:"large"})});if(!r)return n.jsx(be,{message:"Rapor bulunamadı",type:"error"});const S=r.service_detail,R=r.equipment_detail,z=r.template_detail,P=vr(r.scope_category||(S==null?void 0:S.scope_category)),U=r.revision_logs||[],A=z==null?void 0:z.template_schema,w=A?xc(A):null,Y=(B,he)=>{const de=window.URL.createObjectURL(B),_e=document.createElement("a");_e.href=de,_e.download=he,document.body.appendChild(_e),_e.click(),_e.remove(),window.URL.revokeObjectURL(de)},D=async()=>{const[B,he]=await Promise.all([Xe.getPdfStatus(r.id),Xe.getSignatureRecords(r.id)]);v(B),f(he||[])},_=async B=>{let he=await Xe.getPdfStatus(r.id);if(v(he),B(he))return!0;for(let de=0;de<30;de+=1)if(await new Promise(_e=>setTimeout(_e,2e3)),he=await Xe.getPdfStatus(r.id),v(he),B(he))return!0;return!1},M=async()=>{d(!0);try{const B=(g==null?void 0:g.pdf_generated_at)||r.pdf_generated_at||null,he=await Xe.generatePdf(r.id);re.success(he.message||"PDF üretimi baÅlatıldı."),await _(_e=>_e.has_pdf?B?_e.pdf_generated_at?Z(_e.pdf_generated_at).isAfter(Z(B)):!1:!0:!1)&&re.success("PDF hazır."),await s(),await D()}catch(B){ce(B,"PDF üretilemedi.")}finally{d(!1)}},b=async(B="unsigned")=>{try{const he=await Xe.previewPdf(r.id,B),de=window.URL.createObjectURL(he);window.open(de,"_blank")}catch(he){ce(he,"PDF önizleme yapılamadı.")}},I=async(B="unsigned")=>{try{const he=await Xe.downloadPdf(r.id,B),de=`${r.report_number}${B==="signed"?"_signed":""}.pdf`,_e=(B==="signed"?r.download_filename_signed:r.download_filename)||de;Y(he,_e)}catch(he){ce(he,"PDF indirilemedi.")}},j=()=>{let B;Ve.confirm({title:"Islak İmza Onayı",content:n.jsxs("div",{children:[n.jsx("p",{children:"Bu raporu ıslak imza ile imzalamak istediÄinizi onaylayın."}),n.jsxs("p",{style:{color:"#8c8c8c",fontSize:12},children:["İsteÄe baÄlı olarak ",n.jsx("b",{children:"imza görseli (PNG/JPG/WEBP/BMP/TIFF)"})," veya ",n.jsx("b",{children:"taranmıŠPDF"})," yükleyebilirsiniz. Yüklenen imza, raporun son sayfasındaki onay bölümünde görünecektir."]}),n.jsx(An,{accept:".pdf,.png,.jpg,.jpeg,.webp,.bmp,.tif,.tiff,image/png,image/jpeg,image/webp,image/bmp,image/tiff,application/pdf",beforeUpload:he=>(B=he,!1),onRemove:()=>{B=void 0},maxCount:1,children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"TaranmıŠPDF veya Görsel Seç (opsiyonel)"})})]}),okText:"Islak İmza Onayla",cancelText:"İptal",onOk:async()=>{m(!0);try{const he=await Xe.confirmWetSignature(r.id,B);re.success(he.message||"Islak imza kaydedildi."),await s(),await D()}catch(he){ce(he,"Islak imza uygulanamadı.")}finally{m(!1)}}})},N=async()=>{try{const B=await Xe.verifySignatures(r.id);f(B.signature_records||[]),(B.signature_records||[]).length>0?re.success("İmza kayıtları güncellendi."):re.info("Rapor için imza kaydı bulunamadı.")}catch(B){ce(B,"İmza kayıtları doÄrulanamadı.")}},$=()=>{Ve.confirm({title:"İmzayı Kaldır ve Raporu Düzenle",content:n.jsxs("div",{children:[n.jsx("p",{children:"Bu iÅlem mevcut imzayı, imzalı PDFâyi ve imza kayıtlarını kaldırır. Rapor âRevizyon Bekliyorâ durumuna alınarak yeniden düzenlemeye açılır."}),n.jsx("p",{style:{color:"#cf1322",fontWeight:600},children:"DeÄiÅikliklerden sonra raporu tekrar onaylayıp imzalamanız gerekir."})]}),okText:"İmzayı Kaldır ve Düzenle",okButtonProps:{danger:!0},cancelText:"Vazgeç",onOk:async()=>{p(!0);try{const B=await Xe.removeSignature(r.id);re.success(B.message),await s(),e(`/reports/${r.id}/edit`)}catch(B){ce(B,"İmza kaldırılamadı.")}finally{p(!1)}}})},ue=()=>{let B="";Ve.confirm({title:"Revizyon Talep Et",content:n.jsx(G.TextArea,{autoSize:{minRows:3,maxRows:6},placeholder:"Revizyon notunu girin",onChange:he=>{B=he.target.value}}),onOk:()=>
95{if(!B.trim())return re.warning("Revizyon notu zorunludur."),Promise.reject();o.mutate({id:r.id,notes:B.trim()})}})},oe=()=>{let B=r.overall_result||"";Ve.confirm({title:"Raporu Onayla",content:n.jsx(pe,{style:{width:"100%"},placeholder:"Genel Sonuç",defaultValue:r.overall_result||void 0,onChange:he=>{B=he},options:[{value:"UYGUNDUR",label:"Uygundur"},{value:"EKSIK_GIDERILMEZSE_UYGUN_DEGIL",label:"Yazılı eksikler giderilmediÄi takdirde uygun deÄildir"},{value:"EKSIK_GIDERILDIKTEN_SONRA_UYGUN",label:"Yazılı eksikler giderildikten sonra uygundur"}]}),okText:"Onayla",cancelText:"İptal",onOk:()=>{if(!B)return re.warning("Genel sonuç seçilmelidir."),Promise.reject();l.mutate({id:r.id,overallResult:B})}})},K=async()=>{try{await Xe.refreshPrefill(r.id),re.success("İŠemri verileri rapora yeniden uygulandı."),await s()}catch(B){ce(B,"Ãn doldurma yenilenemedi.")}},fe=()=>{switch(r.status){case"DRAFT":case"REVISION":return n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>e(`/reports/${t}/edit`),children:"Düzenle"}),n.jsx(T,{icon:n.jsx(Is,{}),onClick:()=>void K(),children:"İŠEmrinden Yenile"}),n.jsx(T,{icon:n.jsx(_r,{}),onClick:M,loading:c,children:"Taslak PDF"}),r.pdf_file&&n.jsxs(n.Fragment,{children:[n.jsx(T,{icon:n.jsx($t,{}),onClick:()=>void b("unsigned"),children:"Ãnizle"}),n.jsx(T,{icon:n.jsx(cn,{}),onClick:()=>void I("unsigned"),children:"PDF İndir"})]}),n.jsx(T,{type:"primary",icon:n.jsx(Ml,{}),loading:a.isPending,onClick:()=>a.mutate(r.id),style:{background:"#1890ff"},children:"İncelemeye Gönder"})]});case"IN_REVIEW":case"REVIEW":return n.jsxs(W,{children:[n.jsx(T,{danger:!0,onClick:ue,loading:o.isPending,children:"Revizyon İste"}),n.jsx(T,{type:"primary",icon:n.jsx(Dn,{}),loading:l.isPending,style:{background:"#52c41a"},onClick:oe,children:"Onayla"})]});default:return n.jsxs(W,{children:[["SIGNED_ELECTRONIC","SIGNED_WET"].includes(r.status)&&n.jsx(T,{danger:!0,icon:n.jsx(Nv,{}),loading:h,onClick:$,children:"İmzayı Kaldır ve Düzenle"}),n.jsx(T,{icon:n.jsx(_r,{}),onClick:M,loading:c,children:"PDF OluÅtur"}),n.jsx(T,{icon:n.jsx($t,{}),onClick:()=>void b("unsigned"),disabled:!(g!=null&&g.has_pdf),children:"Ãnizle"}),n.jsx(T,{icon:n.jsx(cn,{}),onClick:()=>void I("unsigned"),disabled:!(g!=null&&g.has_pdf),children:"İmzasız PDF"}),n.jsx(T,{icon:n.jsx(cn,{}),onClick:()=>void I("signed"),disabled:!(g!=null&&g.has_signed_pdf),children:"İmzalı PDF"})]})}};return n.jsxs("div",{children:[n.jsxs("div",{className:"page-toolbar",children:[n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/reports"),children:"Geri"}),n.jsxs("div",{className:"page-toolbar__meta",children:["Rapor: ",r.report_number,n.jsx(ie,{color:td[r.status]||"default",style:{marginLeft:8},children:Pi[r.status]||r.status}),r.overall_result&&n.jsx(ie,{color:nd[r.overall_result]||"default",style:{marginLeft:4},children:ll[r.overall_result]||r.overall_result}),n.jsx(ie,{color:oc[r.signature_method||"NONE"]||"default",style:{marginLeft:4},children:As[r.signature_method||"NONE"]||"İmzalanmamıÅ"})]})]}),n.jsx("div",{className:"page-toolbar__actions",children:n.jsx(W,{children:fe()})})]}),n.jsx(H,{style:{marginBottom:24},children:n.jsxs(F,{bordered:!0,column:{xxl:3,xl:3,lg:2,md:1,sm:1,xs:1},size:"small",children:[n.jsx(F.Item,{label:"Firma",children:(S==null?void 0:S.company_name)||"-"}),n.jsx(F.Item,{label:"Ekipman",children:(R==null?void 0:R.name)||"-"}),n.jsx(F.Item,{label:"Hizmet / Rapor Türü",children:vn(r.scope_name||(S==null?void 0:S.scope_name)||"-")}),n.jsx(F.Item,{label:"Kapsam",children:n.jsx(ie,{color:P.color,children:r.scope_category_display||(S==null?void 0:S.scope_category_display)||P.label})}),n.jsx(F.Item,{label:"Rapor Tarihi",children:r.report_date?Z(r.report_date).format("DD/MM/YYYY"):"-"}),n.jsx(F.Item,{label:"Sonraki Kontrol",children:r.next_inspection_date?Z(r.next_inspection_date).format("DD/MM/YYYY"):"-"}),n.jsx(F.Item,{label:"İSG-KATİP ID",children:r.contract_id_number||"-"}),n.jsx(F.Item,{label:"OluÅturan",children:r.created_by_name||"-"}),n.jsx(F.Item,{label:"Onaylayan",children:r.approved_by_name||"-"})]})}),r.status!=="CANCELLED"&&n.jsx(H,{title:"Rapor İmzalama",style:{marginBottom:24},extra:n.jsx(T,{icon:n.jsx(Is,{}),size:"small",onClick:()=>void N(),children:"İmzaları Yenile"}),children:n.jsxs(W,{direction:"vertical",style:{width:"100%"},size:"middle",children:[n.jsx(fi,{status:r.signature_method&&r.signature_method!=="NONE"?"success":"default",text:n.jsxs("span",{children:["İmza Durumu:",n.jsx(ie,{c
95olor:oc[r.signature_method||"NONE"]||"default",style:{marginInlineStart:8},children:As[r.signature_method||"NONE"]||"İmzalanmamıÅ"})]})}),n.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:16},children:n.jsxs(H,{size:"small",title:"Islak İmza",extra:n.jsx(ie,{color:"gold",children:"Islak İmza Onayla"}),children:[n.jsx("p",{children:"Raporu ıslak imza ile imzalamak için onaylayın. İsteÄe baÄlı taranmıŠPDF yüklenebilir."}),n.jsxs(W,{direction:"vertical",style:{width:"100%"},children:[(g==null?void 0:g.has_pdf)&&n.jsx(T,{icon:n.jsx(cn,{}),onClick:()=>void I("unsigned"),children:"Raporu İndir"}),n.jsx(T,{type:"primary",icon:n.jsx(Dn,{}),loading:u,onClick:j,style:{background:"#d48806"},children:"Islak İmza Onayla"})]})]})}),n.jsx(SS,{reportId:String(r.id),reportNo:r.report_number,canSign:["APPROVED","APPROVED_UNSIGNED"].includes(r.status)&&!!(g!=null&&g.has_pdf),onSigned:()=>{s(),N()}}),y.length>0&&n.jsxs(n.Fragment,{children:[n.jsx(on,{style:{margin:"8px 0"}}),n.jsx(Ie,{rowKey:"id",size:"small",dataSource:y,pagination:!1,columns:[{title:"İmzalayan",dataIndex:"signer_name",key:"signer_name"},{title:"Unvan",dataIndex:"signer_title",key:"signer_title",render:B=>B||"-"},{title:"Tip",dataIndex:"signature_type",key:"signature_type",render:B=>sk[B]||B},{title:"Tarih",dataIndex:"signed_at",key:"signed_at",render:B=>B?Z(B).format("DD/MM/YYYY HH:mm"):"-"},{title:"Durum",dataIndex:"is_valid",key:"is_valid",render:B=>n.jsx(ie,{color:B?"green":"red",children:B?"Geçerli":"Geçersiz"})}]})]})]})}),n.jsx(Jn,{items:[{key:"content",label:"Rapor İçeriÄi",children:w?n.jsx(lf,{schema:w,initialValues:r.dynamic_fields,onSubmit:()=>{},readOnly:!0}):n.jsx(be,{message:"Rapor Åablonu yüklenemedi.",type:"warning"})},{key:"devices",label:`Ãlçüm Cihazları (${((J=r.report_devices)==null?void 0:J.length)||0})`,children:n.jsx(Ie,{rowKey:B=>`${B.sira}-${B.device}`,dataSource:r.report_devices||[],pagination:!1,columns:[{title:"Sıra",dataIndex:"sira",key:"sira"},{title:"Cihaz",dataIndex:"device_name",key:"device_name",render:B=>B||"-"},{title:"Marka / Model",key:"brand",render:(B,he)=>`${he.brand||"-"} / ${he.model_name||"-"}`},{title:"Seri No",dataIndex:"serial_number",key:"serial_number",render:B=>B||"-"},{title:"Kalibrasyon No",key:"calibration_no",render:(B,he)=>{var de,_e;return((de=he.current_calibration)==null?void 0:de.kalibrasyon_numarasi)||((_e=he.current_calibration)==null?void 0:_e.certificate_no)||"-"}},{title:"Geçerlilik",key:"expiry_date",render:(B,he)=>{var de,_e;return((de=he.current_calibration)==null?void 0:de.kalibrasyon_gecerlilik_tarihi)||((_e=he.current_calibration)==null?void 0:_e.expiry_date)||"-"}}]})},{key:"photos",label:"FotoÄraflar",children:n.jsx(gf,{reportId:r.id,readOnly:!(r.status==="DRAFT"||r.status==="REVISION"),checklistItems:ES(w)})},{key:"revisions",label:"Revizyon GeçmiÅi",children:n.jsx(Ie,{rowKey:"id",dataSource:U,pagination:!1,columns:[{title:"DeÄiÅtiren",dataIndex:"changed_by_name",key:"changed_by_name",render:B=>B||"-"},{title:"Eski Durum",dataIndex:"from_status",key:"from_status",render:B=>Pi[B]||B||"-"},{title:"Yeni Durum",dataIndex:"to_status",key:"to_status",render:B=>Pi[B]||B||"-"},{title:"Not",dataIndex:"notes",key:"notes",render:B=>B||"-"},{title:"Tarih",dataIndex:"created_at",key:"created_at",render:B=>B?Z(B).format("DD/MM/YYYY HH:mm"):"-"}]})}]})]})},{Text:wo,Title:CS}=ft,pa=t=>t?Z(t).format("DD.MM.YYYY"):"-",DS=()=>{const{reportNumber:t}=jt(),e=Le(),r=k.useMemo(()=>t||"",[t]),[i,s]=k.useState(!0),[a,l]=k.useState(null),[o,c]=k.useState(null);if(k.useEffect(()=>{let u=!1;if(!r){s(!1),c("Rapor numarası bulunamadı.");return}return s(!0),c(null),Xe.verifyPublicReport(r).then(m=>{u||l(m)}).catch(m=>{var p;if(u)return;const h=(p=m.response)==null?void 0:p.data;l(h||null),c((h==null?void 0:h.message)||(h==null?void 0:h.error)||"Rapor doÄrulama bilgisi alınamadı.")}).finally(()=>{u||s(!1)}),()=>{u=!0}},[r]),i)return n.jsx("div",{className:"verification-page",children:n.jsx(H,{className:"verification-card",children:n.jsxs(W,{direction:"vertical",align:"center",size:"large",style:{width:"100%"},children:[n.jsx(mt,{size:"large"}),n.jsx(wo,{type:"secondary",children:"Rapor doÄrulanıyor..."})]})})});const d=!!(a!=null&&a.valid);return n.jsx("div",{className:"verification-page",children:n.jsx(H,{className:"verification-card",children:n.jsxs(W,{direction:"vertical",size:"large",style:{width:"100%"},children:[n.jsxs("div",{className:"verification-card__header",children:[n.jsx("img",{src:"/logo.png",alt:"ekiplab logosu",className:"verification-card__logo"}),n.jsxs("div",{children:[n.jsx(CS,{level:2,style:{marginBottom:0},children:"Rapor DoÄrulama"}),n.jsx(wo,{type:"secondary",children:"QR kod ile açılan kamuya açık doÄrulama ekranı"})]})]}),d?n.jsxs(n.Fragment,{children:[n.jsx(be,{type:"success",showIcon:!0,message:(a==null?void 0:a.message)||"Bu rapor geçerli görünüyor."}),n.jsxs(F,{bordered:!0,column:1,size:"middle",children:[n.jsx(F.Item,{label:"Rapor No",children:n.jsx(wo,{co
95de:!0,children:(a==null?void 0:a.report_number)||r})}),n.jsx(F.Item,{label:"Rapor Tarihi",children:pa(a==null?void 0:a.report_date)}),n.jsx(F.Item,{label:"Firma",children:(a==null?void 0:a.company_name)||"-"}),n.jsx(F.Item,{label:"Kapsam",children:(a==null?void 0:a.scope)||"-"}),n.jsx(F.Item,{label:"Sonuç",children:n.jsx(ie,{color:"blue",children:(a==null?void 0:a.overall_result)||"-"})}),n.jsx(F.Item,{label:"İmza Yöntemi",children:As[(a==null?void 0:a.signature_method)||""]||(a==null?void 0:a.signature_method)||"-"}),n.jsxs(F.Item,{label:"Muayene Tarihi",children:[pa(a==null?void 0:a.inspection_start_date),a!=null&&a.inspection_end_date&&a.inspection_end_date!==a.inspection_start_date?` - ${pa(a.inspection_end_date)}`:""]}),n.jsx(F.Item,{label:"Sonraki Kontrol",children:pa(a==null?void 0:a.next_inspection_date)})]})]}):n.jsx(Gc,{status:"warning",title:"Rapor doÄrulanamadı",subTitle:o||"Bu rapor numarasıyla eÅleÅen onaylı rapor bulunamadı.",extra:n.jsx(T,{onClick:()=>e("/"),children:"Ana sayfaya dön"})})]})})})},{Text:yr,Title:RS,Paragraph:IS}=ft,{Dragger:TS}=An,AS=["APPROVED","APPROVED_UNSIGNED","DRAFT","REVIEW","IN_REVIEW","REVISION"],MS=["APPROVED","APPROVED_UNSIGNED"],NS=()=>{const t=Le(),r=Tl().state||{},{data:i,isLoading:s,refetch:a}=Nl(),l=ik(),o=k.useRef(!1),[c,d]=k.useState(r.mode||"electronic"),[u,m]=k.useState([]),[h,p]=k.useState(),[y,f]=k.useState(!1),[g,v]=k.useState(null),[S,R]=k.useState(!1),[z,P]=k.useState(null),U=(i||[]).filter(j=>AS.includes(j.status)&&!!j.pdf_file),A=(i||[]).filter(j=>MS.includes(j.status)&&!!j.pdf_file&&!j.signed_pdf_file),w=c==="electronic"?A:U,Y=U.filter(j=>j.status==="APPROVED_UNSIGNED");k.useEffect(()=>{var N;if(o.current||!i||!((N=r.reportIds)!=null&&N.length))return;const j=new Set(w.map($=>$.id));m(r.reportIds.filter($=>j.has($))),o.current=!0},[r.reportIds,i,w]);const D=j=>{d(j),R(!1),P(null),v(null);const N=j==="electronic"?A:U,$=new Set(N.map(ue=>ue.id));m(ue=>ue.filter(oe=>$.has(String(oe))))},_=()=>{if(u.length===0){re.warning("Lütfen imzalamak istediÄiniz raporları seçin.");return}l.mutate({reportIds:u,scannedFile:h},{onSuccess:j=>{R(!0),P({signed_count:j.signed_count,skipped_count:j.skipped_count,mode:"wet"}),m([])}})},M=async()=>{const j=u.map(String);if(j.length===0){re.warning("Lütfen e-imzalamak istediÄiniz raporları seçin.");return}f(!0),v({current:0,total:j.length,stage:"BaÄlantı kontrol ediliyorâ¦"});let N=0;try{const $=await vc();if(!ul($.extensionVersion,cl)||!ul($.nativeHostVersion,dl))throw new Ht("BRIDGE_ERROR",`Toplu e-imza için İmza Köprüsü ${cl} ve İmza Yardımcısı ${dl} veya üzeri gereklidir.`);for(let ue=0;ue<j.length;ue+=1){const oe=j[ue],K=A.find(J=>J.id===oe);v({current:ue,total:j.length,reportNo:K==null?void 0:K.report_number,stage:"İmza oturumu açılıyorâ¦"});const fe=await Xe.createSigningSession(oe);await vf(fe,J=>{v({current:ue,total:j.length,reportNo:K==null?void 0:K.report_number,stage:yf[J]})}),N+=1,v({current:N,total:j.length,reportNo:K==null?void 0:K.report_number,stage:"Tamamlandı"})}re.success(`${N} rapor e-imza ile imzalandı.`),P({signed_count:N,skipped_count:j.length-N,mode:"electronic"}),R(!0),m([]),await a()}catch($){const ue=j.length-N;$ instanceof Ht?re.error($.message):ce($,"Toplu e-imza iÅlemi tamamlanamadı."),N>0&&(P({signed_count:N,skipped_count:ue,mode:"electronic"}),R(!0),await a())}finally{f(!1),v(null)}},b=()=>{if(c==="electronic"){M();return}_()};if(S&&z)return n.jsx("div",{style:{maxWidth:600,margin:"60px auto"},children:n.jsx(Gc,{status:z.skipped_count>0?"warning":"success",title:`${z.signed_count} rapor ${z.mode==="electronic"?"e-imza":"ıslak imza"} ile imzalandı`,subTitle:z.skipped_count>0?`${z.skipped_count} rapor tamamlanamadı veya atlandı.`:"Tüm seçili raporlar baÅarıyla imzalandı.",extra:[n.jsx(T,{type:"primary",icon:n.jsx(Vt,{}),onClick:()=>t("/reports"),children:"Raporlara Dön"},"list"),n.jsx(T,{onClick:()=>{R(!1),P(null)},children:"Tekrar İmzala"},"again")]})});const I=[{title:"Rapor No",dataIndex:"report_number",key:"report_number",width:130,render:j=>n.jsx(yr,{strong:!0,style:{fontFamily:"monospace",fontSize:12},children:j})},{title:"Firma",dataIndex:"company_name",key:"company_name",width:150,ellipsis:!0,render:j=>j||"-"},{title:"Rapor Türü",dataIndex:"scope_name",key:"scope_name",width:190,ellipsis:!0,render:j=>vn(j)},{title:"Tarih",dataIndex:"report_date",key:"report_date",width:100,render:j=>j?Z(j).format("DD/MM/YYYY"):"-"},{title:"Sonuç",dataIndex:"overall_result",key:"overall_result",width:90,render:j=>
95j?n.jsx(ie,{color:nd[j]||"default",style:{fontSize:11},children:ll[j]||j}):n.jsx(yr,{type:"secondary",children:"â"})},{title:"Durum",dataIndex:"status",key:"status",width:120,render:j=>n.jsx(ie,{color:td[j]||"default",children:Pi[j]||j})}];return n.jsxs("div",{children:[n.jsxs("div",{style:{marginBottom:16,display:"flex",alignItems:"center",gap:12},children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>t("/reports"),children:"Raporlara Dön"}),n.jsx(RS,{level:4,style:{margin:0},children:"Toplu ve Seçmeli İmza"}),w.length>0&&n.jsx(fi,{count:w.length,style:{backgroundColor:"#1B5E8C"}}),r.companyName&&n.jsx(ie,{color:"blue",children:r.companyName})]}),n.jsx(H,{size:"small",style:{marginBottom:16},children:n.jsxs(W,{wrap:!0,children:[n.jsx(yr,{strong:!0,children:"İmza yöntemi:"}),n.jsx(Tn,{value:c,onChange:j=>D(j),options:[{value:"electronic",label:"E-İmza",icon:n.jsx(qn,{})},{value:"wet",label:"Islak İmza",icon:n.jsx(Dn,{})}]}),n.jsx(yr,{type:"secondary",children:c==="electronic"?"Seçilen raporlar USB token üzerinden sırayla imzalanır.":"Seçilen raporlar tek iÅlemde ıslak imzalı olarak iÅaretlenir."})]})}),n.jsxs(me,{gutter:12,style:{marginBottom:16},children:[n.jsx(C,{flex:"1",children:n.jsx(H,{size:"small",style:{textAlign:"center"},children:n.jsx(Ee,{title:c==="electronic"?"E-İmzalanabilir Rapor":"Islak İmzalanabilir Rapor",value:w.length,valueStyle:{fontSize:20,color:"#1B5E8C"}})})}),n.jsx(C,{flex:"1",children:n.jsx(H,{size:"small",style:{textAlign:"center",borderColor:"#d46b08",background:Y.length>0?"#fff7e6":void 0},children:n.jsx(Ee,{title:"Onaylı / İmza Bekleyen",value:c==="electronic"?A.length:Y.length,valueStyle:{fontSize:20,color:(c==="electronic"?A.length:Y.length)>0?"#d46b08":"#8c8c8c"}})})}),n.jsx(C,{flex:"1",children:n.jsx(H,{size:"small",style:{textAlign:"center",borderColor:"#52c41a",background:u.length>0?"#f6ffed":void 0},children:n.jsx(Ee,{title:"Seçilen Rapor",value:u.length,valueStyle:{fontSize:20,color:u.length>0?"#389e0d":"#8c8c8c"}})})})]}),n.jsx(H,{style:{marginBottom:16,borderColor:c==="electronic"?"#722ed1":"#d46b08"},headStyle:{background:c==="electronic"?"#f9f0ff":"#fff7e6",borderBottom:`1px solid ${c==="electronic"?"#722ed1":"#d46b08"}`},title:n.jsxs(W,{children:[c==="electronic"?n.jsx(qn,{style:{color:"#722ed1"}}):n.jsx(Dn,{style:{color:"#d46b08"}}),n.jsx("span",{style:{color:c==="electronic"?"#722ed1":"#d46b08",fontWeight:600},children:c==="electronic"?"E-İmza İÅlemi":"Islak İmza İÅlemi"})]}),children:n.jsxs(me,{gutter:24,align:"top",children:[n.jsxs(C,{flex:"1",children:[n.jsxs(IS,{children:["AÅaÄıdaki tablodan ",n.jsx("b",{children:"imzalamak istediÄiniz raporları seçin"}),".",c==="electronic"?" Raporlar güvenli imza köprüsü üzerinden sırayla iÅlenecektir.":" İsteÄe baÄlı olarak taranan imza görselini veya PDF'ini yükleyebilirsiniz. Tüm seçili raporlar aynı iÅlemde imzalanacaktır."]}),n.jsx(be,{type:"info",showIcon:!0,message:c==="electronic"?"USB token ile e-imza":"Islak imza onayı",description:c==="electronic"?"İmza anahtarınız ve PIN'iniz bilgisayarınızdan ayrılmaz. PIN penceresi her rapor için veya token oturumuna göre yeniden açılabilir.":"Bu iÅlem seçili raporların durumunu 'Islak İmzalı' olarak günceller ve imza kaydı oluÅturur."}),g&&n.jsxs("div",{style:{marginTop:16},children:[n.jsx(oi,{percent:Math.round(g.current/g.total*100),status:"active",format:()=>`${g.current}/${g.total}`}),n.jsx(yr,{strong:!0,children:g.reportNo||"E-imza baÄlantısı"}),n.jsx("br",{}),n.jsx(yr,{type:"secondary",children:g.stage})]})]}),n.jsxs(C,{style:{minWidth:280},children:[c==="wet"&&n.jsxs("div",{style:{marginBottom:12},children:[n.jsxs(yr,{strong:!0,style:{display:"block",marginBottom:8},children:[n.jsx(_r,{})," İmza Dosyası (PDF / PNG / JPG / WEBP / BMP / TIFF)"]}),n.jsx(yr,{type:"secondary",style:{fontSize:11,display:"block",marginBottom:8},children:"Yüklenen imza, her raporun son sayfasındaki onay alanında görünür."}),h?n.jsx(be,{type:"success",showIcon:!0,message:n.jsxs(W,{children:[n.jsx("span",{children:h.name}),n.jsx(T,{size:"small",danger:!0,onClick:()=>p(void 0),children:"Kaldır"})]})}):n.jsxs(TS,{accept:".pdf,.png,.jpg,.jpeg,.webp,.bmp,.tif,.tiff,image/*,application/pdf",maxCount:1,showUploadList:!1,beforeUpload:j=>(p(j),!1),style:{padding:"8px 16px"},children:[n.jsx("p",{style:{margin:0},children:n.jsx(_p,{style:{fontSize:24,color:"#1890ff"}})}),n.jsx("p",{style:{margin:"4px 0 0",fontSize:12},children:"İmza fotoÄrafını veya PDF'ini sürükle / tıkla"})]})]}),n.jsx(on,{style:{margin:"12px 0"}}),n.jsx(T,{type:"primary",icon:c==="electronic"?n.jsx(qn,{}):n.jsx(Dn,{}),onClick:b,loading:l.isPending||y,disabled:u.length===0,block:!0,size:"large",style:{background:u.length>0?c==="electronic"?"#722ed1":"#d46b08":void 0,borderColor:u.length>0?c==="electronic"?"#722ed1":"#d46b08":void 0,fontWeight:600,height:48},children:u.length>0?`${u.length} Raporu ${c==="electronic"?"E-İmzala":"Islak İmzala"}`:"Tablo'dan Rapor Seçin"}),u.length>0&&c==="wet"&&n.jsx(yr,{type:"secondary",style:{display:"block",textAlign:"center",marginTop:8,fontSize:12},children:h?`â İmza dosyası yüklendi: ${h.name}`:"â ï¸ Ä°mza dosyası yüklenmedi (opsiyonel)"})]})]})}),n.jsx(H,{title:n.jsxs(W,{children:[n.jsx("span",{children:"İmzalanabilir Raporlar"}),u.length>0&&n.jsxs(ie,{color:"green",children:[u.length," rapor seçili"]})]}),extra:n.jsxs(W,{children:[n.jsx(T,{size:"small",disabled:w.length===0,onClick:()=>m(w.map(j=>j.id)),children:"Tümünü Seç"}),u.length>0&&n.jsx(T,{size:"small",onClick:()=>m([]),children:"Seçimi Temizle"})]}),children:n.jsx(Ie,{rowSelection:{selectedRowKeys:u,onChange:m,getCheckboxProps:()=>({disabled:y||l.isPending})},columns:I,dataSource:w,rowKey:"id",loading:s,pagination:{pageSize:20,showTotal:j=>`${j} rapor`},size:"small",locale:{emptyText:"İmzalanabilir rapor bulunamadı."},rowClassName:j=>j.status==="APPROVED_UNSIGNED"?"table-row-urgent":""})}),n.jsx("style",{children:` 96 .table-row-urgent { 97 background: #fff7e6 !important; 98 } 99 .table-row-urgent:hover td { 100 background: #ffefd9 !important; 101 } 102 `})]})},bf={NEW:"Yeni",EVALUATED:"DeÄerlendirildi",PROPOSAL_SENT:"Teklif Gönderildi",ACCEPTED:"Kabul Edildi",REJECTED:"Reddedildi",CANCELLED:"İptal Edildi"},_f={NEW:"default",EVALUATED:"processing",PROPOSAL_SENT:"blue",ACCEPTED:"success",REJECTED:"error",CANCELLED:"error"},od={NORMAL:"Normal",URGENT:"Acil",VERY_URGENT:"Ãok Acil"},jf={NORMAL:"default",URGENT:"warning",VERY_URGENT:"error"},kf={PHONE:"Telefon",EMAIL:"E-posta",WEBSITE:"Web",REFERRAL:"Referans",REPEAT_CUSTOMER:"Mevcut MüÅteri",OTHER:"DiÄer"},cd={DRAFT:"Taslak",SENT:"Gönderildi",REVISION_REQUESTED:"Revizyon İstendi",ACCEPTED:"Kabul Edildi",REJECTED:"Reddedildi",EXPIRED:"Süresi Doldu"},dd={DRAFT:"default",SENT:"processing",REVISION_REQUESTED:"warning",ACCEPTED:"success",REJECTED:"error",EXPIRED:"error"},{Search:PS}=G,zS=()=>{const t=Le(),{data:e,isLoading:r}=Qp(),i=yj(),s=He(u=>u.user),a=(s==null?void 0:s.role)==="ADMIN"||(s==null?void 0:s.role)==="MANAGER",[l,o]=k.useState(""),c=e==null?void 0:e.filter(u=>{const m=l.toLowerCase();return u.request_number.toLowerCase().includes(m)||(u.company_name||"").toLowerCase().includes(m)||u.contact_person.toLowerCase().includes(m)}),d=[{title:"Talep No",dataIndex:"request_number",key:"request_number"},{title:"Firma",dataIndex:"company_name",key:"company_name",render:u=>u||"-"},{title:"İlgili KiÅi",dataIndex:"contact_person",key:"contact_person"},{title:"Ãncelik",dataIndex:"urgency",key:"urgency",render:u=>
102n.jsx(ie,{color:jf[u]||"default",children:od[u]||u})},{title:"Durum",dataIndex:"status",key:"status",render:u=>n.jsx(ie,{color:_f[u]||"default",children:bf[u]||u})},{title:"Tercih Tarihi",key:"preferred_date_start",render:(u,m)=>m.preferred_date_start?`${Z(m.preferred_date_start).format("DD/MM/YYYY")}${m.preferred_date_end?` - ${Z(m.preferred_date_end).format("DD/MM/YYYY")}`:""}`:"-"},{title:"Teklif",dataIndex:"proposal_count",key:"proposal_count",render:u=>u??0},{title:"İÅlemler",key:"actions",render:(u,m)=>n.jsxs(W,{children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>t(`/requests/${m.id}`)}),a&&n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>t(`/requests/${m.id}/edit`)}),a&&n.jsx(Ot,{title:"Talebi sil",description:"Bu talebi silmek istediÄinizden emin misiniz?",okText:"Evet",cancelText:"Hayır",onConfirm:()=>i.mutate(m.id),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})})]})}];return n.jsxs(H,{title:"Talepler",extra:a?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{background:"#1B5E8C"},onClick:()=>t("/requests/new"),children:"Yeni Talep"}):null,children:[n.jsx("div",{style:{marginBottom:16},children:n.jsx(PS,{allowClear:!0,placeholder:"Talep no, firma veya ilgili kiÅi",style:{width:320},onChange:u=>o(u.target.value)})}),n.jsx(Ie,{rowKey:"id",columns:d,dataSource:c,loading:r||i.isPending,pagination:{pageSize:15}})]})},{TextArea:OS}=G,gm=()=>{const{id:t}=jt(),e=Le(),[r]=x.useForm(),i=!!t&&t!=="new",s=He(P=>P.user),a=(s==null?void 0:s.role)==="ADMIN"||(s==null?void 0:s.role)==="MANAGER",{data:l,isLoading:o}=tr(),{data:c,isLoading:d}=qr(),{data:u,isLoading:m}=Xp(i?t:""),h=fj(),p=gj(),[y,f]=k.useState([]),[g,v]=k.useState(!1),S=async P=>{if(!P){f([]);return}v(!0);try{const U=await $n.getBranches(P);f(U)}finally{v(!1)}};k.useEffect(()=>{u&&S(u.company).then(()=>{var P;r.setFieldsValue({company:u.company,branch:u.branch||void 0,contact_person:u.contact_person,contact_phone:u.contact_phone,contact_email:u.contact_email||void 0,requested_scope_ids:((P=u.requested_scopes_detail)==null?void 0:P.map(U=>U.id))||[],preferred_date_start:u.preferred_date_start?Z(u.preferred_date_start):null,preferred_date_end:u.preferred_date_end?Z(u.preferred_date_end):null,description:u.description,equipment_count_estimate:u.equipment_count_estimate,urgency:u.urgency,source:u.source})})},[r,u]);const R=P=>{r.setFieldValue("branch",void 0),S(P)},z=P=>{const U={company:P.company,branch:P.branch||null,contact_person:P.contact_person,contact_phone:P.contact_phone,contact_email:P.contact_email||null,requested_scope_ids:P.requested_scope_ids||[],preferred_date_start:P.preferred_date_start?P.preferred_date_start.format("YYYY-MM-DD"):null,preferred_date_end:P.preferred_date_end?P.preferred_date_end.format("YYYY-MM-DD"):null,description:P.description,equipment_count_estimate:P.equipment_count_estimate??null,urgency:P.urgency,source:P.source};if(i){p.mutate({id:t,data:U},{onSuccess:()=>e(`/requests/${t}`)});return}h.mutate(U,{onSuccess:A=>e(`/requests/${A.id}`)})};return n.jsx(H,{title:i?"Talep Düzenle":"Yeni Talep",loading:i&&m,children:n.jsxs(x,{form:r,layout:"vertical",initialValues:{urgency:"NORMAL",source:"PHONE"},onFinish:z,children:[!a&&n.jsx(be,{type:"warning",showIcon:!0,message:"Talep oluÅturmak veya güncellemek için MANAGER ya da ADMIN yetkisi gerekir.",style:{marginBottom:16}}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"company",label:"Firma",rules:[{required:!0,message:"Firma seçiniz."}],children:n.jsx(pe,{showSearch:!0,optionFilterProp:"label",options:l==null?void 0:l.map(P=>({value:P.id,label:P.name})),loading:o,onChange:R})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"branch",label:"Åube",children:n.jsx(pe,{showSearch:!0,allowClear:!0,optionFilterProp:"label",options:y.map(P=>({value:P.id,label:P.name})),loading:g})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"requested_scope_ids",label:"Talep Edilen Kapsamlar",rules:[{required:!0,message:"En az bir kapsam seçiniz."}],children:n.jsx(pe,{mode:"multiple",showSearch:!0,optionFilterProp:"label",options:c==null?void 0:c.map(P=>({value:P.id,label:`${P.name} (${P.code})`})),loading:d})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"contact_person",label:"İlgili KiÅi",rules:[{required:!0}],children:n.jsx(G,{})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"contact_phone",label:"Telefon",rules:[{required:!0}],children:n.jsx(G,{})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"contact_email",label:"E-posta",children:n.jsx(G,{})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"preferred_date_start",label:"Tercih BaÅlangıç",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"preferred_date_end",label:"Tercih BitiÅ",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"urgency",label:"Ãncelik",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(od).map(([P,U])=>({value:P,label:U}))})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"source",label:"Kaynak",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(kf).map(([P,U])=>({value:P,label:U}))})})})]}),n.jsx(me,{gutter:16,children:n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"equipment_count_estimate",label:"Tahmini Ekipman Sayısı",children:n.jsx(Ze,{style:{width:"100%"},min:0})})})}),n.jsx(x.Item,{name:"description",label:"Talep Açıklaması",rules:[{required:!0}],children:n.jsx(OS,{rows:5,placeholder:"Saha, kapsam, notlar ve özel beklentiler..."})}),n.jsx(x.Item,{children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",disabled:!a,loading:h.isPending||p.isPending,style:{background:"#1B5E8C"},children:"Kaydet"}),n.jsx(T,{onClick:()=>e(i?`/requests/${t}`:"/requests"),children:"İptal"})]})})]})})},LS=()=>{var u;const{id:t}=jt(),e=Le(),r=He(m=>m.user),i=(r==null?void 0:r.role)==="ADMIN"||(r==null?void 0:r.role)==="MANAGER",{data:s,isLoading:a}=Xp(t||""),{data:l}=Jc(),o=vj(),c=xj();if(a)return n.jsx("div",{style:{textAlign:"center",padding:64},children:n.jsx(mt,{size:"large"})});if(!s)return n.jsx(be,{type:"error",message:"Talep bulunamadı."});const d=(l==null?void 0:l.filter(m=>m.service_request===s.id))||[];return n.jsxs("div",{children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:16},children:[n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/requests"),children:"Geri"}),n.jsxs("div",{style:{fontSize:18,fontWeight:600}
102,children:[s.request_number,n.jsx(ie,{color:_f[s.status]||"default",style:{marginLeft:8},children:bf[s.status]||s.status})]})]}),n.jsxs(W,{children:[i&&s.status==="NEW"&&n.jsx(T,{onClick:()=>c.mutate({id:s.id,assignedTo:r==null?void 0:r.id}),loading:c.isPending,children:"DeÄerlendir"}),i&&n.jsx(T,{type:"primary",icon:n.jsx(Cs,{}),style:{background:"#1B5E8C"},onClick:()=>o.mutate(s.id,{onSuccess:m=>e(`/proposals/${m.id}/edit`)}),loading:o.isPending,children:"Teklif OluÅtur"}),i&&n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>e(`/requests/${s.id}/edit`),children:"Düzenle"})]})]}),n.jsx(H,{style:{marginBottom:24},children:n.jsxs(F,{bordered:!0,column:{xxl:2,xl:2,lg:2,md:1,sm:1,xs:1},children:[n.jsx(F.Item,{label:"Firma",children:s.company_name||"-"}),n.jsx(F.Item,{label:"Åube",children:s.branch_name||"-"}),n.jsx(F.Item,{label:"İlgili KiÅi",children:s.contact_person}),n.jsx(F.Item,{label:"Telefon",children:s.contact_phone}),n.jsx(F.Item,{label:"E-posta",children:s.contact_email||"-"}),n.jsx(F.Item,{label:"Kaynak",children:kf[s.source]||s.source}),n.jsx(F.Item,{label:"Ãncelik",children:n.jsx(ie,{color:jf[s.urgency]||"default",children:od[s.urgency]||s.urgency})}),n.jsx(F.Item,{label:"Tahmini Ekipman",children:s.equipment_count_estimate??"-"}),n.jsx(F.Item,{label:"Tercih AralıÄı",span:2,children:s.preferred_date_start?`${Z(s.preferred_date_start).format("DD/MM/YYYY")}${s.preferred_date_end?` - ${Z(s.preferred_date_end).format("DD/MM/YYYY")}`:""}`:"-"}),n.jsx(F.Item,{label:"Kapsamlar",span:2,children:n.jsx(W,{wrap:!0,children:(u=s.requested_scopes_detail)==null?void 0:u.map(m=>n.jsx(ie,{children:m.name},m.id))})}),n.jsx(F.Item,{label:"Açıklama",span:2,children:s.description})]})}),n.jsx(H,{title:"BaÄlı Teklifler",children:n.jsx(Ie,{rowKey:"id",dataSource:d,pagination:!1,columns:[{title:"Teklif No",dataIndex:"proposal_number",key:"proposal_number"},{title:"Durum",dataIndex:"status",key:"status",render:m=>n.jsx(ie,{color:dd[m]||"default",children:cd[m]||m})},{title:"Geçerlilik",dataIndex:"valid_until",key:"valid_until",render:m=>m?Z(m).format("DD/MM/YYYY"):"-"},{title:"Toplam",dataIndex:"total_amount",key:"total_amount",render:(m,h)=>`${m} ${h.currency}`},{title:"İÅlem",key:"action",render:(m,h)=>n.jsx(T,{type:"link",onClick:()=>e(`/proposals/${h.id}`),children:"Detay"})}],locale:{emptyText:"Bu talebe baÄlı teklif bulunmuyor."}})})]})},{Search:FS}=G,BS=()=>{const t=Le(),e=He(m=>m.user),r=["ADMIN","MANAGER","ENGINEER"].includes((e==null?void 0:e.role)||""),{data:i,isLoading:s}=Jc(),a=kj(),[l,o]=k.useState(""),c=k.useMemo(()=>(i==null?void 0:i.filter(m=>{const h=l.toLowerCase();return m.proposal_number.toLowerCase().includes(h)||(m.company_name||"").toLowerCase().includes(h)||m.title.toLowerCase().includes(h)}))||[],[i,l]),d=c.reduce((m,h)=>m+Number(h.total_amount||0),0),u=[{title:"Teklif No",dataIndex:"proposal_number",key:"proposal_number"},{title:"Firma",dataIndex:"company_name",key:"company_name",render:m=>m||"-"},{title:"Geçerlilik",dataIndex:"valid_until",key:"valid_until",render:m=>Z(m).format("DD/MM/YYYY")},{title:"Durum",dataIndex:"status",key:"status",render:m=>n.jsx(ie,{color:dd[m]||"default",children:cd[m]||m})},{title:"Toplam",key:"total_amount",render:(m,h)=>`${h.total_amount} ${h.currency}`},{title:"Kalem",dataIndex:"item_count",key:"item_count",render:m=>m??0},{title:"İÅlemler",key:"actions",render:(m,h)=>n.jsxs(W,{children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>t(`/proposals/${h.id}`)}),n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>t(`/proposals/${h.id}/edit`),disabled:!["DRAFT","REVISION_REQUESTED"].includes(h.status)}),n.jsx(Ot,{title:"Teklifi sil",description:"Bu teklifi silmek istediÄinizden emin misiniz?",okText:"Evet",cancelText:"Hayır",onConfirm:()=>a.mutate(h.id),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{}),disabled:!["DRAFT","REVISION_REQUESTED"].includes(h.status)})})]})}];return n.jsx(H,{title:"Teklifler",extra:r?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{background:"#1B5E8C"},onClick:()=>t("/proposals/new"),children:"Yeni Teklif"}):null,children:n.jsxs(W,{direction:"vertical",size:16,style:{width:"100%"},children:[n.jsxs(W,{style:{width:"100%",justifyContent:"space-between"},children:[n.jsx(FS,{allowClear:!0,placeholder:"Teklif no, firma veya baÅlık",style:{width:320},onChange:m=>o(m.target.value)}),n.jsx(Ee,{title:"Filtrelenen Toplam",value:d,suffix:"TRY",precision:2})]}),n.jsx(Ie,{rowKey:"id",columns:u,dataSource:c,loading:s||a.isPending,pagination:{pageSize:15}})]})})};var It={},ud={},Sf={};
102(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.useColumnWidths=t.getColumnWidths=void 0;const e=k,r=(s,a)=>{const l=a.map(({basis:c,minWidth:d,maxWidth:u})=>({basis:c,minWidth:d,maxWidth:u,size:c,violation:0,frozen:!1,factor:0}));let o=l.reduce((c,d)=>c-d.size,s);o>0?a.forEach(({grow:c},d)=>{l[d].factor=c}):o<0&&a.forEach(({shrink:c},d)=>{l[d].factor=c});for(const c of l)c.factor===0&&(c.frozen=!0);for(;l.some(({frozen:c})=>!c);){const c=l.reduce((u,m)=>u+(m.frozen?0:m.factor),0);let d=0;for(const u of l)u.frozen||(u.size+=o*u.factor/c,u.size<u.minWidth?u.violation=u.minWidth-u.size:u.maxWidth!==void 0&&u.size>u.maxWidth?u.violation=u.maxWidth-u.size:u.violation=0,u.size+=u.violation,d+=u.violation);if(d>0)for(const u of l)u.violation>0&&(u.frozen=!0);else if(d<0)for(const u of l)u.violation<0&&(u.frozen=!0);else break;o=l.reduce((u,m)=>u-m.size,s)}return l.map(({size:c})=>c)};t.getColumnWidths=r;const i=(s,a)=>{const l=s.map(({basis:o,minWidth:c,maxWidth:d,grow:u,shrink:m})=>[o,c,d,u,m].join(",")).join("|");return(0,e.useMemo)(()=>{if(a===void 0)return{fullWidth:!1,columnWidths:void 0,columnRights:void 0,totalWidth:void 0};const o=(0,t.getColumnWidths)(a,s);let c=0;const d=o.map((u,m)=>(c+=u,m===o.length-1?1/0:c));return{fullWidth:Math.abs(a-c)<.1,columnWidths:o,columnRights:d,totalWidth:c}},[a,l])};t.useColumnWidths=i})(Sf);var bc=function(t,e){return bc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(r[s]=i[s])},bc(t,e)};function Ef(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");bc(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var zi=function(){return zi=Object.assign||function(e){for(var r,i=1,s=arguments.length;i<s;i++){r=arguments[i];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},zi.apply(this,arguments)};function wf(t,e){var r={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,i=Object.getOwnPropertySymbols(t);s<i.length;s++)e.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(t,i[s])&&(r[i[s]]=t[i[s]]);return r}var fa=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function YS(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var md=YS,HS=typeof fa=="object"&&fa&&fa.Object===Object&&fa,US=HS,qS=US,$S=typeof self=="object"&&self&&self.Object===Object&&self,KS=qS||$S||Function("return this")(),Cf=KS,GS=Cf,WS=function(){return GS.Date.now()},VS=WS,QS=/\s/;function XS(t){for(var e=t.length;e--&&QS.test(t.charAt(e)););return e}var ZS=XS,JS=ZS,eE=/^\s+/;function tE(t){return t&&t.slice(0,JS(t)+1).replace(eE,"")}var nE=tE,rE=Cf,iE=rE.Symbol,Df=iE,ym=Df,Rf=Object.prototype,sE=Rf.hasOwnProperty,aE=Rf.toString,us=ym?ym.toStringTag:void 0;function lE(t){var e=sE.call(t,us),r=t[us];try{t[us]=void 0;var i=!0}catch{}var s=aE.call(t);return i&&(e?t[us]=r:delete t[us]),s}var oE=lE,cE=Object.prototype,dE=cE.toString;function uE(t){return dE.call(t)}var mE=uE,xm=Df,hE=oE,pE=mE,fE="[object Null]",gE="[object Undefined]",vm=xm?xm.toStringTag:void 0;function yE(t){return t==null?t===void 0?gE:fE:vm&&vm in Object(t)?hE(t):pE(t)}var xE=yE;function vE(t){return t!=null&&typeof t=="object"}var bE=vE,_E=xE,jE=bE,kE="[object Symbol]";function SE(t){return typeof t=="symbol"||jE(t)&&_E(t)==kE}var EE=SE,wE=nE,bm=md,CE=EE,_m=NaN,DE=/^[-+]0x[0-9a-f]+$/i,RE=/^0b[01]+$/i,IE=/^0o[0-7]+$/i,TE=parseInt;function AE(t){if(typeof t=="number")return t;if(CE(t))return _m;if(bm(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=bm(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=wE(t);var r=RE.test(t);return r||IE.test(t)?TE(t.slice(2),r?2:8):DE.test(t)?_m:+t}var ME=AE,NE=md,Co=VS,jm=ME,PE="Expected a function",zE=Math.max,OE=Math.min;function LE(t,e,r){var i,s,a,l,o,c,d=0,u=!1,m=!1,h=!0;if(typeof t!="function")throw new TypeError(PE);e=jm(e)||0,NE(r)&&(u=!!r.leading,m="maxWait"in r,a=m?zE(jm(r.maxWait)||0,e):a,h="trailing"in r?!!r.trailing:h);function p(U){var A=i,w=s;return i=s=void 0,d=U,l=t.apply(w,A),l}function y(U){return d=U,o=setTimeout(v,e),u?p(U):l}function f(U){var A=U-c,w=U-d,Y=e-A;return m?OE(Y,a-w):Y}function g(U){var A=U-c,w=U-d;return c===void 0||A>=e||A<0||m&&w>=a}function v(){var U=Co();if(g(U))return S(U);o=setTimeout(v,f(U))}function S(U){return o=void 0,h&&i?p(U):(i=s=void 0,l)}function R(){o!==void 0&&clearTimeout(o),d=0,i=c=s=o=void 0}function z(){return o===void 0?l:S(Co())}function P(){var U=Co(),A=g(U);if(i=arguments,s=this,c=U,A){if(o===void 0)return y(c);if(m)return clearTimeout(o),o=setTimeout(v,e),p(c)}return o===void 0&&(o=setTimeout(v,e)),l}return P.cancel=R,P.flush=z,P}var If=LE,FE=If,BE=md,YE="Expected a function";function HE(t,e,r){var i=!0,s=!0;if(typeof t!="function")throw new TypeError(YE);return BE(r)&&(i="leading"in r?!!r.leading:i,s="trailing"in r?!!r.trailing:s),FE(t,e,{leading:i,maxWait:e,trailing:s})}var UE=HE,Tf=function(t,e,r,i){switch(e){case"debounce":return If(t,r,i);case"throttle":return UE(t,r,i);default:return t}},_c=function(t){return typeof t=="function"},Pr=function(){return typeof window>"u"},km=function(t){return t instanceof Element||t instanceof HTMLDocument},Af=function(t,e,r,i){return function(s){var a=s.width,l=s.height;e(function(o){return o.width===a&&o.height===l||o.width===a&&!i||o.height===l&&!r?o:(t&&_c(t)&&t(a,l),{width:a,height:l})})}},Mf=function(t){Ef(e,t);function e(r){var i=t.call(this,r)||this;
102i.cancelHandler=function(){i.resizeHandler&&i.resizeHandler.cancel&&(i.resizeHandler.cancel(),i.resizeHandler=null)},i.attachObserver=function(){var d=i.props,u=d.targetRef,m=d.observerOptions;if(!Pr()){u&&u.current&&(i.targetRef.current=u.current);var h=i.getElement();h&&(i.observableElement&&i.observableElement===h||(i.observableElement=h,i.resizeObserver.observe(h,m)))}},i.getElement=function(){var d=i.props,u=d.querySelector,m=d.targetDomEl;if(Pr())return null;if(u)return document.querySelector(u);if(m&&km(m))return m;if(i.targetRef&&km(i.targetRef.current))return i.targetRef.current;var h=ks.findDOMNode(i);if(!h)return null;var p=i.getRenderType();switch(p){case"renderProp":return h;case"childFunction":return h;case"child":return h;case"childArray":return h;default:return h.parentElement}},i.createResizeHandler=function(d){var u=i.props,m=u.handleWidth,h=m===void 0?!0:m,p=u.handleHeight,y=p===void 0?!0:p,f=u.onResize;if(!(!h&&!y)){var g=Af(f,i.setState.bind(i),h,y);d.forEach(function(v){var S=v&&v.contentRect||{},R=S.width,z=S.height,P=!i.skipOnMount&&!Pr();P&&g({width:R,height:z}),i.skipOnMount=!1})}},i.getRenderType=function(){var d=i.props,u=d.render,m=d.children;return _c(u)?"renderProp":_c(m)?"childFunction":k.isValidElement(m)?"child":Array.isArray(m)?"childArray":"parent"};var s=r.skipOnMount,a=r.refreshMode,l=r.refreshRate,o=l===void 0?1e3:l,c=r.refreshOptions;return i.state={width:void 0,height:void 0},i.skipOnMount=s,i.targetRef=k.createRef(),i.observableElement=null,Pr()||(i.resizeHandler=Tf(i.createResizeHandler,a,o,c),i.resizeObserver=new window.ResizeObserver(i.resizeHandler)),i}return e.prototype.componentDidMount=function(){this.attachObserver()},e.prototype.componentDidUpdate=function(){this.attachObserver()},e.prototype.componentWillUnmount=function(){Pr()||(this.observableElement=null,this.resizeObserver.disconnect(),this.cancelHandler())},e.prototype.render=function(){var r=this.props,i=r.render,s=r.children,a=r.nodeType,l=a===void 0?"div":a,o=this.state,c=o.width,d=o.height,u={width:c,height:d,targetRef
102:this.targetRef},m=this.getRenderType(),h;switch(m){case"renderProp":return i&&i(u);case"childFunction":return h=s,h(u);case"child":if(h=s,h.type&&typeof h.type=="string"){u.targetRef;var p=wf(u,["targetRef"]);return k.cloneElement(h,p)}return k.cloneElement(h,u);case"childArray":return h=s,h.map(function(y){return!!y&&k.cloneElement(y,u)});default:return k.createElement(l,null)}},e}(k.PureComponent);function qE(t,e){e===void 0&&(e={});var r=function(a){Ef(l,a);function l(){var o=a!==null&&a.apply(this,arguments)||this;return o.ref=k.createRef(),o}return l.prototype.render=function(){var o=this.props,c=o.forwardedRef,d=wf(o,["forwardedRef"]),u=c??this.ref;return k.createElement(Mf,zi({},e,{targetRef:u}),k.createElement(t,zi({targetRef:u},d)))},l}(k.Component);function i(a,l){return k.createElement(r,zi({},a,{forwardedRef:l}))}var s=t.displayName||t.name;return i.displayName="withResizeDetector(".concat(s,")"),k.forwardRef(i)}var $E=Pr()?k.useEffect:k.useLayoutEffect;function KE(t){t===void 0&&(t={});var e=t.skipOnMount,r=e===void 0?!1:e,i=t.refreshMode,s=t.refreshRate,a=s===void 0?1e3:s,l=t.refreshOptions,o=t.handleWidth,c=o===void 0?!0:o,d=t.handleHeight,u=d===void 0?!0:d,m=t.targetRef,h=t.observerOptions,p=t.onResize,y=k.useRef(r),f=k.useRef(null),g=m??f,v=k.useRef(),S=k.useState({width:void 0,height:void 0}),R=S[0],z=S[1];return $E(function(){if(!Pr()){var P=Af(p,z,c,u),U=function(w){!c&&!u||w.forEach(function(Y){var D=Y&&Y.contentRect||{},_=D.width,M=D.height,b=!y.current&&!Pr();b&&P({width:_,height:M}),y.current=!1})};v.current=Tf(U,i,a,l);var A=new window.ResizeObserver(v.current);return g.current&&A.observe(g.current,h),function(){A.disconnect();var w=v.current;w&&w.cancel&&w.cancel()}}},[i,a,l,c,u,p,h,g.current]),zi({ref:g},R)}const GE=Object.freeze(Object.defineProperty({__proto__:null,default:Mf,useResizeDetector:KE,withResizeDetector:qE},Symbol.toStringTag,{value:"Module"})),WE=Jx(GE);var Nf={};(function(t){var e=je&&je.__createBinding||(Object.create?function(y,f,g,v){v===void 0&&(v=g);var S=Object.getOwnPropertyDescriptor(f,g);
102(!S||("get"in S?!f.__esModule:S.writable||S.configurable))&&(S={enumerable:!0,get:function(){return f[g]}}),Object.defineProperty(y,v,S)}:function(y,f,g,v){v===void 0&&(v=g),y[v]=f[g]}),r=je&&je.__setModuleDefault||(Object.create?function(y,f){Object.defineProperty(y,"default",{enumerable:!0,value:f})}:function(y,f){y.default=f}),i=je&&je.__importStar||function(y){if(y&&y.__esModule)return y;var f={};if(y!=null)for(var g in y)g!=="default"&&Object.prototype.hasOwnProperty.call(y,g)&&e(f,y,g);return r(f,y),f};Object.defineProperty(t,"__esModule",{value:!0}),t.useColumns=t.parseFlexValue=void 0;const s=i(k),a=()=>s.default.createElement(s.default.Fragment,null),l=()=>!1,o=({rowData:y})=>y,c=()=>null,d=({rowIndex:y})=>s.default.createElement(s.default.Fragment,null,y+1),u=()=>!0,m=y=>y,h=y=>{if(typeof y=="number")return{basis:0,grow:y,shrink:1};if(y.match(/^ *\d+(\.\d*)? *$/))return{basis:0,grow:parseFloat(y.trim()),shrink:1};if(y.match(/^ *\d+(\.\d*)? *px *$/))return{basis:parseFloat(y.trim()),grow:1,shrink:1};if(y.match(/^ *\d+(\.\d*)? \d+(\.\d*)? *$/)){const[f,g]=y.trim().split(" ");return{basis:0,grow:parseFloat(f),shrink:parseFloat(g)}}if(y.match(/^ *\d+(\.\d*)? \d+(\.\d*)? *px *$/)){const[f,g]=y.trim().split(" ");return{basis:parseFloat(g),grow:parseFloat(f),shrink:1}}if(y.match(/^ *\d+(\.\d*)? \d+(\.\d*)? \d+(\.\d*)? *px *$/)){const[f,g,v]=y.trim().split(" ");return{basis:parseFloat(v),grow:parseFloat(f),shrink:parseFloat(g)}}return{basis:0,grow:1,shrink:1}};t.parseFlexValue=h;const p=(y,f,g)=>(0,s.useMemo)(()=>{var v,S,R,z,P,U,A,w,Y,D;const _=[f===!1?{basis:0,grow:0,shrink:0,minWidth:0,component:()=>s.default.createElement(s.default.Fragment,null),headerClassName:"dsg-hidden-cell",cellClassName:"dsg-hidden-cell",isCellEmpty:u}:Object.assign(Object.assign({},f),{basis:(v=f==null?void 0:f.basis)!==null&&v!==void 0?v:40,grow:(S=f==null?void 0:f.grow)!==null&&S!==void 0?S:0,shrink:(R=f==null?void 0:f.shrink)!==null&&R!==void 0?R:0,minWidth:(z=f==null?void 0:f.minWidth)!==null&&z!==void 0?z:0,title:(P=f==null?void 0:f.title)!==null&&P!==void 0?P:s.default.createElement("div",{className:"dsg-corner-indicator"}),component:(U=f==null?void 0:f.component)!==null&&U!==void 0?U:d,isCellEmpty:u}),...y];return g&&_.push(Object.assign(Object.assign({},g),{basis:(A=g==null?void 0:g.basis)!==null&&A!==void 0?A:40,grow:(w=g==null?void 0:g.grow)!==null&&w!==void 0?w:0,shrink:(Y=g==null?void 0:g.shrink)!==null&&Y!==void 0?Y:0,minWidth:(D=g.minWidth)!==null&&D!==void 0?D:0,isCellEmpty:u})),_.map(M=>{var b,I,j,N,$,ue,oe,K,fe,J,B,he,de,_e,De,Ce;const Ue=M.width!==void 0?(0,t.parseFlexValue)(M.width):{basis:void 0,grow:void 0,shrink:void 0};return Object.assign(Object.assign({},M),{basis:(I=(b=M.basis)!==null&&b!==void 0?b:Ue.basis)!==null&&I!==void 0?I:0,grow:(N=(j=M.grow)!==null&&j!==void 0?j:Ue.grow)!==null&&N!==void 0?N:1,shrink:(ue=($=M.shrink)!==null&&$!==void 0?$:Ue.shrink)!==null&&ue!==void 0?ue:1,minWidth:(oe=M.minWidth)!==null&&oe!==void 0?oe:100,component:(K=M.component)!==null&&K!==void 0?K:a,disableKeys:(fe=M.disableKeys)!==null&&fe!==void 0?fe:!1,disabled:(J=M.disabled)!==null&&J!==void 0?J:!1,keepFocus:(B=M.keepFocus)!==null&&B!==void 0?B:!1,deleteValue:(he=M.deleteValue)!==null&&he!==void 0?he:o,copyValue:(de=M.copyValue)!==null&&de!==void 0?de:c,pasteValue:(_e=M.pasteValue)!==null&&_e!==void 0?_e:o,prePasteValues:(De=M.prePasteValues)!==null&&De!==void 0?De:m,isCellEmpty:(Ce=M.isCellEmpty)!==null&&Ce!==void 0?Ce:l})})},[f,g,y]);t.useColumns=p})(Nf);var Ol={},Xi={};Object.defineProperty(Xi,"__esModule",{value:!0});function jc(t,e,r,i){var s,a=!1,l=0;function o(){s&&clearTimeout(s)}function c(){o(),a=!0}typeof e!="boolean"&&(i=r,r=e,e=void 0);function d(){for(var u=arguments.length,m=new Array(u),h=0;h<u;h++)m[h]=arguments[h];var p=this,y=Date.now()-l;if(a)return;function f(){l=Date.now(),r.apply(p,m)}function g(){s=void 0}i&&!s&&f(),o(),i===void 0&&y>t?f():e!==!0&&(s=setTimeout(i?g:f,i===void 0?t-y:t))}return d.cancel=c,d}function VE(t,e,r){return r===void 0?jc(t,e,!1):jc(t,r,e!==!1)}Xi.debounce=VE;Xi.throttle=jc;var Zs={},Pf=function t(e,r){if(e===r)return!0;
102if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var i,s,a;if(Array.isArray(e)){if(i=e.length,i!=r.length)return!1;for(s=i;s--!==0;)if(!t(e[s],r[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(a=Object.keys(e),i=a.length,i!==Object.keys(r).length)return!1;for(s=i;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[s]))return!1;for(s=i;s--!==0;){var l=a[s];if(!t(e[l],r[l]))return!1}return!0}return e!==e&&r!==r},QE=je&&je.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Zs,"__esModule",{value:!0});Zs.useDeepEqualState=void 0;const Sm=k,XE=QE(Pf),ZE=t=>{const[e,r]=(0,Sm.useState)(t),i=(0,Sm.useCallback)(s=>{r(a=>{const l=typeof s=="function"?s(a):s;return(0,XE.default)(l,a)?a:l})},[r]);return[e,i]};Zs.useDeepEqualState=ZE;Object.defineProperty(Ol,"__esModule",{value:!0});Ol.useEdges=void 0;const JE=k,ew=Xi,tw=Zs,nw=(t,e,r)=>{const[i,s]=(0,tw.useDeepEqualState)({top:!0,right:!0,bottom:!0,left:!0});return(0,JE.useEffect)(()=>{const a=(0,ew.throttle)(100,()=>{var o,c,d,u,m,h,p,y,f,g;s({top:((o=t.current)===null||o===void 0?void 0:o.scrollTop)===0,right:((d=(c=t.current)===null||c===void 0?void 0:c.scrollLeft)!==null&&d!==void 0?d:0)>=((m=(u=t.current)===null||u===void 0?void 0:u.scrollWidth)!==null&&m!==void 0?m:0)-(e??0)-1,bottom:((p=(h=t.current)===null||h===void 0?void 0:h.scrollTop)!==null&&p!==void 0?p:0)>=((f=(y=t.current)===null||y===void 0?void 0:y.scrollHeight)!==null&&f!==void 0?f:0)-(r??0)-1,left:((g=t.current)===null||g===void 0?void 0:g.scrollLeft)===0})}),l=t.current;return l==null||l.addEventListener("scroll",a),setTimeout(a,100),()=>{l==null||l.removeEventListener("scroll",a),a.cancel()}},[r,e,t,s]),i};Ol.useEdges=nw;var Js={};Object.defineProperty(Js,"__esModule",{value:!0});Js.useDocumentEventListener=void 0;const rw=k,iw=(t,e)=>{(0,rw.useEffect)(()=>(document.addEventListener(t,e),()=>{document.removeEventListener(t,e)}),[e,t])};Js.useDocumentEventListener=iw;var Ll={};Object.defineProperty(Ll,"__esModule",{value:!0});Ll.useGetBoundingClientRect=void 0;const Do=k,sw=Xi,aw=(t,e=200)=>{const r=(0,Do.useRef)(null),i=(0,Do.useMemo)(()=>(0,sw.throttle)(e,!0,()=>{setTimeout(()=>{var s;return r.current=((s=t.current)===null||s===void 0?void 0:s.getBoundingClientRect())||null},0)}),[t,e]);return(0,Do.useCallback)((s=!1)=>{var a;return s?r.current=((a=t.current)===null||a===void 0?void 0:a.getBoundingClientRect())||null:i(),r.current},[t,i])};Ll.useGetBoundingClientRect=aw;var hd={};(function(t){var e=je&&je.__createBinding||(Object.create?function(l,o,c,d){d===void 0&&(d=c);var u=Object.getOwnPropertyDescriptor(o,c);(!u||("get"in u?!o.__esModule:u.writable||u.configurable))&&(u={enumerable:!0,get:function(){return o[c]}}),Object.defineProperty(l,d,u)}:function(l,o,c,d){d===void 0&&(d=c),l[d]=o[c]}),r=je&&je.__setModuleDefault||(Object.create?function(l,o){Object.defineProperty(l,"default",{enumerable:!0,value:o})}:function(l,o){l.default=o}),i=je&&je.__importStar||function(l){if(l&&l.__esModule)return l;var o={};if(l!=null)for(var c in l)c!=="default"&&Object.prototype.hasOwnProperty.call(l,c)&&e(o,l,c);return r(o,l),o};Object.defineProperty(t,"__esModule",{value:!0}),t.AddRows=t.createAddRowsComponent=void 0;const s=i(k),a=(l={})=>({addRows:o})=>{var c,d;
102const[u,m]=(0,s.useState)(1),[h,p]=(0,s.useState)(String(u));return s.default.createElement("div",{className:"dsg-add-row"},s.default.createElement("button",{type:"button",className:"dsg-add-row-btn",onClick:()=>o(u)},(c=l.button)!==null&&c!==void 0?c:"Add")," ",s.default.createElement("input",{className:"dsg-add-row-input",value:h,onBlur:()=>p(String(u)),type:"number",min:1,onChange:y=>{p(y.target.value),m(Math.max(1,Math.round(parseInt(y.target.value)||0)))},onKeyDown:y=>{y.key==="Enter"&&o(u)}})," ",(d=l.unit)!==null&&d!==void 0?d:"rows")};t.createAddRowsComponent=a,t.AddRows=(0,t.createAddRowsComponent)(),t.AddRows.displayName="AddRows"})(hd);var Fl={};Object.defineProperty(Fl,"__esModule",{value:!0});Fl.useDebounceState=void 0;const ga=k,lw=Xi,ow=(t,e)=>{const[r,i]=(0,ga.useState)(t),s=(0,ga.useRef)();(0,ga.useEffect)(()=>()=>{var l;return(l=s.current)===null||l===void 0?void 0:l.cancel()},[]);const a=(0,ga.useMemo)(()=>s.current=(0,lw.debounce)(e,l=>{i(l)}),[e]);return[r,a]};Fl.useDebounceState=ow;var pd={};(function(t){var e=je&&je.__createBinding||(Object.create?function(d,u,m,h){h===void 0&&(h=m);var p=Object.getOwnPropertyDescriptor(u,m);(!p||("get"in p?!u.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return u[m]}}),Object.defineProperty(d,h,p)}:function(d,u,m,h){h===void 0&&(h=m),d[h]=u[m]}),r=je&&je.__setModuleDefault||(Object.create?function(d,u){Object.defineProperty(d,"default",{enumerable:!0,value:u})}:function(d,u){d.default=u}),i=je&&je.__importStar||function(d){if(d&&d.__esModule)return d;var u={};if(d!=null)for(var m in d)m!=="default"&&Object.prototype.hasOwnProperty.call(d,m)&&e(u,d,m);return r(u,d),u};Object.defineProperty(t,"__esModule",{value:!0}),t.ContextMenu=t.createContextMenuComponent=t.defaultRenderItem=void 0;const s=i(k),a=k,l=Js,o=d=>d.type==="CUT"?s.createElement(s.Fragment,null,"Cut"):d.type==="COPY"?s.createElement(s.Fragment,null,"Copy"):d.type==="PASTE"?s.createElement(s.Fragment,null,"Paste"):d.type==="DELETE_ROW"?s.createElement(s.Fragment,null,"Delete row"):d.type==="DELETE_ROWS"?s.createElement(s.Fragment,null,"Delete rows ",s.createElement("b",null,d.fromRow)," to ",s.createElement("b",null,d.toRow)):d.type==="INSERT_ROW_BELLOW"?s.createElement(s.Fragment,null,"Insert row below"):d.type==="DUPLICATE_ROW"?s.createElement(s.Fragment,null,"Duplicate row"):d.type==="DUPLICATE_ROWS"?s.createElement(s.Fragment,null,"Duplicate rows ",s.createElement("b",null,d.fromRow)," to ",s.createElement("b",null,d.toRow)):d.type;t.defaultRenderItem=o;const c=(d=t.defaultRenderItem)=>({clientX:u,clientY:m,items:h,close:p})=>{const y=(0,a.useRef)(null),f=(0,a.useCallback)(g=>{var v;((v=y.current)===null||v===void 0?void 0:v.contains(g.target))||p()},[p]);return(0,l.useDocumentEventListener)("mousedown",f),s.createElement("div",{className:"dsg-context-menu",style:{left:u+"px",top:m+"px"},ref:y},h.map(g=>s.createElement("div",{key:g.type,onClick:g.action,className:"dsg-context-menu-item"},d(g))))};t.createContextMenuComponent=c,t.ContextMenu=(0,t.createContextMenuComponent)(t.defaultRenderItem),t.ContextMenu.displayName="ContextMenu"})(pd);var or={},Bl={};Object.defineProperty(Bl,"__esModule",{value:!0});Bl.parseDom=void 0;const cw=typeof DOMParser<"u"?new DOMParser:{parseFromString:()=>null},dw=t=>cw.parseFromString(t,"text/html");Bl.parseDom=dw;Object.defineProperty(or,"__esModule",{value:!0});or.isPrintableUnicode=or.encodeHtml=or.parseTextPlainData=or.parseTextHtmlData=void 0;const uw=Bl,mw=t=>{var e,r;const i=(0,uw.parseDom)(t.replace(/<br\/?>/g,` 103`)),s=i.getElementsByTagName("table")[0];if(s){const l=[];for(let o=0;o<s.rows.length;o++){const c=[];l.push(c);for(let d=0;d<s.rows[o].cells.length;d++)c.push((e=s.rows[o].cells[d].textContent)!==null&&e!==void 0?e:"")}return l}const a=i.getElementsByTagName("span")[0];return a?[[(r=a.textContent)!==null&&r!==void 0?r:""]]:[[""]]};or.parseTextHtmlData=mw;const hw=t=>{const e=t.replace(/\r|\n$/g,""),r=[[]];let i=0,s=0,a=!1,l=0;const o=()=>{let c=e.slice(s,i);c[0]==='"'&&c[c.length-1]==='"'&&(a=!0),a&&c[c.length-1]==='"'&&c.includes(` 104`)&&(c=c.slice(1,c.length-1).replace(/""/g,'"'),a=!1),a&&c[c.length-1]!=='"'?c.split(` 105`).forEach((d,u,{length:m})=>{r[l].push(d),u<m-1&&(r.push([]),l++)}):r[l].push(c)};for(;i<e.length;)a&&e[i]==='"'&&![void 0," ",'"'].includes(e[i+1])&&(a=!1),a&&e[i]==='"'&&e[i+1]==='"'&&i++,i===s&&e[i]==='"'&&(a=!0),e[i]===" "&&(o(),s=i+1,a=!1),e[i]===` 106`&&!a&&(o(),r.push([]),s=i+1,l++),i++;return o(),r};or.parseTextPlainData=hw;const pw=t=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'");or.encodeHtml=pw;const fw=t=>t.match(/^[^\x00-\x20\x7F-\x9F]$/)!==null;or.isPrintableUnicode=fw;var zf={};
106(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.getSelectionWithId=t.getSelection=t.getCellWithId=t.getCell=void 0;const e=(a,l,o,c)=>{if(a===null||!l||!o)return null;if(typeof a!="object")throw new Error("Value must be an object or null");const d=c.findIndex(m=>m.id===a.col),u={col:Math.max(0,Math.min(l-1,d===-1?Number(a.col):d-1)),row:Math.max(0,Math.min(o-1,Number(a.row)))};if(isNaN(u.col)||isNaN(u.row))throw new Error("col or cell are not valid positive numbers");return u};t.getCell=e;const r=(a,l)=>{var o;return a?{col:a.col,row:a.row,colId:(o=l[a.col+1])===null||o===void 0?void 0:o.id}:null};t.getCellWithId=r;const i=(a,l,o,c)=>{if(a===null||!l||!o)return null;if(typeof a!="object")throw new Error("Value must be an object or null");const d={min:(0,t.getCell)(a.min,l,o,c),max:(0,t.getCell)(a.max,l,o,c)};if(!d.min||!d.max)throw new Error("min and max must be defined");return d};t.getSelection=i;const s=(a,l)=>a?{min:(0,t.getCellWithId)(a.min,l),max:(0,t.getCellWithId)(a.max,l)}:null;t.getSelectionWithId=s})(zf);var Yl={};Object.defineProperty(Yl,"__esModule",{value:!0});Yl.getAllTabbableElements=void 0;const gw=()=>Array.from(document.querySelectorAll("*")).filter(t=>t instanceof HTMLElement&&typeof t.tabIndex=="number"&&t.tabIndex>=0&&!t.disabled&&(!(t instanceof HTMLAnchorElement)||!!t.href||t.getAttribute("tabIndex")!==null)&&getComputedStyle(t).visibility!=="collapse");Yl.getAllTabbableElements=gw;var Hl={},Of={},Lf={},Ff={};(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(r,i,s){const a=new Array(r);return new Proxy(a,{get(l,o,c){if(typeof o=="string"){const d=o.charCodeAt(0);if(d>=48&&d<=57){const u=+o;if(Number.isInteger(u)&&u>=0&&u<r){let m=l[u];if(!m){const h=i[u*2];m=l[u]={index:u,key:s(u),start:h,size:i[u*2+1],end:h+i[u*2+1],lane:0}}return m}}if(o==="length")return r}return Reflect.get(l,o,c)}})}t.createLazyMeasurementsView=e})(Ff);var Bf={};(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(a,l,o){let c=o.initialDeps??[],d,u=!0;function m(){const h=a();return(h.length!==c.length||h.some((y,f)=>c[f]!==y))&&(c=h,d=l(...h),o!=null&&o.onChange&&!(u&&o.skipInitialOnChange)&&o.onChange(d),u=!1),d}return m.updateDeps=h=>{c=h},m}function r(a,l){if(a===void 0)throw new Error(`Unexpected undefined${l?`: ${l}`:""}`);return a}const i=(a,l)=>Math.abs(a-l)<1.01,s=(a,l,o)=>{let c;return function(...d){a.clearTimeout(c),c=a.setTimeout(()=>l.apply(this,d),o)}};t.approxEqual=i,t.debounce=s,t.memo=e,t.notUndefined=r})(Bf);(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=Ff,r=Bf;let i;const s=()=>
106{if(i!==void 0)return i;if(typeof navigator>"u")return i=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return i=!0;const w=navigator.maxTouchPoints;return i=navigator.platform==="MacIntel"&&w!==void 0&&w>0},a=()=>{i=void 0},l=w=>{const{offsetWidth:Y,offsetHeight:D}=w;return{width:Y,height:D}},o=w=>w,c=w=>{const Y=Math.max(w.startIndex-w.overscan,0),_=Math.min(w.endIndex+w.overscan,w.count-1)-Y+1,M=new Array(_);for(let b=0;b<_;b++)M[b]=Y+b;return M},d=(w,Y)=>{const D=w.scrollElement;if(!D)return;const _=w.targetWindow;if(!_)return;const M=I=>{const{width:j,height:N}=I;Y({width:Math.round(j),height:Math.round(N)})};if(M(l(D)),!_.ResizeObserver)return()=>{};const b=new _.ResizeObserver(I=>{const j=()=>{const N=I[0];if(N!=null&&N.borderBoxSize){const $=N.borderBoxSize[0];if($){M({width:$.inlineSize,height:$.blockSize});return}}M(l(D))};w.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(j):j()});return b.observe(D,{box:"border-box"}),()=>{b.unobserve(D)}},u={passive:!0},m=(w,Y)=>{const D=w.scrollElement;if(!D)return;const _=()=>{Y({width:D.innerWidth,height:D.innerHeight})};return _(),D.addEventListener("resize",_,u),()=>{D.removeEventListener("resize",_)}},h=typeof window>"u"?!0:"onscrollend"in window,p=(w,Y,D)=>{const _=w.scrollElement;if(!_)return;const M=w.targetWindow;if(!M)return;const b=w.options.useScrollendEvent&&h;let I=0;const j=b?null:r.debounce(M,()=>Y(I,!1),w.options.isScrollingResetDelay),N=oe=>()=>{I=D(_),j==null||j(),Y(I,oe)},$=N(!0),ue=N(!1);return _.addEventListener("scroll",$,u),b&&_.addEventListener("scrollend",ue,u),()=>{_.removeEventListener("scroll",$),b&&_.removeEventListener("scrollend",ue)}},y=(w,Y)=>p(w,Y,D=>{const{horizontal:_,isRtl:M}=w.options;return _?D.scrollLeft*(M&&-1||1):D.scrollTop}),f=(w,Y)=>p(w,Y,D=>w.options.horizontal?D.scrollX:D.scrollY),g=(w,Y,D)=>{if(D.options.useCachedMeasurements){const _=D.indexFromElement(w),M=D.options.getItemKey(_);return D.itemSizeCache.get(M)??D.options.estimateSize(_)}if(Y!=null&&Y.borderBoxSize){const _=Y.borderBoxSize[0];if(_)return Math.round(_[D.options.horizontal?"inlineSize":"blockSize"])}if(!Y){const _=D.indexFromElement(w),M=D.options.getItemKey(_),b=D.itemSizeCache.get(M);if(b!==void 0)return b}return w[D.options.horizontal?"offsetWidth":"offsetHeight"]},v=(w,{adjustments:Y=0,behavior:D},_)=>{var M,b;(b=(M=_.scrollElement)==null?void 0:M.scrollTo)==null||b.call(M,{[_.options.horizontal?"left":"top"]:w+Y,behavior:D})},S=v,R=v;class z{constructor(Y){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var D,_,M;return((M=(_=(D=this.targetWindow)==null?void 0:D.performance)==null?void 0:_.now)==null?void 0:M.call(_))??Date.now()},this.observer=(()=>{let D=null;const _=()=>D||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:D=new this.targetWindow.ResizeObserver(M=>{M.forEach(b=>{const I=()=>{const j=b.target,N=this.indexFromElement(j);if(!j.isConnected){this.observer.unobserve(j);for(const[$,ue]of this.elementsCache)if(ue===j){this.elementsCache.delete($);break}return}this.shouldMeasureDuringScroll(N)&&this.resizeItem(N,this.options.measureElement(j,b,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(I):I()})}));return{disconnect:()=>{var M;(M=_())==null||M.disconnect(),D=null},observe:M=>{var b;return(b=_())==null?void 0:b.observe(M,{box:"border-box"})},unobserve:M=>{var b;return(b=_())==null?void 0:b.unobserve(M)}}})(),this.range=null,this.setOptions=D=>{var _,M;const b={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:o,rangeExtractor:c,onChange:()=>{},measureElement:g,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const K in D){const fe=D[K];fe!==void 0&&(b[K]=fe)}const I=this.options;let j=null,N=null,$=!1;if(I!==void 0&&I.enabled&&b.enabled&&b.anchorTo==="end"&&this.scrollElement!==null){const K=I.count,fe=b.count,J=this.getMeasurements(),B=K>0?((_=J[0])==null?void 0:_.key)??I.getItemKey(0):null,he=K>0?((M=J[K-1])==null?void 0:M.key)??I.getItemKey(K-1):null;if(fe!==K||K>0&&fe>0&&(b.getItemKey(0)!==B||b.getItemKey(fe-1)!==he)){$=!0;const De=K>0?this.getVirtualItemForOffset(this.getScrollOffset())??J[0]:null;
106De&&(j=[De.key,this.getScrollOffset()-De.start]);const Ce=b.followOnAppend===!0?"auto":b.followOnAppend||null;Ce&&fe>K&&this.isAtEnd(I.scrollEndThreshold)&&(K===0||b.getItemKey(fe-1)!==he)&&(N=Ce)}}this.options=b,$&&(this.pendingMin=0,this.itemSizeCacheVersion++);let ue=!1,oe=0;if(j&&this.scrollOffset!==null){const[K,fe]=j,J=this.getMeasurements(),{count:B,getItemKey:he}=this.options;let de=0;for(;de<B&&he(de)!==K;)de++;if(de<B){const _e=J[de];if(_e){const De=_e.start+fe;De!==this.scrollOffset&&(oe=De-this.scrollOffset,this.scrollOffset=De,ue=!0)}}}(ue||N)&&(this.pendingScrollAnchor=[ue?j[0]:null,ue?j[1]:0,N,oe])},this.notify=D=>{var _,M;(M=(_=this.options).onChange)==null||M.call(_,this,D)},this.maybeNotify=r.memo(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),D=>{this.notify(D)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(D=>D()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var D;const _=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==_){if(this.cleanup(),!_){this.maybeNotify();return}if(this.scrollElement=_,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((D=this.scrollElement)==null?void 0:D.window)??null,this.elementsCache.forEach(b=>{this.observer.observe(b)}),this.unsubs.push(this.options.observeElementRect(this,b=>{this.scrollRect=b,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(b,I)=>{if(I&&this._intendedScrollOffset===null&&b===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(b-this._intendedScrollOffset)<1.5&&(b=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const j=this.getScrollOffset();this.scrollDirection=I?j===b?this.scrollDirection:j<b?"forward":"backward":null,this.scrollOffset=b,this.isScrolling=I,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const b=this.scrollElement,I=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},j=()=>{this._iosTouching=!1,!(!s()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};b.addEventListener("touchstart",I,u),b.addEventListener("touchend",j,u),this.unsubs.push(()=>{b.removeEventListener("touchstart",I),b.removeEventListener("touchend",j),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const M=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,M&&this.scrollElement&&this.options.enabled){const[b,I,j,N]=M;b!==null&&!j&&(s()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?N!==0&&(this._iosDeferredAdjustment+=N):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),j&&this.scrollToEnd({behavior:j})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const D=this.getScrollOffset(),_=this.getMaxScrollOffset();if(D<0||D>_)return;const M=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(D,{adjustments:this.scrollAdjustments+=M,behavior:void 0})}
106,this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(D,_)=>{const M=new Map,b=new Map;for(let I=_-1;I>=0;I--){const j=D[I];if(M.has(j.lane))continue;const N=b.get(j.lane);if(N==null||j.end>N.end?b.set(j.lane,j):j.end<N.end&&M.set(j.lane,!0),M.size===this.options.lanes)break}return b.size===this.options.lanes?Array.from(b.values()).sort((I,j)=>I.end===j.end?I.index-j.index:I.end-j.end)[0]:void 0},this.getMeasurementOptions=r.memo(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(D,_,M,b,I,j,N)=>(this.prevLanes!==void 0&&this.prevLanes!==j&&(this.lanesChangedFlag=!0),this.prevLanes=j,this.pendingMin=null,{count:D,paddingStart:_,scrollMargin:M,getItemKey:b,enabled:I,lanes:j,laneAssignmentMode:N}),{key:!1}),this.getMeasurements=r.memo(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:D,paddingStart:_,scrollMargin:M,getItemKey:b,enabled:I,lanes:j,laneAssignmentMode:N},$)=>{const ue=this.itemSizeCache;if(!I)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>D)for(const J of this.laneAssignments.keys())J>=D&&this.laneAssignments.delete(J);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(J=>{this.itemSizeCache.set(J.key,J.size)}));const oe=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===D&&(this.lanesSettling=!1),j===1){const J=this.options.gap,B=D*2;let he=this._flatMeasurements;if(!he||he.length<B){const De=new Float64Array(B);he&&oe>0&&De.set(he.subarray(0,oe*2)),he=De,this._flatMeasurements=he}let de;if(oe===0)de=_+M;else{const De=oe-1;de=he[De*2]+he[De*2+1]+J}for(let De=oe;De<D;De++){const Ce=b(De),Ue=ue.get(Ce),se=typeof Ue=="number"?Ue:this.options.estimateSize(De);he[De*2]=de,he[De*2+1]=se,de+=se+J}const _e=e.createLazyMeasurementsView(D,he,b);return this.measurementsCache=_e,_e}const K=this.measurementsCache.slice(0,oe),fe=new Array(j).fill(void 0);for(let J=0;J<oe;J++){const B=K[J];B&&(fe[B.lane]=J)}for(let J=oe;J<D;J++){const B=b(J),he=this.laneAssignments.get(J);let de,_e;const De=N==="estimate"||ue.has(B);if(he!==void 0&&this.options.lanes>1){de=he;const q=fe[de],ae=q!==void 0?K[q]:void 0;_e=ae?ae.end+this.options.gap:_+M}else{const q=this.options.lanes===1?K[J-1]:this.getFurthestMeasurement(K,J);_e=q?q.end+this.options.gap:_+M,de=q?q.lane:J%this.options.lanes,this.options.lanes>1&&De&&this.laneAssignments.set(J,de)}const Ce=ue.get(B),Ue=typeof Ce=="number"?Ce:this.options.estimateSize(J),se=_e+Ue;K[J]={index:J,start:_e,size:Ue,end:se,key:B,lane:de},fe[de]=J}return this.measurementsCache=K,K},{key:!1,debug:()=>this.options.debug}),this.calculateRange=r.memo(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(D,_,M,b)=>D.length===0||_===0?(this.range=null,null):(this.range=A(D,_,M,b,b===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}
106),this.getVirtualIndexes=r.memo(()=>{let D=null,_=null;const M=this.calculateRange();return M&&(D=M.startIndex,_=M.endIndex),this.maybeNotify.updateDeps([this.isScrolling,D,_]),[this.options.rangeExtractor,this.options.overscan,this.options.count,D,_]},(D,_,M,b,I)=>b===null||I===null?[]:D({startIndex:b,endIndex:I,overscan:_,count:M}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=D=>{const _=this.options.indexAttribute,M=D.getAttribute(_);return M?parseInt(M,10):(console.warn(`Missing attribute name '${_}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=D=>{var _;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const M=this.scrollState.index??((_=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:_.index);if(M!==void 0&&this.range){const b=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),I=Math.max(0,M-b),j=Math.min(this.options.count-1,M+b);return D>=I&&D<=j}return!0},this.measureElement=D=>{if(!D){this.elementsCache.forEach((I,j)=>{I.isConnected||(this.observer.unobserve(I),this.elementsCache.delete(j))});return}const _=this.indexFromElement(D),M=this.options.getItemKey(_),b=this.elementsCache.get(M);b!==D&&(b&&this.observer.unobserve(b),this.observer.observe(D),this.elementsCache.set(M,D)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(_)&&this.resizeItem(_,this.options.measureElement(D,void 0,this))},this.resizeItem=(D,_)=>{var M,b;if(D<0||D>=this.options.count)return;let I,j,N;const $=this._flatMeasurements;if(this.options.lanes===1&&$!==null)N=this.options.getItemKey(D),j=$[D*2],I=$[D*2+1];else{const K=this.measurementsCache[D];if(!K)return;N=K.key,j=K.start,I=K.size}const ue=this.itemSizeCache.get(N)??I,oe=_-ue;if(oe!==0){const K=this.options.anchorTo==="end"&&((M=this.scrollState)==null?void 0:M.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,fe=K?this.getTotalSize():0,J=((b=this.scrollState)==null?void 0:b.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[D]??{index:D,key:N,start:j,size:I,end:j+I,lane:0},oe,this):j<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(N)||this.scrollDirection!=="backward"));(this.pendingMin===null||D<this.pendingMin)&&(this.pendingMin=D),this.itemSizeCache.set(N,_),this.itemSizeCacheVersion++,K?this.applyScrollAdjustment(this.getTotalSize()-fe):J&&this.applyScrollAdjustment(oe),this.notify(!1)}},this.getVirtualItems=r.memo(()=>
106[this.getVirtualIndexes(),this.getMeasurements()],(D,_)=>{const M=[];for(let b=0,I=D.length;b<I;b++){const j=D[b],N=_[j];M.push(N)}return M},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=D=>{const _=this.getMeasurements();if(_.length===0)return;const M=this._flatMeasurements,b=this.options.lanes===1&&M!=null,I=P(0,_.length-1,b?j=>M[j*2]:j=>r.notUndefined(_[j]).start,D);return r.notUndefined(_[I])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const D=this.scrollElement.document.documentElement;return this.options.horizontal?D.scrollWidth-this.scrollElement.innerWidth:D.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(D=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=D,this.getOffsetForAlignment=(D,_,M=0)=>{if(!this.scrollElement)return 0;const b=this.getSize(),I=this.getScrollOffset();_==="auto"&&(_=D>=I+b?"end":"start"),_==="center"?D+=(M-b)/2:_==="end"&&(D-=b);const j=this.getMaxScrollOffset();return Math.max(Math.min(j,D),0)},this.getOffsetForIndex=(D,_="auto")=>{D=Math.max(0,Math.min(D,this.options.count-1));const M=this.getSize(),b=this.getScrollOffset(),I=this.measurementsCache[D];if(!I)return;if(_==="auto")if(I.end>=b+M-this.options.scrollPaddingEnd)_="end";else if(I.start<=b+this.options.scrollPaddingStart)_="start";else return[b,_];if(_==="end"&&D===this.options.count-1)return[this.getMaxScrollOffset(),_];const j=_==="end"?I.end+this.options.scrollPaddingEnd:I.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(j,_,I.size),_]},this.scrollToOffset=(D,{align:_="start",behavior:M="auto"}={})=>{const b=this.getOffsetForAlignment(D,_),I=this.now();this.scrollState={index:null,align:_,behavior:M,startedAt:I,lastTargetOffset:b,stableFrames:0},this._scrollToOffset(b,{adjustments:void 0,behavior:M}),this.scheduleScrollReconcile()},this.scrollToIndex=(D,{align:_="auto",behavior:M="auto"}={})=>{D=Math.max(0,Math.min(D,this.options.count-1));const b=this.getOffsetForIndex(D,_);if(!b)return;const[I,j]=b,N=this.now();this.scrollState={index:D,align:j,behavior:M,startedAt:N,lastTargetOffset:I,stableFrames:0},this._scrollToOffset(I,{adjustments:void 0,behavior:M}),this.scheduleScrollReconcile()},this.scrollBy=(D,{behavior:_="auto"}={})=>{const M=this.getScrollOffset()+D,b=this.now();this.scrollState={index:null,align:"start",behavior:_,startedAt:b,lastTargetOffset:M,stableFrames:0},this._scrollToOffset(M,{adjustments:void 0,behavior:_}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:D="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:D});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:D})},this.getTotalSize=()=>{var D;const _=this.getMeasurements();let M;if(_.length===0)M=this.options.paddingStart;else if(this.options.lanes===1){const b=_.length-1,I=this._flatMeasurements;I!=null?M=I[b*2]+I[b*2+1]:M=((D=_[b])==null?void 0:D.end)??0}else{const b=Array(this.options.lanes).fill(null);let I=_.length-1;for(;I>=0&&b.some(j=>j===null);){const j=_[I];b[j.lane]===null&&(b[j.lane]=j.end),I--}M=Math.max(...b.filter(j=>j!==null))}return Math.max(M-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const D=[];if(this.itemSizeCache.size===0)return D;const _=this.getMeasurements();for(const M of _)M&&this.itemSizeCache.has(M.key)&&D.push({index:M.index,key:M.key,start:M.start,size:M.size,end:M.end,lane:M.lane});return D},this._scrollToOffset=(D,{adjustments:_,behavior:M})=>{this._intendedScrollOffset=D+(_??0),this.options.scrollToFn(D,{behavior:M,adjustments:_},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(Y)}
106applyScrollAdjustment(Y,D){Y!==0&&(s()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=Y:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=Y,behavior:D}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const _=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,M=_?_[0]:this.scrollState.lastTargetOffset,b=1,I=M!==this.scrollState.lastTargetOffset;if(!I&&r.approxEqual(M,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=b){this.getScrollOffset()!==M&&this._scrollToOffset(M,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,I){const j=this.getSize()||600,N=Math.abs(M-this.getScrollOffset()),$=this.scrollState.behavior==="smooth"&&N>j;this.scrollState.lastTargetOffset=M,$||(this.scrollState.behavior="auto"),this._scrollToOffset(M,{adjustments:void 0,behavior:$?"smooth":"auto"})}this.scheduleScrollReconcile()}}const P=(w,Y,D,_)=>{for(;w<=Y;){const M=(w+Y)/2|0,b=D(M);if(b<_)w=M+1;else if(b>_)Y=M-1;else return M}return w>0?w-1:0};function U(w,Y,D){let _=0;for(;_<=Y;){const M=(_+Y)/2|0,b=w[M*2];if(b<D)_=M+1;else if(b>D)Y=M-1;else return M}return _>0?_-1:0}function A(w,Y,D,_,M){const b=w.length-1;if(w.length<=_)return{startIndex:0,endIndex:b};if(_===1&&M!==null){const $=U(M,b,D);let ue=$;const oe=D+Y;for(;ue<b&&M[ue*2]+M[ue*2+1]<oe;)ue++;return{startIndex:$,endIndex:ue}}let j=P(0,b,$=>w[$].start,D),N=j;if(_===1)for(;N<b&&w[N].end<D+Y;)N++;else if(_>1){const $=Array(_).fill(0);for(;N<b&&$.some(oe=>oe<D+Y);){const oe=w[N];$[oe.lane]=oe.end,N++}const ue=Array(_).fill(D+Y);for(;j>=0&&ue.some(oe=>oe>=D);){const oe=w[j];ue[oe.lane]=oe.start,j--}j=Math.max(0,j-j%_),N=Math.min(b,N+(_-1-N%_))}return{startIndex:j,endIndex:N}}t.approxEqual=r.approxEqual,t.debounce=r.debounce,t.memo=r.memo,t.notUndefined=r.notUndefined,t.Virtualizer=z,t._resetIOSDetectionForTests=a,t.defaultKeyExtractor=o,t.defaultRangeExtractor=c,t.elementScroll=R,t.measureElement=g,t.observeElementOffset=y,t.observeElementRect=d,t.observeWindowOffset=f,t.observeWindowRect=m,t.windowScroll=S})(Lf);(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=k,r=ks,i=Lf;function s(u){const m=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(u){for(const h in u)if(h!=="default"){const p=Object.getOwnPropertyDescriptor(u,h);Object.defineProperty(m,h,p.get?p:{enumerable:!0,get:()=>u[h]})}}return m.default=u,Object.freeze(m)}const a=s(e),l=typeof document<"u"?a.useLayoutEffect:a.useEffect;function o({useFlushSync:u=!0,directDomUpdates:m=!1,directDomUpdatesMode:h="transform",...p}){const y=a.useReducer(R=>R+1,0)[1],f=a.useRef({enabled:m,mode:h,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});f.current.enabled=m,f.current.mode=h;const g=R=>{const z=f.current;if(!z.enabled||!z.container)return;const P=R.getTotalSize();if(P!==z.lastSize){z.lastSize=P;const _=R.options.horizontal?"width":"height";z.container.style[_]=`${P}px`}const U=!!R.options.horizontal,A=z.mode==="transform",w=U?"left":"top",Y=R.options.scrollMargin,D=R.getVirtualItems();for(const _ of D){const M=_.start-Y,b=R.elementsCache.get(_.key);b&&z.lastPositions.get(b)!==M&&(z.lastPositions.set(b,M),A?b.style.transform=U?`translate3d(${M}px, 0, 0)`:`translate3d(0, ${M}px, 0)`:b.style[w]=`${M}px`)}},v={...p,onChange:(R,z)=>{var P;const U=f.current;let A=!0;if(U.enabled){g(R);const w=R.range,Y=U.prevRange;A=!Y||Y.isScrolling!==R.isScrolling||Y.startIndex!==(w==null?void 0:w.startIndex)||Y.endIndex!==(w==null?void 0:w.endIndex),A&&(U.prevRange=w?{startIndex:w.startIndex,endIndex:w.endIndex,isScrolling:R.isScrolling}:null)}A&&(u&&z?r.flushSync(y):y()),(P=p.onChange)==null||P.call(p,R,z)}},[S]=a.useState(()=>{const R=new i.Virtualizer(v);return Object.assign(R,{containerRef:z=>{const P=f.current;if(P.container=z,P.lastSize=null,z&&P.enabled){const U=R.getTotalSize();P.lastSize=U;const A=R.options.horizontal?"width":"height";z.style[A]=`${U}px`}}})});return S.setOptions(v),l(()=>S._didMount(),[]),l(()=>S._willUpdate()),l(()=>{g(S)}),S}function c(u){return o({observeElementRect:i.observeElementRect,observeElementOffset:i.observeElementOffset,scrollToFn:i.elementScroll,...u})}function d(u){return o({getScrollElement:()=>typeof document<"u"?window:null,observeElementRect:i.observeWindowRect,observeElementOffset:i.observeWindowOffset,scrollToFn:i.windowScroll,initialOffset:()=>typeof document<"u"?window.scrollY:0,...u})}t.useVirtualizer=c,t.useWindowVirtualizer=d,Object.keys(i).forEac
106h(u=>{u!=="default"&&!Object.prototype.hasOwnProperty.call(t,u)&&Object.defineProperty(t,u,{enumerable:!0,get:()=>i[u]})})})(Of);var Ul={},Yf=je&&je.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ul,"__esModule",{value:!0});Ul.Cell=void 0;const yw=Yf(k),xw=Yf(Wi),vw=({children:t,gutter:e,stickyRight:r,active:i,disabled:s,className:a,width:l,left:o})=>yw.default.createElement("div",{className:(0,xw.default)("dsg-cell",e&&"dsg-cell-gutter",s&&"dsg-cell-disabled",e&&i&&"dsg-cell-gutter-active",r&&"dsg-cell-sticky-right",a),style:{width:l,left:r?void 0:o}},t);Ul.Cell=vw;var ql={};Object.defineProperty(ql,"__esModule",{value:!0});ql.useMemoizedIndexCallback=void 0;const bw=k,_w=(t,e)=>(0,bw.useMemo)(()=>{const r=new Map;return i=>(r.has(i)||r.set(i,(...s)=>{t(i,...s.slice(0,e))}),r.get(i))},[e,t]);ql.useMemoizedIndexCallback=_w;var jw=je&&je.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,s)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),kw=je&&je.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Sw=je&&je.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&jw(e,t,r);return kw(e,t),e},Ew=je&&je.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Hl,"__esModule",{value:!0});Hl.Grid=void 0;const Ro=Of,xr=Sw(k),ya=Ew(Wi),Em=Ul,xa=ql,ww=({data:t,columns:e,outerRef:r,innerRef:i,columnWidths:s,hasStickyRightColumn:a,displayHeight:l,headerRowHeight:o,rowHeight:c,rowKey:d,fullWidth:u,selection:m,activeCell:h,rowClassName:p,cellClassName:y,children:f,editing:g,getContextMenuItems:v,setRowData:S,deleteRows:R,duplicateRows:z,insertRowAfter:P,stopEditing:U,onScroll:A})=>{var w,Y,D,_;const M=(0,Ro.useVirtualizer)({count:t.length,getScrollElement:()=>r.current,paddingStart:o,estimateSize:J=>c(J).height,getItemKey:J=>{if(d&&J>0){const B=t[J-1];if(typeof d=="function")return d({rowData:B,rowIndex:J});if(typeof d=="string"&&B instanceof Object&&d in B){const he=B[d];if(typeof he=="string"||typeof he=="number")return he}}return J},overscan:5}),b=(0,Ro.useVirtualizer)({count:e.length,getScrollElement:()=>r.current,estimateSize:J=>{var B;return(B=s==null?void 0:s[J])!==null&&B!==void 0?B:100},horizontal:!0,getItemKey:J=>{var B;return(B=e[J].id)!==null&&B!==void 0?B:J},overscan:1,rangeExtractor:J=>{const B=(0,Ro.defaultRangeExtractor)(J);return B[0]!==0&&B.unshift(0),a&&B[B.length-1]!==e.length-1&&B.push(e.length-1),B}});(0,xr.useEffect)(()=>{b.measure()},[b,s]);const I=(0,xa.useMemoizedIndexCallback)(S,1),j=(0,xa.useMemoizedIndexCallback)(R,0),N=(0,xa.useMemoizedIndexCallback)(z,0),$=(0,xa.useMemoizedIndexCallback)(P,0),ue=(w=m==null?void 0:m.min.col)!==null&&w!==void 0?w:h==null?void 0:h.col,oe=(Y=m==null?void 0:m.max.col)!==null&&Y!==void 0?Y:h==null?void 0:h.col,K=(D=m==null?void 0:m.min.row)!==null&&D!==void 0?D:h==null?void 0:h.row,fe=(_=m==null?void 0:m.max.row)!==null&&_!==void 0?_:h==null?void 0:h.row;return xr.default.createElement("div",{ref:r,className:"dsg-container",onScroll:A,style:{height:l}},xr.default.createElement("div",{ref:i,style:{width:u?"100%":b.getTotalSize(),height:M.getTotalSize()}},o>0&&xr.default.createElement("div",{className:(0,ya.default)("dsg-row","dsg-row-header"),style:{width:u?"100%":b.getTotalSize(),height:o}},b.getVirtualItems().map(J=>xr.default.createElement(Em.Cell,{key:J.key,gutter:J.index===0,stickyRight:a&&J.index===e.length-1,width:J.size,left:J.start,className:(0,ya.default)("dsg-cell-header",ue!==void 0&&oe!==void 0&&ue<=J.index-1&&oe>=J.index-1&&"dsg-cell-header-active",e[J.index].headerClassName)},xr.default.createElement("div",{className:"dsg-cell-header-container"},e[J.index].title)))),M.getVirtualItems().map(J=>{const B=J.index>=(K??1/0)&&J.index<=(fe??-1/0);return xr.default.createElement("div",{key:J.key,className:(0,ya.default)("dsg-row",typeof p=="string"?p:null,typeof p=="function"?p({rowData:t[J.index],rowIndex:J.index}):null),style:{height:J.size,top:J.start,width:u?"100%":b.getTotalSize()}},b.getVirtualItems().map(he=>{const de=e[he.index].cellClassName,_e=e[he.index].disabled,De=e[he.index].component,Ce=_e===!0||typeof _e=="function"&&_e({rowData:t[J.index],rowIndex:J.index}),Ue=(h==null?void 0:h.row)===J.index&&h.col===he.index-1;return xr.default.createElement(Em.Cell,{key:he.key,gutter:he.index===0,stickyRight:a&&he.index===e.length-1,active:he.index===0&&B,disabled:Ce,className:(0,ya.default)(typeof de=="function"?de({rowData:t[J.index],rowIndex:J.index,columnId:e[he.index].id}):de,typeof y=="function"?y({rowData:t[J.index],rowIndex:J.index,columnId:e[he.index].id}):y),width:he.size,left:he.start},xr.default.createElement(De,{rowData:t[J.index],getContextMenuItems:v,disabled:Ce,active:Ue,columnIndex:he.index-1,rowIndex:J.index,focus:Ue&&g,deleteRow:j(J.index),duplicateRow:N(J.index),stopEditing:U,insertRowBelow:$(J.index),setRowData:I(J.index),columnData:e[he.index].columnData}))}
106))}),f))};Hl.Grid=ww;var Hf={};(function(t){var e=je&&je.__createBinding||(Object.create?function(d,u,m,h){h===void 0&&(h=m);var p=Object.getOwnPropertyDescriptor(u,m);(!p||("get"in p?!u.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return u[m]}}),Object.defineProperty(d,h,p)}:function(d,u,m,h){h===void 0&&(h=m),d[h]=u[m]}),r=je&&je.__setModuleDefault||(Object.create?function(d,u){Object.defineProperty(d,"default",{enumerable:!0,value:u})}:function(d,u){d.default=u}),i=je&&je.__importStar||function(d){if(d&&d.__esModule)return d;var u={};if(d!=null)for(var m in d)m!=="default"&&Object.prototype.hasOwnProperty.call(d,m)&&e(u,d,m);return r(u,d),u},s=je&&je.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionRect=void 0;const a=i(k),l=s(Wi),o=(d,u,m,h)=>[[h,d],[u,d],[u,m],[h,m],[h,d]],c=(d,u,m,h)=>`polygon(evenodd, ${[...o(0,"100%","100%",0),...o(d,u,m,h)].map(y=>y.map(f=>typeof f=="number"&&f!==0?f+"px":f).join(" ")).join(",")})`;t.SelectionRect=a.default.memo(({columnWidths:d,columnRights:u,headerRowHeight:m,selection:h,rowHeight:p,activeCell:y,hasStickyRightColumn:f,dataLength:g,viewWidth:v,viewHeight:S,contentWidth:R,edges:z,isCellDisabled:P,editing:U,expandSelection:A})=>{var w,Y,D,_;const M=y?P(y):!1,b=(0,a.useMemo)(()=>{if(!h)return M;for(let J=h.min.col;J<=h.max.col;++J)for(let B=h.min.row;B<=h.max.row;++B)if(!P({col:J,row:B}))return!1;return!0},[M,P,h]);if(!d||!u)return null;const I=J=>J<g-1?1:0,j=J=>J<d.length-(f?3:2)?1:0,N=y&&{width:d[y.col+1]+j(y.col),height:p(y.row).height+I(y.row),left:u[y.col],top:p(y.row).top+m},$=h&&{width:d.slice(h.min.col+1,h.max.col+2).reduce((J,B)=>J+B)+j(h.max.col),height:p(h.max.row).top+p(h.max.row).height-p(h.min.row).top+I(h.max.row),left:u[h.min.col],top:p(h.min.row).top+m},ue=(h==null?void 0:h.min)||y,oe=(h==null?void 0:h.max)||y,K=oe&&A!==null&&{left:u[oe.col]+d[oe.col+1],top:p(oe.row).top+p(oe.row).height+m,transform:`translate(-${oe.col<d.length-(f?3:2)?50:100}%, -${oe.row<g-1?50:100}%)`},fe=ue&&oe&&A!==null&&{width:d.slice(ue.col+1,oe.col+2).reduce((J,B)=>J+B)+j(oe.col),height:p(oe.row+A).top+p(oe.row+A).height-p(oe.row+1).top+I(oe.row+A)-1,left:u[ue.col],top:p(oe.row).top+p(oe.row).height+m+1};return a.default.createElement(a.default.Fragment,null,a.default.createElement("div",{className:"dsg-scrollable-view-container",style:{height:p(g-1).top+p(g-1).height+m,width:R||"100%"}},a.default.createElement("div",{className:(0,l.default)({"dsg-scrollable-view":!0,"dsg-scrollable-view-t":!z.top,"dsg-scrollable-view-r":!z.right,"dsg-scrollable-view-b":!z.bottom,"dsg-scrollable-view-l":!z.left}),style:{top:m,left:d[0],height:S?S-m:0,width:R&&v?v-d[0]-(f?d[d.length-1]:0):`calc(100% - ${d[0]+(f?d[d.length-1]:0)}px)`}})),($||N)&&a.default.createElement("div",{className:"dsg-selection-col-marker-container",style:{left:(w=$==null?void 0:$.left)!==null&&w!==void 0?w:N==null?void 0:N.left,width:(Y=$==null?void 0:$.width)!==null&&Y!==void 0?Y:N==null?void 0:N.width,height:p(g-1).top+p(g-1).height+m}},a.default.createElement("div",{className:(0,l.default)("dsg-selection-col-marker",b&&"dsg-selection-col-marker-disabled"),style:{top:m}})),($||N)&&a.default.createElement("div",{className:"dsg-selection-row-marker-container",style:{top:(D=$==null?void 0:$.top)!==null&&D!==void 0?D:N==null?void 0:N.top,height:(_=$==null?void 0:$.height)!==null&&_!==void 0?_:N==null?void 0:N.height,width:R||"100%"}},a.default.createElement("div",{className:(0,l.default)("dsg-selection-row-marker",b&&"dsg-selection-row-marker-disabled"),style:{left:d[0]}})),N&&y&&a.default.createElement("div",{className:(0,l.default)("dsg-active-cell",{"dsg-active-cell-focus":U,"dsg-active-cell-disabled":M}),style:N}),$&&N&&a.default.createElement("div",{className:(0,l.default)("dsg-selection-rect",b&&"dsg-selection-rect-disabled"),style:Object.assign(Object.assign({},$),{clipPath:c(N.top-$.top,N.left-$.left,N.top+N.height-$.top,N.left+N.width-$.left)})}),fe&&a.default.createElement("div",{className:(0,l.default)("dsg-expand-rows-rect"),style:fe}),K&&a.default.createElement("div",{className:(0,l.default)("dsg-expand-rows-indicator",b&&"dsg-expand-rows-indicator-disabled"),style:K}))}),t.SelectionRect.displayName="SelectionRect"})(Hf);var $l={};
106Object.defineProperty($l,"__esModule",{value:!0});$l.useRowHeights=void 0;const Io=k,Cw=({value:t,rowHeight:e})=>{const r=(0,Io.useRef)([]),[,i]=(0,Io.useState)(0);return(0,Io.useMemo)(()=>{const s=a=>{if(typeof e=="number")return Math.min(t.length-1,Math.max(-1,Math.floor(a/e)));let l=0,o=r.current.length-1;for(;l<=o;){const c=Math.floor((l+o)/2);if(r.current[c].top<a)l=c+1;else if(r.current[c].top>a)o=c-1;else return c}if(o===r.current.length-1&&t.length>r.current.length&&(!r.current.length||a>=r.current[o].top+r.current[o].height)){let c=o===-1?0:r.current[o].top+r.current[o].height;do{o++;const d=e({rowIndex:o,rowData:t[o]});r.current.push({height:d,top:c}),c+=d}while(c<=a&&o<r.current.length-1)}return o};return{resetAfter:a=>{r.current=r.current.slice(0,a),i(l=>l+1)},getRowSize:a=>{if(typeof e=="number")return{height:e,top:e*a};if(a>=t.length)return{height:0,top:0};if(a<r.current.length)return r.current[a];let l=r.current[r.current.length-1].top+r.current[r.current.length-1].height;for(let o=r.current.length;o<=a;o++){const c=e({rowIndex:o,rowData:t[o]});r.current.push({height:c,top:l}),l+=c}return r.current[a]},getRowIndex:s,totalSize:a=>{if(typeof e=="number")return t.length*e;const l=s(a);return r.current[l].top+r.current[l].height}}},[e,t])};$l.useRowHeights=Cw;(function(t){var e=je&&je.__createBinding||(Object.create?function(b,I,j,N){N===void 0&&(N=j);var $=Object.getOwnPropertyDescriptor(I,j);(!$||("get"in $?!I.__esModule:$.writable||$.configurable))&&($={enumerable:!0,get:function(){return I[j]}}),Object.defineProperty(b,N,$)}:function(b,I,j,N){N===void 0&&(N=j),b[N]=I[j]}),r=je&&je.__setModuleDefault||(Object.create?function(b,I){Object.defineProperty(b,"default",{enumerable:!0,value:I})}:function(b,I){b.default=I}),i=je&&je.__importStar||function(b){if(b&&b.__esModule)return b;var I={};if(b!=null)for(var j in b)j!=="default"&&Object.prototype.hasOwnProperty.call(b,j)&&e(I,b,j);return r(I,b),I},s=je&&je.__awaiter||function(b,I,j,N){function $(ue){return ue instanceof j?ue:new j(function(oe){oe(ue)})}return new(j||(j=Promise))(function(ue,oe){function K(B){try{J(N.next(B))}catch(he){oe(he)}}function fe(B){try{J(N.throw(B))}catch(he){oe(he)}}function J(B){B.done?ue(B.value):$(B.value).then(K,fe)}J((N=N.apply(b,I||[])).next())})},a=je&&je.__importDefault||function(b){return b&&b.__esModule?b:{default:b}};Object.defineProperty(t,"__esModule",{value:!0}),t.DataSheetGrid=void 0;const l=i(k),o=Sf,c=WE,d=Nf,u=Ol,m=Zs,h=Js,p=Ll,y=hd,f=Fl,g=a(Pf),v=pd,S=or,R=zf,z=Yl,P=Hl,U=Hf,A=$l,w=[],Y=[],D=()=>({}),_=()=>null,M=({rowData:b})=>Object.assign({},b);t.DataSheetGrid=l.default.memo(l.default.forwardRef(({value:b=w,className:I,style:j,height:N=400,onChange:$=_,columns:ue=Y,rowHeight:oe=40,headerRowHeight:K=typeof oe=="number"?oe:40,gutterColumn:fe,stickyRightColumn:J,rowKey:B,addRowsComponent:he=y.AddRows,createRow:de=D,autoAddRow:_e=!1,lockRows:De=!1,disableExpandSelection:Ce=!1,disableSmartDelete:Ue=!1,duplicateRow:se=M,contextMenuComponent:q=v.ContextMenu,disableContextMenu:ae=!1,onFocus:ge=_,onBlur:Me=_,onActiveCellChange:ze=_,onSelectionChange:ut=_,rowClassName:lt,cellClassName:Zt,onScroll:gt},mn)=>{var On,Gn,jn,Ln,Jt,Wn;const Kt=(0,l.useRef)(null),ee=ae||De,O=(0,d.useColumns)(ue,fe,J),X=!!J,Oe=(0,l.useRef)(null),Qe=(0,l.useRef)(null),Et=(0,l.useRef)(null),Pt=(0,l.useRef)(null),[te,Ae]=(0,f.useDebounceState)(1,100),{getRowSize:qe,totalSize:Lt,getRowIndex:kt}=(0,A.useRowHeights)({value:b,rowHeight:oe}),Je=Math.min(N,K+Lt(N)+te),{width:wt,height:$e}=(0,c.useResizeDetector)({targetRef:Qe,refreshMode:"throttle",refreshRate:100});Ae($e?Je-$e:0);const Gr=(0,u.useEdges)(Qe,wt,$e),{fullWidth:Wr,totalWidth:hr,columnWidths:an,columnRights:yt}=(0,o.useColumnWidths)(O,wt),[zt,At]=(0,l.useState)(null),[St,is]=(0,l.useState)([]),[et,Gt]=(0,l.useState)(!1),[Si,pu]=(0,l.useState)(0),[Ei,fu]=(0,l.useState)(null),[ne,it]=(0,m.useDeepEqualState)(null),[en,tt]=(0,m.useDeepEqualState)(null),le=(0,l.useMemo)(()=>ne&&en&&{min:{col:Math.min(ne.col,en.col),row:Math.min(ne.row,en.row)},max:{col:Math.max(ne.col,en.col),row:Math.max(ne.row,en.row)}},[ne,en]),[pr,wi]=(0,m.useDeepEqualState)({columns:!1,rows:!1,active:!1}),Bx=Ce||et||pr.active||(ne==null?void 0:ne.row)===(b==null?void 0:b.length)-1||(le==null?void 0:le.max.row)===(b==null?void 0:b.length)-1||ne&&O.slice(((On=le==null?void 0:le.min.col)!==null&&On!==void 0?On:ne.col)+1,((Gn=le==null?void 0:le.max.col)!==null&&Gn!==void 0?Gn:ne.col)+2).every(V=>V.disabled===!0)?null:Si,gu=(0,p.useGetBoundingClientRect)(Oe),yu=(0,p.useGetBoundingClientRect)(Qe);(0,l.useEffect)(()=>{var V;ne!==null&&(document.activeElement.blur(),(V=window.getSelection())===null||V===void 0||V.removeAllRanges())},[ne!==null]);const Vr=(0,l.useCallback)((V,ke=!1,Se=!1)=>{const xe=gu(ke),Fe=Se&&yu(ke);if(xe&&yt&&an){let nt=V.clientX-xe.left,we=V.clientY-xe.top;return Fe&&(V.clientY-Fe.top<=K&&(we=0),V.clientX-Fe.left<=an[0]&&(nt=0),X&&Fe.right-V.clientX<=an[an.length-1]&&(nt=yt[yt.length-2]+1)),{col:yt.findIndex(Ke=>nt<Ke)-1,row:kt(we-K)}}return null},[yt,an,b.length,gu,yu,K,X,kt]),kn=(0,l.useRef)(b);kn.current=b;const Sn=(0,l.useCallback)(V=>{const ke=O[V.col+1].disabled;return!!(typeof ke=="function"?ke({rowData:kn.current[V.row],rowIndex:V.row}):ke)},[O]),fr=(0,l.useCallback)((V,ke=1)=>{De||(tt(null),Gt(!1),$([...kn.current.slice(0,V+1),...new Array(ke).fill(0).map(de),...kn.current.slice(V+1)],[{type:"CREATE",fromRowIndex:V+1,toRowIndex:V+1+ke}
106]),it(Se=>({col:(Se==null?void 0:Se.col)||0,row:V+ke,doNotScrollX:!0})))},[de,De,$,it,tt]),Ci=(0,l.useCallback)((V,ke=V)=>{De||($([...kn.current.slice(0,ke+1),...kn.current.slice(V,ke+1).map((Se,xe)=>se({rowData:Se,rowIndex:xe+V})),...kn.current.slice(ke+1)],[{type:"CREATE",fromRowIndex:ke+1,toRowIndex:ke+2+ke-V}]),it({col:0,row:ke+1,doNotScrollX:!0}),tt({col:O.length-(X?3:2),row:2*ke-V+1,doNotScrollX:!0}),Gt(!1))},[O.length,se,De,$,it,tt,X]),gr=(0,l.useCallback)(V=>{if(!(!$e||!wt)){if(!V.doNotScrollY){const ke=qe(V.row).top,Se=qe(V.row).top+qe(V.row).height+K-$e+1,xe=Qe.current.scrollTop;xe>ke?Qe.current.scrollTop=ke:xe<Se&&(Qe.current.scrollTop=Se)}if(yt&&an&&Qe.current&&!V.doNotScrollX){const ke=yt[V.col]-yt[0],Se=yt[V.col]+an[V.col+1]+(X?an[an.length-1]:0)-wt+1,xe=Qe.current.scrollLeft;xe>ke?Qe.current.scrollLeft=ke:xe<Se&&(Qe.current.scrollLeft=Se)}}},[$e,wt,K,yt,an,qe,X]);(0,l.useEffect)(()=>{en&&gr(en)},[en,gr]),(0,l.useEffect)(()=>{ne&&gr(ne)},[ne,gr]);const Yx=(0,l.useCallback)((V,ke)=>{var Se,xe;$([...(Se=kn.current)===null||Se===void 0?void 0:Se.slice(0,V),ke,...(xe=kn.current)===null||xe===void 0?void 0:xe.slice(V+1)],[{type:"UPDATE",fromRowIndex:V,toRowIndex:V+1}])},[$]),Di=(0,l.useCallback)((V,ke=V)=>{De||(Gt(!1),it(Se=>{const xe=Math.min(kn.current.length-2-ke+V,V);return xe<0?null:Se&&{col:Se.col,row:xe}}),tt(null),$([...kn.current.slice(0,V),...kn.current.slice(ke+1)],[{type:"DELETE",fromRowIndex:V,toRowIndex:ke+1}]))},[De,$,it,tt]),la=(0,l.useCallback)((V=!0)=>{const ke=V&&!Ue;if(!ne)return;const Se=(le==null?void 0:le.min)||ne,xe=(le==null?void 0:le.max)||ne;if(b.slice(Se.row,xe.row+1).every((nt,we)=>O.every(Ke=>Ke.isCellEmpty({rowData:nt,rowIndex:we+Se.row})))){ke&&Di(Se.row,xe.row);return}const Fe=[...b];for(let nt=Se.row;nt<=xe.row;++nt)for(let we=Se.col;we<=xe.col;++we)if(!Sn({col:we,row:nt})){const{deleteValue:Ke=({rowData:st})=>st}=O[we+1];Fe[nt]=Ke({rowData:Fe[nt],rowIndex:nt})}if(ke&&(0,g.default)(Fe,b)){it({col:0,row:Se.row,doNotScrollX:!0}),tt({col:O.length-(X?3:2),row:xe.row,doNotScrollX:!0});return}$(Fe,[{type:"UPDATE",fromRowIndex:Se.row,toRowIndex:xe.row+1}])},[ne,O,b,Di,Sn,$,le==null?void 0:le.max,le==null?void 0:le.min,it,tt,X]),vo=(0,l.useCallback)(({nextRow:V=!0}={})=>{(ne==null?void 0:ne.row)===kn.current.length-1?V&&_e?fr(ne.row):Gt(!1):(Gt(!1),V&&it(ke=>ke&&{col:ke.col,row:ke.row+1}))},[ne==null?void 0:ne.row,_e,fr,it]),ss=(0,l.useCallback)(V=>s(void 0,void 0,void 0,function*(){var ke,Se;if(!et&&ne){const xe=[],Fe=(le==null?void 0:le.min)||ne,nt=(le==null?void 0:le.max)||ne;for(let Be=Fe.row;Be<=nt.row;++Be){xe.push([]);for(let xt=Fe.col;xt<=nt.col;++xt){const{copyValue:vt=()=>null}=O[xt+1];xe[Be-Fe.row].push(vt({rowData:b[Be],rowIndex:Be}))}}const we=xe.map(Be=>Be.join(" ")).join(` 107`),Ke=`<table>${xe.map(Be=>`<tr>${Be.map(xt=>`<td>${(0,S.encodeHtml)(String(xt??"")).replace(/\n/g,"<br/>")}</td>`).join("")}</tr>`).join("")}</table>`;if(V!==void 0){(ke=V.clipboardData)===null||ke===void 0||ke.setData("text/plain",we),(Se=V.clipboardData)===null||Se===void 0||Se.setData("text/html",Ke),V.preventDefault();return}let st=!1;if(navigator.clipboard.write!==void 0){const Be=new Blob([we],{type:"text/plain"}),xt=new Blob([Ke],{type:"text/html"}),vt=[new ClipboardItem({"text/plain":Be,"text/html":xt})];yield navigator.clipboard.write(vt).then(()=>{st=!0})}else navigator.clipboard.writeText!==void 0?yield navigator.clipboard.writeText(we).then(()=>{st=!0}):document.execCommand!==void 0&&document.execCommand("copy")&&(st=!0);st||alert("This action is unavailable in your browser, but you can still use Ctrl+C for copy or Ctrl+X for cut")}}),[ne,O,b,et,le]);(0,h.useDocumentEventListener)("copy",ss);const bo=(0,l.useCallback)(V=>{!et&&ne&&(ss(V),la(!1))},[ne,la,et,ss]);(0,h.useDocumentEventListener)("cut",bo);const as=(0,l.useCallback)(V=>s(void 0,void 0,void 0,function*(){var ke,Se;if(!et&&ne){const xe=(le==null?void 0:le.min)||ne,Fe=(le==null?void 0:le.max)||ne,nt=yield Promise.all(V[0].map((we,Ke)=>{var st,Be;const xt=(st=O[xe.col+Ke+1])===null||st===void 0?void 0:st.prePasteValues,vt=V.map(En=>En[Ke]);return(Be=xt==null?void 0:xt(vt))!==null&&Be!==void 0?Be:vt}));if(V=V.map((we,Ke)=>nt.map(st=>st[Ke])),V.length===1){const we=[...b];for(let Ke=0;Ke<V[0].length;Ke++){const st=(ke=O[xe.col+Ke+1])===null||ke===void 0?void 0:ke.pasteValue;if(st)for(let Be=xe.row;Be<=Fe.row;Be++)Sn({col:Ke+xe.col,row:Be})||(we[Be]=yield st({rowData:we[Be],value:V[0][Ke],rowIndex:Be}))}$(we,[{type:"UPDATE",fromRowIndex:xe.row,toRowIndex:Fe.row+1}]),it({col:xe.col,row:xe.row}),tt({col:Math.min(xe.col+V[0].length-1,O.length-(X?3:2)),row:Fe.row})}else{let we=[...b];const Ke=xe.row+V.length-b.length;Ke>0&&(De?V.splice(V.length-Ke,Ke):we=[...we,...new Array(Ke).fill(0).map(()=>de())]);for(let Be=0;Be<V[0].length&&xe.col+Be<O.length-(X?2:1);Be++){const xt=(Se=O[xe.col+Be+1])===null||Se===void 0?void 0:Se.pasteValue;if(xt)for(let vt=0;vt<V.length;
107vt++)Sn({col:xe.col+Be,row:xe.row+vt})||(we[xe.row+vt]=yield xt({rowData:we[xe.row+vt],value:V[vt][Be],rowIndex:xe.row+vt}))}const st=[{type:"UPDATE",fromRowIndex:xe.row,toRowIndex:xe.row+V.length-(!De&&Ke>0?Ke:0)}];Ke>0&&!De&&st.push({type:"CREATE",fromRowIndex:xe.row+V.length-Ke,toRowIndex:xe.row+V.length}),$(we,st),it({col:xe.col,row:xe.row}),tt({col:Math.min(xe.col+V[0].length-1,O.length-(X?3:2)),row:xe.row+V.length-1})}}}),[ne,O,de,b,et,X,Sn,De,$,le==null?void 0:le.max,le==null?void 0:le.min,it,tt]),Hx=(0,l.useCallback)(V=>{var ke,Se,xe,Fe,nt,we;if(ne&&!et){let Ke=[[""]];!((ke=V.clipboardData)===null||ke===void 0)&&ke.types.includes("text/html")?Ke=(0,S.parseTextHtmlData)((Se=V.clipboardData)===null||Se===void 0?void 0:Se.getData("text/html")):!((xe=V.clipboardData)===null||xe===void 0)&&xe.types.includes("text/plain")?Ke=(0,S.parseTextPlainData)((Fe=V.clipboardData)===null||Fe===void 0?void 0:Fe.getData("text/plain")):!((nt=V.clipboardData)===null||nt===void 0)&&nt.types.includes("text")&&(Ke=(0,S.parseTextPlainData)((we=V.clipboardData)===null||we===void 0?void 0:we.getData("text"))),as(Ke),V.preventDefault()}},[ne,as,et]);(0,h.useDocumentEventListener)("paste",Hx);const Ux=(0,l.useCallback)(V=>{var ke,Se,xe;if(zt&&St.length)return;const Fe=V.button===2||V.button===0&&V.ctrlKey,nt=((ke=Oe.current)===null||ke===void 0?void 0:ke.contains(V.target))||!1,we=nt?Vr(V,!0,!0):null;if(!nt&&et&&ne&&O[ne.col+1].keepFocus)return;if(V.target instanceof HTMLElement&&V.target.className.includes("dsg-expand-rows-indicator")){fu(Math.max((Se=ne==null?void 0:ne.row)!==null&&Se!==void 0?Se:0,(xe=le==null?void 0:le.max.row)!==null&&xe!==void 0?xe:0));return}const Ke=we&&ne&&ne.col===we.col&&ne.row===we.row&&!Sn(ne);if(Ke&&et)return;const st=(we==null?void 0:we.col)===O.length-2&&X,Be=Fe&&le&&we&&we.row>=le.min.row&&we.row<=le.max.row&&we.col>=le.min.col&&we.col<=le.max.col,xt=Fe&&le&&we&&we.row===-1&&we.col>=le.min.col&&we.col<=le.max.col,vt=Fe&&le&&we&&we.row>=le.min.row&&we.row<=le.max.row&&we.col===-1,En=st&&le&&we&&we.row>=le.min.row&&we.row<=le.max.row;if(Fe&&!ee&&At({x:V.clientX,y:V.clientY,cursorIndex:we}),(!(V.shiftKey&&ne)||Fe)&&b.length>0&&it(we&&{col:(Be||xt)&&ne?ne.col:Math.max(0,st?0:we.col),row:(Be||vt||En)&&ne?ne.row:Math.max(0,we.row),doNotScrollX:!!(Be&&ne||st||we.col===-1),doNotScrollY:!!(Be&&ne||we.row===-1)}),Ke&&!Fe&&(Kt.current=ne),Gt(!!(Ke&&!Fe)),wi(we&&!Fe?{columns:we.col!==-1&&!st||!!(V.shiftKey&&ne),rows:we.row!==-1||!!(V.shiftKey&&ne),active:!0}:{columns:!1,rows:!1,active:!1}),V.shiftKey&&ne&&!Fe)tt(we&&{col:Math.max(0,we.col-(st?1:0)),row:Math.max(0,we.row)});else if(!Be){if(we&&((we==null?void 0:we.col)===-1||(we==null?void 0:we.row)===-1||st)){let hn=we.col,wn=we.row,pn=!1,Fn=!1;(we.col===-1||st)&&(hn=O.length-(X?3:2),pn=!0),we.row===-1&&(wn=b.length-1,Fn=!0),xt&&en&&(hn=en.col,Fn=!0),(vt||En)&&en&&(wn=en.row,pn=!0),tt({col:hn,row:wn,doNotScrollX:pn,doNotScrollY:Fn})}else tt(null);nt&&V.preventDefault()}},[zt,St.length,Vr,et,ne,O,Sn,le,X,ee,wi,it,tt,en,b.length]);(0,h.useDocumentEventListener)("mousedown",Ux);const qx=(0,l.useCallback)(()=>{var V,ke,Se,xe,Fe,nt,we,Ke,st;if(Ei!==null){if(Si>0&&ne){let Be=[];const xt=(le==null?void 0:le.min)||ne,vt=(le==null?void 0:le.max)||ne;for(let En=xt.row;En<=vt.row;++En){Be.push([]);for(let hn=xt.col;hn<=vt.col;++hn){const{copyValue:wn=()=>null}=O[hn+1];Be[En-xt.row].push(String((V=wn({rowData:b[En],rowIndex:En}))!==null&&V!==void 0?V:""))}}Promise.all(Be[0].map((En,hn)=>{var wn,pn;const Fn=(wn=O[xt.col+hn+1])===null||wn===void 0?void 0:wn.prePasteValues,Bn=Be.map(Vx=>Vx[hn]);return(pn=Fn==null?void 0:Fn(Bn))!==null&&pn!==void 0?pn:Bn})).then(En=>{var hn;Be=Be.map((pn,Fn)=>En.map(Bn=>Bn[Fn]));const wn=[...b];for(let pn=0;pn<Be[0].length;pn++){const Fn=(hn=O[xt.col+pn+1])===null||hn===void 0?void 0:hn.pasteValue;if(Fn)for(let Bn=vt.row+1;Bn<=vt.row+Si;Bn++)Sn({col:pn+xt.col,row:Bn})||(wn[Bn]=Fn({rowData:wn[Bn],value:Be[(Bn-vt.row-1)%Be.length][pn],rowIndex:Bn}))}$(wn,[{type:"UPDATE",fromRowIndex:vt.row+1,toRowIndex:vt.row+1+Si}])}),pu(0),it({col:Math.min((ke=ne==null?void 0:ne.col)!==null&&ke!==void 0?ke:1/0,(Se=le==null?void 0:le.min.col)!==null&&Se!==void 0?Se:1/0),row:Math.min((xe=ne==null?void 0:ne.row)!==null&&xe!==void 0?xe:1/0,(Fe=le==null?void 0:le.min.row)!==null&&Fe!==void 0?Fe:1/0),doNotScrollX:!0,doNotScrollY:!0}),tt({col:Math.max((nt=ne==null?void 0:ne.col)!==null&&nt!==void 0?nt:0,(we=le==null?void 0:le.max.col)!==null&&we!==void 0?we:0),row:Math.max((Ke=ne==null?void 0:ne.row)!==null&&Ke!==void 0?Ke:0,(st=le==null?void 0:le.max.row)!==null&&st!==void 0?st:0)+Si})}fu(null)}wi({columns:!1,rows:!1,active:!1})},[Ei,wi,Si,ne,le==null?void 0:le.min,le==null?void 0:le.max,b,$,it,tt,O,Sn]);(0,h.useDocumentEventListener)("mouseup",qx);const $x=(0,l.useCallback)(V=>{if(Ei!==null){const ke=Vr(V);ke&&(pu(Math.max(0,ke.row-Ei)),gr({col:ke.col,row:Math.max(ke.row,Ei)}))}if(pr.active){const ke=Vr(V),Se=O.length-(X?3:2);tt(ke&&{col:pr.columns?Math.max(0,Math.min(Se,ke.col)):Se,row:pr.rows?Math.max(0,ke.row):b.length-1,doNotScrollX:!pr.columns,doNotScrollY:!pr.rows}),Gt(!1)}},[gr,pr.active,pr.columns,pr.rows,Vr,O.length,X,tt,b.length,Ei]);(0,h.useDocumentEventListener)("mousemove",$x);const Kx=(0,l.useCallback)(V=>{var ke;if(ne&&!V.isComposing){if(V.key==="Tab"&&!V.shiftKey&&ne.col===O.length-(X?3:2)&&!O[ne.col+1].disableKeys)if(ne.row===b.length-1){if(Pt.current){V.preventDefault(),it(null),tt(null),Gt(!1);const Se=(0,z.getAllTabbableElements)(),xe=Se.indexOf(Pt.current);Se[(xe+1)%Se.length].focus();return}}else{it(Se=>{var xe;return{col:0,row:((xe=Se==null?void 0:Se.row)!==null&&xe!==void 0?xe:0)+1}}),tt(null),Gt(!1),V.preventDefault();return}
107if(V.key==="Tab"&&V.shiftKey&&ne.col===0&&!O[ne.col+1].disableKeys)if(ne.row===0){if(Et.current){V.preventDefault(),it(null),tt(null),Gt(!1);const Se=(0,z.getAllTabbableElements)(),xe=Se.indexOf(Et.current);Se[(xe-1+Se.length)%Se.length].focus();return}}else{it(Se=>{var xe;return{col:O.length-(X?3:2),row:((xe=Se==null?void 0:Se.row)!==null&&xe!==void 0?xe:1)-1}}),tt(null),Gt(!1),V.preventDefault();return}if(!((ke=V.key)===null||ke===void 0)&&ke.startsWith("Arrow")||V.key==="Tab"){if(et&&O[ne.col+1].disableKeys||et&&["ArrowLeft","ArrowRight"].includes(V.key))return;const Se=([xe,Fe],nt)=>nt&&{col:Math.max(0,Math.min(O.length-(X?3:2),nt.col+xe)),row:Math.max(0,Math.min(b.length-1,nt.row+Fe))};if(V.key==="Tab"&&V.shiftKey)it(xe=>Se([-1,0],xe)),tt(null);else{const xe={ArrowDown:[0,1],ArrowUp:[0,-1],ArrowLeft:[-1,0],ArrowRight:[1,0],Tab:[1,0]}[V.key];(V.ctrlKey||V.metaKey)&&(xe[0]*=O.length,xe[1]*=b.length),V.shiftKey?tt(Fe=>Se(xe,Fe||ne)):(it(Fe=>Se(xe,Fe)),tt(null))}Gt(!1),V.preventDefault()}else V.key==="Escape"?(!et&&!en&&it(null),tt(null),Gt(!1)):(V.key==="Enter"||V.key==="F2")&&!V.ctrlKey&&!V.metaKey&&!V.altKey&&!V.shiftKey?(tt(null),et?O[ne.col+1].disableKeys||(vo(),V.preventDefault()):Sn(ne)||(Kt.current=ne,Gt(!0),gr(ne),V.preventDefault())):V.key==="Enter"&&!V.ctrlKey&&!V.metaKey&&!V.altKey&&V.shiftKey?fr((le==null?void 0:le.max.row)||ne.row):V.key==="d"&&(V.ctrlKey||V.metaKey)&&!V.altKey&&!V.shiftKey?(Ci((le==null?void 0:le.min.row)||ne.row,le==null?void 0:le.max.row),V.preventDefault()):((0,S.isPrintableUnicode)(V.key)||V.code.match(/Key[A-Z]$/))&&!V.ctrlKey&&!V.metaKey&&!V.altKey?!et&&!Sn(ne)&&(Kt.current=ne,tt(null),Gt(!0),gr(ne)):["Backspace","Delete"].includes(V.key)?et||(la(),V.preventDefault()):V.key==="a"&&(V.ctrlKey||V.metaKey)&&(et||(it({col:0,row:0,doNotScrollY:!0,doNotScrollX:!0}),tt({col:O.length-(X?3:2),row:b.length-1,doNotScrollY:!0,doNotScrollX:!0}),V.preventDefault()))}},[ne,O,b.length,la,Ci,et,fr,Sn,gr,le==null?void 0:le.max.row,le==null?void 0:le.min.row,en,it,tt,vo,X]);(0,h.useDocumentEventListener)("keydown",Kx);const Gx=(0,l.useCallback)(V=>{var ke;const Se=((ke=Oe.current)===null||ke===void 0?void 0:ke.contains(V.target))||!1,xe=Se?Vr(V,!0,!0):null,Fe=xe&&ne&&ne.col===xe.col&&ne.row===xe.row&&et;Se&&!Fe&&V.preventDefault()},[Vr,ne,et]);(0,h.useDocumentEventListener)("contextmenu",Gx),(0,l.useEffect)(()=>{const V=[];(ne==null?void 0:ne.row)!==void 0&&V.push({type:"COPY",action:()=>{ss(),At(null)}},{type:"CUT",action:()=>{bo(),At(null)}},{type:"PASTE",action:()=>s(void 0,void 0,void 0,function*(){if(navigator.clipboard.read!==void 0)(yield navigator.clipboard.read()).forEach(Se=>s(void 0,void 0,void 0,function*(){let xe=[[""]];if(Se.types.includes("text/html")){const Fe=yield Se.getType("text/html");xe=(0,S.parseTextHtmlData)(yield Fe.text())}else if(Se.types.includes("text/plain")){const Fe=yield Se.getType("text/plain");xe=(0,S.parseTextPlainData)(yield Fe.text())}else if(Se.types.includes("text")){const Fe=yield Se.getType("text");xe=(0,S.parseTextHtmlData)(yield Fe.text())}as(xe)}));else if(navigator.clipboard.readText!==void 0){const ke=yield navigator.clipboard.readText();as((0,S.parseTextPlainData)(ke))}else alert("This action is unavailable in your browser, but you can still use Ctrl+V for paste");At(null)})}),(le==null?void 0:le.max.row)!==void 0?V.push({type:"INSERT_ROW_BELLOW",action:()=>{At(null),fr(le.max.row)}}):(ne==null?void 0:ne.row)!==void 0&&V.push({type:"INSERT_ROW_BELLOW",action:()=>{At(null),fr(ne.row)}}),(le==null?void 0:le.min.row)!==void 0&&le.min.row!==le.max.row?V.push({type:"DUPLICATE_ROWS",fromRow:le.min.row+1,toRow:le.max.row+1,action:()=>{At(null),Ci(le.min.row,le.max.row)}}):(ne==null?void 0:ne.row)!==void 0&&V.push({type:"DUPLICATE_ROW",action:()=>{At(null),Ci(ne.row)}}),(le==null?void 0:le.min.row)!==void 0&&le.min.row!==le.max.row?V.push({type:"DELETE_ROWS",fromRow:le.min.row+1,toRow:le.max.row+1,action:()=>{At(null),Di(le.min.row,le.max.row)}}):(ne==null?void 0:ne.row)!==void 0&&V.push({type:"DELETE_ROW",action:()=>{At(null),Di(ne.row)}}),is(V),V.length||At(null)},[le,ne,Di,Ci,fr,bo,ss,as]);const xu=(0,l.useRef)(St);xu.current=St;const Wx=(0,l.useCallback)(()=>xu.current,[]);(0,l.useImperativeHandle)(mn,()=>({activeCell:(0,R.getCellWithId)(ne,O),selection:(0,R.getSelectionWithId)(le??(ne?{min:ne,max:ne}:null),O),setSelection:V=>{const ke=(0,R.getSelection)(V,O.length-(X?2:1),b.length,O);it((ke==null?void 0:ke.min)||null),Gt(!1),wi({columns:!1,active:!1,rows:!1}
107),tt((ke==null?void 0:ke.max)||null)},setActiveCell:V=>{const ke=(0,R.getCell)(V,O.length-(X?2:1),b.length,O);it(ke),Gt(!1),wi({columns:!1,active:!1,rows:!1}),tt(null)}}));const Ir=(0,l.useRef)({onFocus:ge,onBlur:Me,onActiveCellChange:ze,onSelectionChange:ut});return Ir.current.onFocus=ge,Ir.current.onBlur=Me,Ir.current.onActiveCellChange=ze,Ir.current.onSelectionChange=ut,(0,l.useEffect)(()=>{Kt.current&&(et?Ir.current.onFocus({cell:(0,R.getCellWithId)(Kt.current,O)}):Ir.current.onBlur({cell:(0,R.getCellWithId)(Kt.current,O)}))},[et,O]),(0,l.useEffect)(()=>{Ir.current.onActiveCellChange({cell:(0,R.getCellWithId)(ne,O)})},[ne==null?void 0:ne.col,ne==null?void 0:ne.row,O]),(0,l.useEffect)(()=>{Ir.current.onSelectionChange({selection:(0,R.getSelectionWithId)(le??(ne?{min:ne,max:ne}:null),O)})},[(jn=le==null?void 0:le.min.col)!==null&&jn!==void 0?jn:ne==null?void 0:ne.col,(Ln=le==null?void 0:le.min.row)!==null&&Ln!==void 0?Ln:ne==null?void 0:ne.row,(Jt=le==null?void 0:le.max.col)!==null&&Jt!==void 0?Jt:ne==null?void 0:ne.col,(Wn=le==null?void 0:le.max.row)!==null&&Wn!==void 0?Wn:ne==null?void 0:ne.row,ne==null?void 0:ne.col,ne==null?void 0:ne.row,O]),l.default.createElement("div",{className:I,style:j},l.default.createElement("div",{ref:Et,tabIndex:ue.length&&b.length?0:void 0,onFocus:V=>{V.target.blur(),it({col:0,row:0})}}),l.default.createElement(P.Grid,{columns:O,outerRef:Qe,columnWidths:an,hasStickyRightColumn:X,displayHeight:Je,data:b,fullWidth:Wr,headerRowHeight:K,activeCell:ne,innerRef:Oe,rowHeight:qe,rowKey:B,selection:le,rowClassName:lt,editing:et,getContextMenuItems:Wx,setRowData:Yx,deleteRows:Di,insertRowAfter:fr,duplicateRows:Ci,stopEditing:vo,cellClassName:Zt,onScroll:gt},l.default.createElement(U.SelectionRect,{columnRights:yt,columnWidths:an,activeCell:ne,selection:le,headerRowHeight:K,rowHeight:qe,hasStickyRightColumn:X,dataLength:b.length,viewHeight:$e,viewWidth:wt,contentWidth:Wr?void 0:hr,edges:Gr,editing:et,isCellDisabled:Sn,expandSelection:Bx})),l.default.createElement("div",{ref:Pt,tabIndex:ue.length&&b.length?0:void 0,onFocus:V=>{V.target.blur(),it({col:O.length-(X?3:2),row:b.length-1})}}),!De&&he&&l.default.createElement(he,{addRows:V=>fr(b.length-1,V)}),zt&&St.length>0&&l.default.createElement(q,{clientX:zt.x,clientY:zt.y,cursorIndex:zt.cursorIndex,items:St,close:()=>At(null)}))})),t.DataSheetGrid.displayName="DataSheetGrid"})(ud);var Kl={},Dw=je&&je.__rest||function(t,e){var r={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,i=Object.getOwnPropertySymbols(t);s<i.length;s++)e.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(t,i[s])&&(r[i[s]]=t[i[s]]);return r},Rw=je&&je.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Kl,"__esModule",{value:!0});Kl.StaticDataSheetGrid=void 0;const Iw=k,Tw=ud,wm=Rw(k);Kl.StaticDataSheetGrid=wm.default.forwardRef((t,e)=>{var{columns:r,gutterColumn:i,stickyRightColumn:s,addRowsComponent:a,createRow:l,duplicateRow:o,style:c,rowKey:d,onFocus:u,onBlur:m,onActiveCellChange:h,onSelectionChange:p,rowClassName:y,rowHeight:f}=t,g=Dw(t,["columns","gutterColumn","stickyRightColumn","addRowsComponent","createRow","duplicateRow","style","rowKey","onFocus","onBlur","onActiveCellChange","onSelectionChange","rowClassName","rowHeight"]);const[v]=(0,Iw.useState)({columns:r,gutterColumn:i,stickyRightColumn:s,addRowsComponent:a,createRow:l,duplicateRow:o,style:c,rowKey:d,onFocus:u,onBlur:m,onActiveCellChange:h,onSelectionChange:p,rowClassName:y,rowHeight:f});return wm.default.createElement(Tw.DataSheetGrid,Object.assign({},v,g,{rowHeight:typeof f=="number"?f:v.rowHeight,ref:e}))});var jr={},Gl={};Object.defineProperty(Gl,"__esModule",{value:!0});Gl.useFirstRender=void 0;const Aw=k,Mw=()=>{const t=(0,Aw.useRef)(!0),e=t.current;return t.current=!1,e};Gl.useFirstRender=Mw;var Nw=je&&je.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,s)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Pw=je&&je.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),zw=je&&je.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Nw(e,t,r);return Pw(e,t),e},Ow=je&&je.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};
107Object.defineProperty(jr,"__esModule",{value:!0});jr.createTextColumn=jr.textColumn=void 0;const Ri=zw(k),Lw=Ow(Wi),Fw=Gl,Uf=Ri.default.memo(({active:t,focus:e,rowData:r,setRowData:i,columnData:{placeholder:s,alignRight:a,formatInputOnFocus:l,formatBlurredInput:o,parseUserInput:c,continuousUpdates:d}})=>{const u=(0,Ri.useRef)(null),m=(0,Fw.useFirstRender)(),h=(0,Ri.useRef)({rowData:r,formatInputOnFocus:l,formatBlurredInput:o,setRowData:i,parseUserInput:c,continuousUpdates:d,firstRender:m,focusedAt:0,changedAt:0,escPressed:!1});return h.current={rowData:r,formatInputOnFocus:l,formatBlurredInput:o,setRowData:i,parseUserInput:c,continuousUpdates:d,firstRender:m,focusedAt:h.current.focusedAt,changedAt:h.current.changedAt,escPressed:h.current.escPressed},(0,Ri.useLayoutEffect)(()=>{e?(u.current&&(u.current.value=h.current.formatInputOnFocus(h.current.rowData),u.current.focus(),u.current.select()),h.current.escPressed=!1,h.current.focusedAt=Date.now()):u.current&&(!h.current.escPressed&&!h.current.continuousUpdates&&!h.current.firstRender&&h.current.changedAt>=h.current.focusedAt&&h.current.setRowData(h.current.parseUserInput(u.current.value)),u.current.blur())},[e]),(0,Ri.useEffect)(()=>{!e&&u.current&&(u.current.value=h.current.formatBlurredInput(r))},[e,r]),Ri.default.createElement("input",{defaultValue:o(r),className:(0,Lw.default)("dsg-input",a&&"dsg-input-align-right"),placeholder:t?s:void 0,tabIndex:-1,ref:u,style:{pointerEvents:e?"auto":"none"},onChange:p=>{h.current.changedAt=Date.now(),d&&i(c(p.target.value))},onKeyDown:p=>{p.key==="Escape"&&(h.current.escPressed=!0)}})});Uf.displayName="TextComponent";jr.textColumn=qf();function qf({placeholder:t,alignRight:e=!1,continuousUpdates:r=!0,deletedValue:i=null,parseUserInput:s=d=>d.trim()||null,formatBlurredInput:a=d=>String(d??""),formatInputOnFocus:l=d=>String(d??""),formatForCopy:o=d=>String(d??""),parsePastedValue:c=d=>d.replace(/[\n\r]+/g," ").trim()||null}={}){return{component:Uf,columnData:{placeholder:t,alignRight:e,continuousUpdates:r,formatInputOnFocus:l,formatBlurredInput:a,parseUserInput:s},deleteValue:()=>i,copyValue:({rowData:d})=>o(d),pasteValue:({value:d})=>c(d),isCellEmpty:({rowData:d})=>d==null}}jr.createTextColumn=qf;var Wl={},Bw=je&&je.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,s)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Yw=je&&je.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Hw=je&&je.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Bw(e,t,r);return Yw(e,t),e};Object.defineProperty(Wl,"__esModule",{value:!0});Wl.checkboxColumn=void 0;const va=Hw(k),Uw=["","false","no","off","disabled","0","n","f","unchecked","undefined","null","wrong","negative"],$f=va.default.memo(({focus:t,rowData:e,setRowData:r,active:i,stopEditing:s,disabled:a})=>{const l=(0,va.useRef)(null);return(0,va.useLayoutEffect)(()=>{t&&(r(!e),s({nextRow:!1}))},[t,s]),va.default.createElement("input",{className:"dsg-checkbox",tabIndex:-1,type:"checkbox",ref:l,disabled:a,checked:!!e,onMouseDown:()=>!i&&r(!e),onChange:()=>null})});$f.displayName="CheckboxComponent";Wl.checkboxColumn={component:$f,deleteValue:()=>!1,copyValue:({rowData:t})=>t?"YES":"NO",pasteValue:({value:t})=>!Uw.includes(t.toLowerCase()),isCellEmpty:({rowData:t})=>!t};var Vl={};Object.defineProperty(Vl,"__esModule",{value:!0});Vl.floatColumn=void 0;const qw=jr;Vl.floatColumn=(0,qw.createTextColumn)({alignRight:!0,formatBlurredInput:t=>typeof t=="number"?new Intl.NumberFormat().format(t):"",parseUserInput:t=>{const e=parseFloat(t);return isNaN(e)?null:e},parsePastedValue:t=>{const e=parseFloat(t);return isNaN(e)?null:e}});var Ql={};Object.defineProperty(Ql,"__esModule",{value:!0});Ql.intColumn=void 0;const $w=jr;Ql.intColumn=(0,$w.createTextColumn)({alignRight:!0,formatBlurredInput:t=>typeof t=="number"?new Intl.NumberFormat().format(t):"",parseUserInput:t=>{const e=parseFloat(t);return isNaN(e)?null:Math.round(e)},parsePastedValue:t=>{const e=parseFloat(t);return isNaN(e)?null:Math.round(e)}});var Xl={};
107Object.defineProperty(Xl,"__esModule",{value:!0});Xl.percentColumn=void 0;const Kw=jr,Gw=1e12,Ww=1e10;Xl.percentColumn=(0,Kw.createTextColumn)({alignRight:!0,formatBlurredInput:t=>typeof t=="number"?new Intl.NumberFormat(void 0,{style:"percent"}).format(t):"",formatInputOnFocus:t=>typeof t=="number"&&!isNaN(t)?String(Math.round(t*Gw)/Ww):"",parseUserInput:t=>{const e=parseFloat(t);return isNaN(e)?null:e/100},parsePastedValue:t=>{const e=parseFloat(t);return isNaN(e)?null:e}});var Zl={},Vw=je&&je.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,s)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),Qw=je&&je.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Xw=je&&je.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Vw(e,t,r);return Qw(e,t),e},Zw=je&&je.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Zl,"__esModule",{value:!0});Zl.dateColumn=void 0;const ba=Xw(k),Jw=Zw(Wi),Kf=ba.default.memo(({focus:t,active:e,rowData:r,setRowData:i})=>{var s;const a=(0,ba.useRef)(null);return(0,ba.useLayoutEffect)(()=>{var l,o;t?(l=a.current)===null||l===void 0||l.select():(o=a.current)===null||o===void 0||o.blur()},[t]),ba.default.createElement("input",{className:(0,Jw.default)("dsg-input",!e&&"dsg-hide-date-picker"),type:"date",tabIndex:-1,max:"9999-12-31",ref:a,style:{pointerEvents:t?"auto":"none",opacity:r||e?void 0:0},value:(s=r==null?void 0:r.toISOString().substr(0,10))!==null&&s!==void 0?s:"",onChange:l=>{const o=new Date(l.target.value);i(isNaN(o.getTime())?null:o)}})});Kf.displayName="DateComponent";Zl.dateColumn={component:Kf,deleteValue:()=>null,copyValue:({rowData:t})=>t?t.toISOString().substr(0,10):null,pasteValue:({value:t})=>{const e=new Date(t.replace(/\.\s?|\//g,"-"));return isNaN(e.getTime())?null:e},minWidth:170,isCellEmpty:({rowData:t})=>!t};var Jl={},eC=je&&je.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,s)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),tC=je&&je.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),nC=je&&je.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&eC(e,t,r);return tC(e,t),e},rC=je&&je.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Jl,"__esModule",{value:!0});Jl.isoDateColumn=void 0;const _a=nC(k),iC=rC(Wi),Gf=_a.default.memo(({focus:t,active:e,rowData:r,setRowData:i})=>{const s=(0,_a.useRef)(null);return(0,_a.useLayoutEffect)(()=>{var a,l;t?(a=s.current)===null||a===void 0||a.select():(l=s.current)===null||l===void 0||l.blur()},[t]),_a.default.createElement("input",{className:(0,iC.default)("dsg-input",!e&&"dsg-hide-date-picker"),type:"date",tabIndex:-1,max:"9999-12-31",ref:s,style:{pointerEvents:t?"auto":"none",opacity:r||e?void 0:0},value:r??"",onChange:a=>{const l=new Date(a.target.value);i(isNaN(l.getTime())?null:l.toISOString().substr(0,10))}})});Gf.displayName="IsoDateComponent";Jl.isoDateColumn={component:Gf,deleteValue:()=>null,copyValue:({rowData:t})=>t,pasteValue:({value:t})=>{const e=new Date(t.replace(/\.\s?|\//g,"-"));return isNaN(e.getTime())?null:e.toISOString().substr(0,10)},minWidth:170,isCellEmpty:({rowData:t})=>!t};var eo={},sC=je&&je.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r);var s=Object.getOwnPropertyDescriptor(e,r);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,s)}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),aC=je&&je.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),lC=je&&je.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&sC(e,t,r);return aC(e,t),e},oC=je&&je.__rest||function(t,e){var r={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,i=Object.getOwnPropertySymbols(t);s<i.length;s++)e.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(t,i[s])&&(r[i[s]]=t[i[s]]);return r};Object.defineProperty(eo,"__esModule",{value:!0});eo.keyColumn=void 0;const ms=lC(k),cC=t=>{var{columnData:{key:e,original:r},rowData:i,setRowData:s}
107=t,a=oC(t,["columnData","rowData","setRowData"]);const l=(0,ms.useRef)(i);l.current=i;const o=(0,ms.useCallback)(d=>{s(Object.assign(Object.assign({},l.current),{[e]:d}))},[e,s]);if(!r.component)return ms.default.createElement(ms.default.Fragment,null);const c=r.component;return ms.default.createElement(c,Object.assign({columnData:r.columnData,setRowData:o,rowData:i[e]},a))},dC=(t,e)=>Object.assign(Object.assign({id:t},e),{columnData:{key:t,original:e},component:cC,copyValue:({rowData:r,rowIndex:i})=>{var s,a;return(a=(s=e.copyValue)===null||s===void 0?void 0:s.call(e,{rowData:r[t],rowIndex:i}))!==null&&a!==void 0?a:null},deleteValue:({rowData:r,rowIndex:i})=>{var s,a;return Object.assign(Object.assign({},r),{[t]:(a=(s=e.deleteValue)===null||s===void 0?void 0:s.call(e,{rowData:r[t],rowIndex:i}))!==null&&a!==void 0?a:null})},pasteValue:({rowData:r,value:i,rowIndex:s})=>{var a,l;return Object.assign(Object.assign({},r),{[t]:(l=(a=e.pasteValue)===null||a===void 0?void 0:a.call(e,{rowData:r[t],value:i,rowIndex:s}))!==null&&l!==void 0?l:null})},disabled:typeof e.disabled=="function"?({rowData:r,rowIndex:i})=>{var s;return typeof e.disabled=="function"?e.disabled({rowData:r[t],rowIndex:i}):(s=e.disabled)!==null&&s!==void 0?s:!1}:e.disabled,cellClassName:typeof e.cellClassName=="function"?({rowData:r,rowIndex:i,columnId:s})=>{var a;return typeof e.cellClassName=="function"?e.cellClassName({rowData:r[t],rowIndex:i,columnId:s}):(a=e.cellClassName)!==null&&a!==void 0?a:void 0}:e.cellClassName,isCellEmpty:({rowData:r,rowIndex:i})=>{var s,a;return(a=(s=e.isCellEmpty)===null||s===void 0?void 0:s.call(e,{rowData:r[t],rowIndex:i}))!==null&&a!==void 0?a:!1}});eo.keyColumn=dC;(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.renderContextMenuItem=t.createContextMenuComponent=t.createAddRowsComponent=t.keyColumn=t.isoDateColumn=t.dateColumn=t.percentColumn=t.intColumn=t.floatColumn=t.checkboxColumn=t.createTextColumn=t.textColumn=t.DataSheetGrid=t.DynamicDataSheetGrid=void 0;const e=ud,r=Kl;t.DynamicDataSheetGrid=e.DataSheetGrid,t.DataSheetGrid=r.StaticDataSheetGrid;var i=jr;Object.defineProperty(t,"textColumn",{enumerable:!0,get:function(){return i.textColumn}}),Object.defineProperty(t,"createTextColumn",{enumerable:!0,get:function(){return i.createTextColumn}});var s=Wl;Object.defineProperty(t,"checkboxColumn",{enumerable:!0,get:function(){return s.checkboxColumn}});var a=Vl;Object.defineProperty(t,"floatColumn",{enumerable:!0,get:function(){return a.floatColumn}});var l=Ql;Object.defineProperty(t,"intColumn",{enumerable:!0,get:function(){return l.intColumn}});var o=Xl;Object.defineProperty(t,"percentColumn",{enumerable:!0,get:function(){return o.percentColumn}});var c=Zl;Object.defineProperty(t,"dateColumn",{enumerable:!0,get:function(){return c.dateColumn}});var d=Jl;Object.defineProperty(t,"isoDateColumn",{enumerable:!0,get:function(){return d.isoDateColumn}});var u=eo;Object.defineProperty(t,"keyColumn",{enumerable:!0,get:function(){return u.keyColumn}});var m=hd;Object.defineProperty(t,"createAddRowsComponent",{enumerable:!0,get:function(){return m.createAddRowsComponent}});var h=pd;Object.defineProperty(t,"createContextMenuComponent",{enumerable:!0,get:function(){return h.createContextMenuComponent}}),Object.defineProperty(t,"renderContextMenuItem",{enumerable:!0,get:function(){return h.defaultRenderItem}})})(It);const uC=new Intl.NumberFormat("tr-TR",{minimumFractionDigits:2,maximumFractionDigits:2}),mC=new Intl.NumberFormat("tr-TR",{maximumFractionDigits:0}),fd=t=>t==null||Number.isNaN(t)?"":uC.format(t),ml=t=>{const e=t.trim().replace(/[^\d.,-]/g,"");if(!e)return null;const r=e.includes(",")?e.replace(/\./g,"").replace(",","."):e,i=Number(r);return Number.isFinite(i)?i:null},hC=It.createTextColumn({alignRight:!0,parseUserInput:ml,parsePastedValue:ml,formatBlurredInput:fd,formatInputOnFocus:t=>t==null?"":String(t).replace(".",","),formatForCopy:t=>t==null?"":String(t).replace(".",","),deletedValue:null}),pC=It.createTextColumn({alignRight:!0,parseUserInput:t=>{const e=ml(t);return e===null?null:Math.round(e)},parsePastedValue:t=>{const e=ml(t);return e===null?null:Math.round(e)},formatBlurredInput:t=>t==null?"":mC.format(t),formatInputOnFocus:t=>t==null?"":String(t),formatForCopy:t=>t==null?"":String(t),deletedValue:null}
107),fC=qt.memo(({rowData:t,setRowData:e,focus:r,stopEditing:i,columnData:s})=>{const a=k.useRef(null);return k.useLayoutEffect(()=>{var l,o,c,d;if(r){(l=a.current)==null||l.focus();try{(c=(o=a.current)==null?void 0:o.showPicker)==null||c.call(o)}catch{}}else(d=a.current)==null||d.blur()},[r]),n.jsxs("select",{ref:a,className:"dsg-select-cell",style:{pointerEvents:r?"auto":"none"},value:t??"",onChange:l=>{e(l.target.value||null),setTimeout(()=>i({nextRow:!1}),0)},children:[n.jsx("option",{value:""}),s.options.map(l=>n.jsx("option",{value:l.value,children:l.label},l.value))]})});fC.displayName="SelectCell";const gC=It.createAddRowsComponent({button:"Ekle",unit:"satır"}),Cm=t=>qt.createElement(gC,t),yC=t=>{switch(t.type){case"INSERT_ROW_BELLOW":return"Alta satır ekle";case"DELETE_ROW":return"Satırı sil";case"DELETE_ROWS":return`${t.fromRow+1}â${t.toRow+1} arası satırları sil`;case"DUPLICATE_ROW":return"Satırı çoÄalt";case"DUPLICATE_ROWS":return`${t.fromRow+1}â${t.toRow+1} arası satırları çoÄalt`;case"COPY":return"Kopyala";case"CUT":return"Kes";case"PASTE":return"YapıÅtır";default:return""}},xC=It.createContextMenuComponent(t=>n.jsx(n.Fragment,{children:yC(t)})),Dm=t=>qt.createElement(xC,t),{TextArea:Xr}=G,Rm=()=>({scope:null,description:"",quantity:1,unit:"adet",unit_price:null,notes:""}),Im=()=>({bank:"",branch:"",account_no:"",iban:""}),Tm=t=>{var e;return!((e=t.description)!=null&&e.trim())&&!t.unit_price},Am=t=>{var e,r,i,s;return!((e=t.bank)!=null&&e.trim())&&!((r=t.branch)!=null&&r.trim())&&!((i=t.account_no)!=null&&i.trim())&&!((s=t.iban)!=null&&s.trim())},vC=({rowData:t})=>n.jsx("div",{className:"dsg-total-cell",children:fd((t.quantity||0)*(t.unit_price||0))}),bC=["intro_text","terms_and_conditions","confidentiality_terms","employer_obligations","closing_note"],Mm=()=>{const{id:t}=jt(),[e]=Yc(),r=Le(),[i]=x.useForm(),s=!!t&&t!=="new",a=e.get("request_id"),l=He(de=>de.user),o=["ADMIN","MANAGER","ENGINEER"].includes((l==null?void 0:l.role)||""),{data:c,isLoading:d}=Zp(s?t:""),{data:u,isLoading:m}=tr(),{data:h}=Qp(),{data:p}=bj(),y=_j(),f=jj(),[g,v]=k.useState([]),[S,R]=k.useState(!1),[z,P]=k.useState([Rm()]),[U,A]=k.useState([Im()]),w=k.useRef(!1),Y=Number(x.useWatch("discount_percent",i)||0),D=Number(x.useWatch("tax_rate",i)??20),_=x.useWatch("currency",i)||"TRY",M=_==="TRY"?"TL":_,b=k.useMemo(()=>z.reduce((de,_e)=>de+(_e.quantity||0)*(_e.unit_price||0),0),[z]),I=b*Y/100,j=(b-I)*D/100,N=b-I+j,$=k.useMemo(()=>[{...It.keyColumn("description",It.textColumn),title:"Malzemenin Adı",grow:2.4,minWidth:220},{...It.keyColumn("quantity",pC),title:"Miktar",basis:80,grow:0,shrink:0},{...It.keyColumn("unit",It.textColumn),title:"Birim",basis:90,grow:0,shrink:0},{...It.keyColumn("unit_price",hC),title:"Birim Fiyat",basis:130,grow:0,shrink:0},{title:"Tutar",basis:130,grow:0,shrink:0,disabled:!0,component:vC}],[]),ue=k.useMemo(()=>[{...It.keyColumn("bank",It.textColumn),title:"Banka",grow:1.2},{...It.keyColumn("branch",It.textColumn),title:"Åube",grow:1.2},{...It.keyColumn("account_no",It.textColumn),title:"Hesap No",grow:1},{...It.keyColumn("iban",It.textColumn),title:"IBAN",grow:1.8}],[]),oe=async de=>{if(!de){v([]);return}R(!0);try{v(await $n.getBranches(de))}finally{R(!1)}},K=de=>{const _e=u==null?void 0:u.find(De=>De.id===de);_e&&i.setFieldsValue({customer_title:_e.name,customer_phone:_e.phone||"",customer_contact:_e.authorized_person||"",customer_email:_e.email||""})},fe=de=>{var De;const _e=h==null?void 0:h.find(Ce=>Ce.id===de);if(_e&&(i.setFieldsValue({company:_e.company,branch:_e.branch||void 0}),oe(_e.company),K(_e.company),i.setFieldsValue({customer_contact:_e.contact_person||i.getFieldValue("customer_contact"),customer_phone:_e.contact_phone||i.getFieldValue("customer_phone"),customer_email:_e.contact_email||i.getFieldValue("customer_email")}),z.every(Tm))){const Ce=((De=_e.requested_scopes_detail)==null?void 0:De.map(Ue=>({scope:Ue.id,description:`${Ue.name} periyodik kontrol hizmeti`,quantity:1,unit:"hizmet",unit_price:null,notes:""})))||[];Ce.length>0&&P(Ce)}};k.useEffect(()=>{c&&oe(c.company).then(()=>{i.setFieldsValue({service_request:c.service_request||void 0,company:c.company,branch:c.branch||void 0,title:c.title,proposal_date:c.proposal_date?Z(c.proposal_date):null,valid_until:c.valid_until?Z(c.valid_until):null,discount_percent:Number(c.discount_percent||0),tax_rate:Number(c.tax_rate||20),currency:c.currency,customer_title:c.customer_title||"",customer_phone:c.customer_phone||"",customer_fax:c.customer_fax||"",customer_contact:c.customer_contact||"",customer_email:c.customer_email||"",payment_terms:c.payment_terms||"",notes:c.notes||"",price_table_title:c.price_table_title||"",intro_text:c.intro_text||"",terms_and_conditions:c.terms_and_conditions||"",confidentiality_terms:c.confidentiality_terms||"",employer_obligations:c.employer_obligations||"",closing_note:c.closing_note||""}),c.items&&c.items.length>0&&P(c.items.map(de=>({scope:de.scope||null,description:de.description,quantity:de.quantity,unit:de.unit,unit_price:Number(de.unit_price),notes:de.notes||""}))),c.bank_accounts&&c.bank_accounts.length>0&&A(c.bank_accounts.map(de=>({...de}))),!c.customer_title&&c.company&&K(c.company)})},[c,u]),k.useEffect(()=>{if(!p||w.current||s&&!c)return;w.current=!0;const de={};
107bC.forEach(_e=>{i.getFieldValue(_e)||(de[_e]=p[_e])}),i.setFieldsValue(de),U.every(Am)&&p.bank_accounts.length>0&&A(p.bank_accounts.map(_e=>({..._e})))},[p,c,s]),k.useEffect(()=>{a&&!s&&(i.setFieldValue("service_request",a),fe(a))},[a,h]);const J=de=>{i.setFieldValue("branch",void 0),oe(de),K(de)},B=de=>{const _e=z.filter(Ce=>!Tm(Ce)),De={service_request:de.service_request||null,company:de.company,branch:de.branch||null,title:de.title,valid_until:de.valid_until.format("YYYY-MM-DD"),proposal_date:de.proposal_date?de.proposal_date.format("YYYY-MM-DD"):null,customer_title:de.customer_title||"",customer_phone:de.customer_phone||"",customer_fax:de.customer_fax||"",customer_contact:de.customer_contact||"",customer_email:de.customer_email||"",discount_percent:de.discount_percent??0,tax_rate:de.tax_rate??20,currency:de.currency||"TRY",payment_terms:de.payment_terms||"",notes:de.notes||"",price_table_title:de.price_table_title||"",intro_text:de.intro_text||"",terms_and_conditions:de.terms_and_conditions||"",confidentiality_terms:de.confidentiality_terms||"",employer_obligations:de.employer_obligations||"",closing_note:de.closing_note||"",bank_accounts:U.filter(Ce=>!Am(Ce)).map(Ce=>({bank:Ce.bank||"",branch:Ce.branch||"",account_no:Ce.account_no||"",iban:Ce.iban||""})),items:_e.map((Ce,Ue)=>{var se,q;return{scope:Ce.scope||null,description:((se=Ce.description)==null?void 0:se.trim())||"-",quantity:Ce.quantity||1,unit:((q=Ce.unit)==null?void 0:q.trim())||"adet",unit_price:Ce.unit_price??0,sort_order:Ue,notes:Ce.notes||""}})};if(s){f.mutate({id:t,data:De},{onSuccess:()=>r(`/proposals/${t}`)});return}y.mutate(De,{onSuccess:Ce=>r(`/proposals/${Ce.id}`)})},he=(de,_e,De=!1)=>n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"6px 12px",fontWeight:De?700:400,fontSize:De?16:14},children:[n.jsx("span",{children:de}),n.jsxs("span",{style:{fontVariantNumeric:"tabular-nums"},children:[fd(_e)," ",M]})]});return n.jsx(H,{title:s?"Teklif Düzenle":"Yeni Teklif",loading:s&&d,children:n.jsxs(x,{form:i,layout:"vertical",initialValues:{title:"Periyodik Kontrol Hizmet Teklifi",proposal_date:Z(),valid_until:Z().add(15,"day"),discount_percent:0,tax_rate:20,currency:"TRY"},onFinish:B,children:[!o&&n.jsx(be,{type:"warning",showIcon:!0,message:"Teklif oluÅturmak veya düzenlemek için ENGINEER ve üzeri yetki gerekir.",style:{marginBottom:16}}),s&&c&&!["DRAFT","REVISION_REQUESTED"].includes(c.status)&&n.jsx(be,{type:"info",showIcon:!0,message:"Bu teklif doÄrudan düzenlenemez. Yeni revizyon oluÅturup ardından taslaÄı düzenleyin.",style:{marginBottom:16}}),n.jsx(x.Item,{name:"service_request",hidden:!0,children:n.jsx(G,{type:"hidden"})}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company",label:"Firma",rules:[{required:!0}],children:n.jsx(pe,{showSearch:!0,optionFilterProp:"label",loading:m,options:u==null?void 0:u.map(de=>({value:de.id,label:de.name})),onChange:J})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"branch",label:"Åube",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",loading:S,options:g.map(de=>({value:de.id,label:de.name}))})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,md:8,children:n.jsx(x.Item,{name:"title",label:"BaÅlık",rules:[{required:!0}],children:n.jsx(G,{})})}),n.jsx(C,{xs:12,md:4,children:n.jsx(x.Item,{name:"proposal_date",label:"Teklif Tarihi",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{xs:12,md:4,children:n.jsx(x.Item,{name:"valid_until",label:"Geçerlilik",rules:[{required:!0}],children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{xs:8,md:3,children:n.jsx(x.Item,{name:"discount_percent",label:"İskonto %",children:n.jsx(Ze,{style:{width:"100%"},min:0,max:100})})}),n.jsx(C,{xs:8,md:3,children:n.jsx(x.Item,{name:"tax_rate",label:"KDV %",children:n.jsx(Ze,{style:{width:"100%"},min:0,max:100})})}),n.jsx(C,{xs:8,md:2,children:n.jsx(x.Item,{name:"currency",label:"Döviz",children:n.jsx(pe,{options:[{value:"TRY",label:"TRY"},{value:"USD",label:"USD"},{value:"EUR",label:"EUR"}]})})})]}),n.jsx(H,{size:"small",title:"MüÅteri Bilgileri (PDF kapak sayfası)",style:{marginBottom:16},extra:n.jsx(Xn,{title:"Seçili firmanın kayıtlı bilgileriyle yeniden doldur",children:n.jsx(T,{size:"small",icon:n.jsx(Is,{}),onClick:()=>K(i.getFieldValue("company")),children:"Firmadan Doldur"})}),children:n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,md:8,children:n.jsx(x.Item,{name:"customer_title",label:"Unvanı",children:n.jsx(G,{placeholder:"BoÅ bırakılırsa firma adı kullanılır"})})}),n.jsx(C,{xs:12,md:4,children:n.jsx(x.Item,{name:"customer_phone",label:"Telefon",children:n.jsx(G,{})})}),n.jsx(C,{xs:12,md:4,children:n.jsx(x.Item,{name:"customer_fax",label:"Faks",children:n.jsx(G,{})})}),n.jsx(C,{xs:12,md:4,children:n.jsx(x.Item,{name:"customer_contact",label:"Yetkili KiÅi",children:n.jsx(G,{})})}),n.jsx(C,{xs:12,md:4,children:n.jsx(x.Item,{name:"customer_email",label:"E-Posta",children:n.jsx(G,{})})})]})}),n.jsxs(H,{size:"small",title:"Fiyat Tablosu",style:{marginBottom:16},extra:n.jsxs("span",{style:{color:"#8c8c8c",fontSize:12},children:[n.jsx(kp,{style:{marginRight:4}}),"Excel'den kopyalayıp doÄrudan yapıÅtırabilirsiniz; toplamlar otomatik hesaplanır."]}),children:[n.jsx(x.Item,{name:"price_table_title",label:"Tablo BaÅlıÄı",tooltip:"Fiyat tablosunun üst bandında görünür. BoÅ bırakılırsa firma ve müÅteri adından otomatik oluÅturulur.",children:n.jsx(G,{placeholder:"BoÅ bırakılırsa: FİRMA â MÃÅTERİ FİYAT TEKLİF KAPSAMI"})}),n.jsx(It.DynamicDataSheetGrid,{value:z,onChange:de=>
107P(de),columns:$,gutterColumn:{title:"Sıra No",basis:64,grow:0,shrink:0,minWidth:64},createRow:Rm,addRowsComponent:Cm,contextMenuComponent:Dm,height:420,rowHeight:36}),n.jsx(me,{justify:"end",style:{marginTop:12},children:n.jsx(C,{xs:24,md:10,lg:8,children:n.jsxs("div",{style:{border:"1px solid #d9d9d9",borderRadius:8},children:[he("Ara Toplam",b),Y>0&&he(`İskonto (%${Y})`,-I),he(`KDV (%${D})`,j),n.jsx("div",{style:{borderTop:"1px solid #d9d9d9"},children:he("Genel Toplam",N,!0)})]})})})]}),n.jsx(bp,{style:{marginBottom:16},items:[{key:"texts",label:"Teklif Metinleri (sunuÅ, sözleÅme hükümleri, kapanıŠnotu)",children:n.jsxs(n.Fragment,{children:[n.jsx(x.Item,{name:"intro_text",label:"SunuÅ Metni (kapak sayfası)",children:n.jsx(Xr,{rows:4})}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"payment_terms",label:"Ãdeme KoÅulları",children:n.jsx(Xr,{rows:3})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"notes",label:"Notlar",children:n.jsx(Xr,{rows:3})})})]}),n.jsx(x.Item,{name:"terms_and_conditions",label:"A. Teklif/SözleÅme KoÅulları",children:n.jsx(Xr,{rows:8})}),n.jsx(x.Item,{name:"confidentiality_terms",label:"B. Tarafların Gizlilik, Tarafsızlık ve BaÄımsızlık ile İlgili Sorumlulukları",children:n.jsx(Xr,{rows:6})}),n.jsx(x.Item,{name:"employer_obligations",label:"C. İÅveren Sorumlulukları",children:n.jsx(Xr,{rows:4})}),n.jsx(x.Item,{name:"closing_note",label:"KapanıŠNotu",children:n.jsx(Xr,{rows:2})})]})},{key:"bank",label:"Banka Hesap Bilgileri",children:n.jsx(It.DynamicDataSheetGrid,{value:U,onChange:de=>A(de),columns:ue,createRow:Im,addRowsComponent:Cm,contextMenuComponent:Dm,height:220,rowHeight:36})}]}),n.jsx(x.Item,{children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",disabled:!o||s&&!!c&&!["DRAFT","REVISION_REQUESTED"].includes(c.status),loading:y.isPending||f.isPending,style:{background:"#1B5E8C"},children:"Kaydet"}),n.jsx(T,{onClick:()=>r(s?`/proposals/${t}`:"/proposals"),children:"İptal"})]})})]})})},{TextArea:Nm}=G,_C=()=>{const{id:t}=jt(),e=Le(),[r]=x.useForm(),{data:i,isLoading:s}=Zp(t||""),{data:a,isLoading:l}=tr(),o=Sj(),c=wj(),d=Cj(),u=Dj(),m=Rj(),h=Ij(),p=Ej(),[y,f]=k.useState(!1),[g,v]=k.useState(""),[S,R]=k.useState(!1),[z,P]=k.useState(Z().add(7,"day")),[U,A]=k.useState(!1),[w,Y]=k.useState(""),[D,_]=k.useState(!1),[M,b]=k.useState([]),[I,j]=k.useState(!1);if(s)return n.jsx("div",{style:{textAlign:"center",padding:64},children:n.jsx(mt,{size:"large"})});if(!i)return n.jsx(be,{type:"error",message:"Teklif bulunamadı."});const N=["DRAFT","REVISION_REQUESTED"].includes(i.status),$=async K=>{if(!K){b([]);return}j(!0);try{b(await $n.getBranches(K))}finally{j(!1)}},ue=()=>{r.setFieldsValue({company:i.company,branch:i.branch||void 0}),$(i.company),_(!0)},oe=async()=>{let K;try{K=await r.validateFields()}catch{return}m.mutate({id:i.id,data:{company:K.company,branch:K.branch||void 0}},{onSuccess:fe=>{_(!1),e(`/proposals/${fe.id}/edit`)}})};return n.jsxs("div",{children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:16},children:[n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/proposals"),children:"Geri"}),n.jsxs("div",{style:{fontSize:18,fontWeight:600},children:[i.proposal_number,n.jsx(ie,{color:dd[i.status]||"default",style:{marginLeft:8},children:cd[i.status]||i.status})]})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{icon:n.jsx(_r,{}),loading:u.isPending,onClick:()=>u.mutate(i.id),children:"PDF OluÅtur"}),i.pdf_file&&n.jsx(T,{type:"link",href:i.pdf_file,target:"_blank",children:"PDF Aç"}),N&&n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>e(`/proposals/${i.id}/edit`),children:"Düzenle"}),i.status==="DRAFT"&&n.jsx(T,{type:"primary",icon:n.jsx(Ml,{}),style:{background:"#1B5E8C"},loading:o.isPending,onClick:()=>o.mutate(i.id),children:"Gönder"}),i.status==="SENT"&&n.jsxs(n.Fragment,{children:[n.jsx(T,{type:"primary",loading:c.isPending,onClick:()=>c.mutate(i.id),children:"Kabul Et"}),n.jsx(T,{danger:!0,onClick:()=>f(!0),children:"Reddet"})]}),!["ACCEPTED","REJECTED","EXPIRED"].includes(i.status)&&n.jsx(T,{onClick:()=>A(!0),children:"Revizyon Aç"}),n.jsx(T,{icon:n.jsx(Kc,{}),loading:m.isPending,onClick:ue,children:"Kopyala"}),i.status==="ACCEPTED"&&n.jsx(T,{icon:n.jsx(Hc,{}),type:"primary",style:{background:"#237804"},onClick:()=>R(!0),children:"Hizmete DönüÅtür"})]})]}),n.jsx(H,{style:{marginBottom:24},children:n.jsxs(F,{bordered:!0,column:{xxl:2,xl:2,lg:2,md:1,sm:1,xs:1},children:[n.jsx(F.Item,{label:"Firma",children:i.company_name||"-"}),n.jsx(F.Item,{label:"Åube",children:i.branch_name||"-"}),n.jsx(F.Item,{label:"BaÅlık",children:i.title}),n.jsx(F.Item,{label:"Teklif Tarihi",children:i.proposal_date?Z(i.proposal_date).format("DD/MM/YYYY"):"-"}),n.jsx(F.Item,{label:"Geçerlilik",children:Z(i.valid_until).format("DD/MM/YYYY")}),n.jsxs(F.Item,{label:"Revizyon",children:["v",i.version]}),n.jsx(F.Item,{label:"MüÅteri Unvanı",children:i.customer_title||"-"}),n.jsxs(F.Item,{label:"MüÅteri Yetkilisi",children:[i.customer_contact||"-",i.customer_phone?` · ${i.customer_phone}`:"",i.customer_email?` · ${i.customer_email}`:""]}),n.jsxs(F.Item,{label:"Ara Toplam",children:[i.subtotal," ",i.currency]}),n.jsxs(F.Item,{label:"İndirim",children:[i.discount_amount," ",i.currency]}),n.jsxs(F.Item,{label:"KDV",children:[i.tax_amount," ",i.currency]}),n.jsxs(F.Item,{label:"Genel Toplam",children:[i.total_amount," ",i.currency]}),n.jsx(F.Item,{label:"Fiyat Tablosu BaÅlıÄı",span:2,children:i.price_table_title||"Otomatik (firma â müÅteri)"}),n.jsx(F.Item,{label:"Ãdeme KoÅulları",span:2,children:i.payment_terms||"-"}),n.jsx(F.Item,{label:"Genel Åartlar",span:2,children:i.terms_and_conditions||"-"}),n.jsx(F.Item,{label:"Notlar",span:2,children:i.notes||"-"})]})}),n.jsx(H,{title:"Teklif Kalemleri",style:{marginBottom:24},children:n.jsx(Ie,{rowKey:K=>K.id||`${K.description}-${K.sort_order}`,pagination:!1,dataSource:i.items||[],columns:[{title:"Açıklama",dataIndex:"description",key:"description",render:(K,fe)=>n.jsxs("div",{children:[n.jsx("div",{children:K}),fe.scope_name&&n.jsx("div",{style:{color:"#8c8c8c",fontSize:12},children:fe.scope_name})]})},{title:"Miktar",dataIndex:"quantity",key:"quantity"},{title:"Birim",dataIndex:"unit",key:"unit"},{title:"Birim Fiyat",dataIndex:"unit_price",key:"unit_price"},{title:"Toplam",dataIndex:"total_price",key:"total_price"}]})}),i.bank_accounts&&i.bank_accounts.length>0&&n.jsx(H,{title:"Banka Hesap Bilgileri",style:{marginBottom:24},children:n.jsx(Ie,{rowKey:K=>K.iban||K.bank,pagination:!1,dataSource:i.bank_accounts,columns:[{title:"Banka",dataIndex:"bank",key:"bank"},{title:"Åube",dataIndex:"branch",key:"branch"},{title:"Hesap No",dataIndex:"account_no",key:"account_no"},{title:"IBAN",dataIndex:"iban",key:"iban"}]})}),n.jsx(H,{title:"Revizyon GeçmiÅi",children:n.jsx(Ie,{rowKey:"id",pagination:!1,dataSource:i.revisions||[],locale:{emptyText:"Henüz revizyon kaydı yok."},columns:[{title:"Versiyon",dataIndex:"version",key:"version",render:K=>`v${K}`},{title:"Ãzet",dataIndex:"changes_summary",key:"changes_summary"},{title:"Ãnceki",dataIndex:"previous_total",key:"previous_total"},{title:"Yeni",dataIndex:"new_total",key:"new_total"},{title:"Tarih",dataIndex:"revised_at",key:"revised_at",render:K=>Z(K).format("DD/MM/YYYY HH:mm")}]})}),n.jsx(Ve,{title:"Teklifi Reddet",open:y,onCancel:()=>f(!1),onOk:()=>d.mutate({id:i.id,rejectionReason:g},{onSuccess:()=>f(!1)}),okButtonProps:{danger:!0,loading:d.isPending},okText:"Reddet",children:n.jsx(Nm,{rows:4,value:g,onChange:K=>v(K.target.value),placeholder:"Ret nedenini girin."})}),n.jsx(Ve,{title:"Teklifi Hizmete DönüÅtür",open:S,onCancel:()=>R(!1),onOk:()=>h.mutate({id:i.id,plannedDate:z?z.format("YYYY-MM-DD"):void 0},{onSuccess:()=>{R(!1),e("/services")}}),okButtonProps:{loading:h.isPending},okText:"DönüÅtür",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY",value:z,onChange:P})}),n.jsx(Ve,{title:"Revizyon TaslaÄı Aç",open:U,onCancel:()=>A(!1),onOk:()=>p.mutate({id:i.id,data:{changes_summary:w}},{onSuccess:()=>{A(!1),e(`/proposals/${i.id}/edit`)}}),okButtonProps:{loading:p.isPending},okText:"TaslaÄı Aç",children:n.jsx(Nm,{rows:4,value:w,onChange:K=>Y(K.target.value),placeholder:"Bu revizyonda hangi deÄiÅiklik yapılacak?"})}),n.jsxs(Ve,{title:"Teklifi Kopyala",open:D,onCancel:()=>_(!1),onOk:()=>void oe(),okButtonProps:{loading:m.isPending},okText:"Kopyala ve Düzenle",cancelText:"Vazgeç",children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Metinler, banka bilgileri ve fiyat kalemleri kopyalanır; firma bilgileri seçtiÄiniz firmadan alınır."}),n.jsxs(x,{form:r,layout:"vertical",children:[n.jsx(x.Item,{name:"company",label:"Yeni Firma",rules:[{required:!0,message:"Firma seçin."}],children:n.jsx(pe,{showSearch:!0,optionFilterProp:"label",loading:l,options:a==null?void 0:a.map(K=>({value:K.id,label:K.name})),onChange:K=>{r.setFieldValue("branch",void 0),$(K)}})}),n.jsx(x.Item,{name:"branch",label:"Åube",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",loading:I,options:M.map(K=>({value:K.id,label:K.name}))})})]})]})]})},ja=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!=null&&e!=="")),bi={getDashboardSummary:async()=>(await L.get("/analytics/dashboard-summary/")).data,getFinancialReport:async t=>(await L.get("/analytics/financial-report/",{params:ja(t)})).data,getOperationalReport:async t=>(await L.get("/analytics/operational-report/",{params:ja(t)})).data,getPersonnelPerformance:async t=>(await L.get("/analytics/personnel-performance/",{params:ja(t)})).data,getCompanyReport:async t=>(await L.get("/analytics/company-report/",{params:{company_id:t}})).data,getYearlyComparison:async t=>(await L.get("/analytics/yearly-comparison/",{params:t?{year:t}:{}})).data,exportReport:async t=>{const e=await L.get("/analytics/export/",{params:ja(t),responseType:"blob"}),r=e.headers["content-disposition"],i=r==null?void 0:r.match(/filename=\"?([^"]+)\"?/);return{blob:e.data,filename:(i==null?void 0:i[1])||`analytics.${t.format}`}}},jC=()=>Re({queryKey:["analytics","dashboard-summary"],queryFn:bi.getDashboardSummary,refetchInterval:5*60*1e3}),kC=t=>Re({queryKey:["analytics","financial",t],queryFn:()=>bi.getFinancialReport(t)}),SC=t=>Re({queryKey:["analytics","operational",t],queryFn:()=>bi.getOperationalReport(t)}),EC=(t,e=!0)=>Re({queryKey:["analytics","personnel",t],queryFn:()=>bi.getPersonnelPerformance(t),enabled:e}),wC=(t,e=!0)=>Re({queryKey:["analytics","company",t],queryFn:()=>bi.getCompanyReport(t),enabled:e&&!!t}),CC=t=>Re({queryKey:["analytics","yearly-comparison",t],queryFn:()=>bi.getYearlyComparison(t),staleTime:10*60*1e3}),DC=()=>ye({mutationFn:t=>bi.exportReport(t),onError:t=>{ce(t,"Rapor dıÅa aktarılamadı.")}}),RC={display:"flex",flexDirection:"column",gap:16},hs=({labels:t,series:e,height:r=240})=>{const i=e.flatMap(g=>g.values);if(!t.length||!e.length||!i.some(g=>g>0))return n.jsx(ht,{description:"Grafik verisi bulunamadı.",image:ht.PRESENTED_IMAGE_SIMPLE});const s=720,a=48,l=24,o=18,c=34,d=s-a-l,u=r-o-c,m=Math.max(...i,1),h=t.length>1?d/(t.length-1):d,p=Math.max(1,Math.ceil(t.length/6)),y=g=>o+u-g/m*u,f=[0,.25,.5,.75,1];return n.jsxs("div",{style:RC,children:[n.jsx("div",{style:{display:"flex",gap:16,flexWrap:"wrap"},children:e.map(g=>n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:12},children:[n.jsx("span",{style:{width:12,height:12,borderRadius:999,background:g.color,display:"inline-block"}}),n.jsx("span",{children:g.label})]},g.label))}),n.jsxs("svg",{viewBox:`0 0 ${s} ${r}`,style:{width:"100%",height:r},children:[f.map(g=>{const v=o+u-u*g,S=Math.round(m*g);return n.jsxs("g",{children:[n.jsx("line",{x1:a,x2:s-l,y1:v,y2:v,stroke:"#e5e7eb",strokeWidth:"1"}),n.jsx("text",{x:a-8,y:v+4,fontSize:"11",fill:"#6b7280",textAnchor:"end",children:S})]},g)}),t.map((g,v)=>{if(v%p!==0&&v!==t.length-1)return null;const S=a+h*v;return n.jsx("text",{x:S,y:r-8,fontSize:"11",fill:"#6b7280",textAnchor:"middle",children:g},g)}),e.map(g=>{const v=g.values.map((S,R)=>`${a+h*R},${y(S)}`).join(" ");return n.jsxs("g",{children:[n.jsx("polyline",{fill:"none",stroke:g.color,strokeWidth:"3",strokeLinejoin:"round",strokeLinecap:"round",points:v}),g.values.map((S,R)=>n.jsx("circle",{cx:a+h*R,cy:y(S),r:"3.5",fill:g.color},`${g.label}-${R}`))]},g.label)})]})]})},qa=({items:t})=>{if(!t.length)return n.jsx(ht,{description:"Grafik verisi bulunamadı.",image:ht.PRESENTED_IMAGE_SIMPLE});const e=Math.max(...t.map(r=>r.value),1);return n.jsx("div",{style:{display:"flex",flexDirection:"column",gap:14},children:t.map(r=>n.jsxs("div",{style:{display:"grid",gridTemplateColumns:"140px 1fr 60px",gap:12,alignItems:"center"},children:[n.jsx("div",{style:{fontSize:13,color:"#1f2937"},children:r.label}),n.jsx("div",{style:{background:"#edf2f7",borderRadius:999,height:10,overflow:"hidden"},children:n.jsx("div",{style:{width:`${r.value/e*100}%`,background:r.color||"linear-gradient(90deg, #1d4ed8, #0f766e)",height:"100%",borderRadius:999}})}),n.jsx("div",{style:{textAlign:"right",fontSize:12,color:"#4b5563"},children:r.subtitle||r.value})]},r.label))})},Wf=({items:t})=>{const e=t.reduce((a,l)=>a+l.value,0);if(!t.length||e<=0)return n.jsx(ht,{description:"Grafik verisi bulunamadı.",image:ht.PRESENTED_IMAGE_SIMPLE});const r=64,i=2*Math.PI*r;let s=0;return n.jsxs("div",{style:{display:"grid",gridTemplateColumns:"180px 1fr",gap:24,alignItems:"center"},children:[n.jsxs("div",{style:{position:"relative",width:180,height:180,margin:"0 auto"},children:[n.jsxs("svg",{viewBox:"0 0 180 180",style:{width:"100%",height:"100%",transform:"rotate(-90deg)"},children:[n.jsx("circle",{cx:"90",cy:"90",r,stroke:"#e5e7eb",strokeWidth:"22",fill:"none"}),t.map(a=>{const l=a.value/e*i,o=n.jsx("circle",{cx:"90",cy:"90",r,stroke:a.color,strokeWidth:"22",fill:"none",strokeDasharray:`${l} ${i-l}`,strokeDashoffset:-s,strokeLinecap:"butt"},a.label);return s+=l,o})]}),n.jsxs("div",{style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},children:[n.jsx("strong",{style:{fontSize:28},children:e}),n.jsx("span",{style:{fontSize:12,color:"#6b7280"},children:"Toplam"})]})]}),n.jsx("div",{style:{display:"flex",flexDirection:"column",gap:10},children:t.map(a=>n.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[n.jsx("span",{style:{width:12,height:12,borderRadius:999,background:a.color,display:"inline-block"}}),n.jsx("span",{style:{color:"#1f2937"},children:a.label})]}),n.jsxs("span",{style:{color:"#4b5563",fontSize:12},children:[a.value," (",Math.round(a.value/e*100),"%)"]})]},a.label))})]})},{Title:IC,Text:ps}=ft,Zr=new Intl.NumberFormat("tr-TR",{style:"currency",currency:"TRY",maximumFractionDigits:0}),TC={UYGUNDUR:"success",EKSIK_GIDERILMEZSE_UYGUN_DEGIL:"error",EKSIK_GIDERILDIKTEN_SONRA_UYGUN:"warning",UYGUN:"success",UYGUNSUZ:"error",SARTLI_UYGUN:"warning"},AC={UYGUNDUR:"Uygundur",EKSIK_GIDERILMEZSE_UYGUN_DEGIL:"Yazılı eksikler giderilmediÄi takdirde uygun deÄildir",EKSIK_GIDERILDIKTEN_SONRA_UYGUN:"Yazılı eksikler giderildikten s
107onra uygundur",UYGUN:"Uygun",UYGUNSUZ:"Uygunsuz",SARTLI_UYGUN:"Åartlı Uygun"},ka=["#1d4ed8","#0f766e","#d97706","#c2410c","#7c3aed","#be123c"],MC=Array.from({length:5},(t,e)=>{const r=Z().year()-2+e;return{label:`${r}`,value:r}}),NC=[{label:"Q1",value:1},{label:"Q2",value:2},{label:"Q3",value:3},{label:"Q4",value:4}],PC=(t,e)=>{const r=window.URL.createObjectURL(t),i=document.createElement("a");i.href=r,i.download=e,i.click(),window.URL.revokeObjectURL(r)},zC=()=>{var Ce,Ue;const[t,e]=k.useState("monthly"),[r,i]=k.useState(Z()),[s,a]=k.useState(Z().year()),[l,o]=k.useState(Math.floor(Z().month()/3)+1),[c,d]=k.useState(),[u,m]=k.useState(),h=k.useMemo(()=>t==="monthly"?{period:t,year:r.year(),month:r.month()+1}:t==="quarterly"?{period:t,year:s,quarter:l}:{period:t,year:s},[t,r,l,s]),{data:p}=tr(),{data:y}=Qs(),{data:f,isLoading:g,error:v}=jC(),{data:S,isLoading:R,error:z}=kC(h),{data:P,isLoading:U,error:A}=SC(h),{data:w,isLoading:Y,error:D}=EC({...h,personnel_id:c},!!c),{data:_,isLoading:M,error:b}=wC(u,!!u),{data:I,isLoading:j}=CC(s),{mutateAsync:N,isPending:$}=DC();k.useEffect(()=>{!c&&(y!=null&&y.length)&&d(y[0].id)},[y,c]),k.useEffect(()=>{!u&&(p!=null&&p.length)&&m(p[0].id)},[p,u]);const ue=async(se,q)=>{try{const ae=await N({...h,type:se,format:q,personnel_id:se==="personnel"?c:void 0});PC(ae.blob,ae.filename)}catch{}},oe=k.useMemo(()=>((S==null?void 0:S.revenue_by_scope)||[]).slice(0,6).map((se,q)=>({label:se.scope_name,value:se.amount,color:ka[q%ka.length]})),[S]),K=k.useMemo(()=>((P==null?void 0:P.inspections_by_personnel)||[]).slice(0,6).map((se,q)=>({label:se.personnel_name,value:se.count,color:ka[q%ka.length],subtitle:`${se.count} IE`})),[P]),fe=k.useMemo(()=>((_==null?void 0:_.nonconformity_summary)||[]).map(se=>({label:se.scope,value:se.uygunsuz+se.sartli+se.uygun,subtitle:`${se.uygun}/${se.uygunsuz}/${se.sartli}`})),[_]),J=[{title:"Kapsam",dataIndex:"scope_name",key:"scope_name"},{title:"Kod",dataIndex:"scope_code",key:"scope_code",render:se=>se||"-"},{title:"Adet",dataIndex:"count",key:"count"},{title:"Tutar",dataIndex:"amount",key:"amount",render:se=>se===void 0?"-":Zr.format(se)}],B=[{title:"Firma",dataIndex:"company_name",key:"company_name"},{title:"Adet",dataIndex:"count",key:"count"},{title:"Tutar",dataIndex:"amount",key:"amount",render:se=>se===void 0?"-":Zr.format(se)}],he=[{title:"Kapsam",dataIndex:"scope_name",key:"scope_name"},{title:"Adet",dataIndex:"count",key:"count"}],de=[{title:"Firma",dataIndex:"company_name",key:"company_name"},{title:"Adet",dataIndex:"count",key:"count"}],_e=[{title:"Tarih",dataIndex:"date",key:"date",render:se=>Z(se).format("DD.MM.YYYY")},{title:"Kapsam",dataIndex:"scope",key:"scope"},{title:"Sonuç",dataIndex:"result",key:"result",render:se=>se?n.jsx(ie,{color:TC[se]||"default",children:AC[se]||se}):"-"},{title:"Rapor No",dataIndex:"report_number",key:"report_number"}],De=[{title:"Kapsam",dataIndex:"scope",key:"scope"},{title:"Uygun",dataIndex:"uygun",key:"uygun"},{title:"Uygunsuz",dataIndex:"uygunsuz",key:"uygunsuz"},{title:"Åartlı",dataIndex:"sartli",key:"sartli"}];return v||z||A?n.jsx(be,{message:"Analiz verileri yüklenirken hata oluÅtu.",type:"error"}):n.jsx("div",{children:n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:16,flexWrap:"wrap"},children:[n.jsxs("div",{children:[n.jsx(IC,{level:4,style:{margin:0},children:"Raporlama ve Analiz"}),n.jsx(ps,{type:"secondary",children:"Finansal, operasyonel ve performans verilerini tek panelde izleyin."})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(Tn,{value:t,onChange:se=>e(se),options:[{label:"Aylık",value:"monthly"},{label:"Ãeyreklik",value:"quarterly"},{label:"Yıllık",value:"yearly"}]}),t==="monthly"?n.jsx(We,{picker:"month",value:r,onChange:se=>se&&i(se),allowClear:!1}):n.jsx(pe,{value:s,onChange:a,options:MC,style:{width:120}}),t==="quarterly"?n.jsx(pe,{value:l,onChange:o,options:NC,style:{width:100}}):null]})]}),n.jsx(Jn,{items:[{key:"overview",label:"Genel BakıÅ",children:g||R||U?n.jsx(mt,{}):n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Bu Ay Gelir",value:(f==null?void 0:f.this_month_revenue)||0,precision:0,formatter:se=>Zr.format(Number(se)),prefix:n.jsx(Uc,{})})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Teklif Kabul Oranı",value:(f==null?void 0:f.proposal_acceptance_rate)||0,suffix:"%",prefix:n.jsx(ws,{})})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Aktif İŠEmri",value:(f==null?void 0:f.active_work_orders)||0,prefix:n.jsx(Es,{})})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Memnuniyet Ort.",value:(f==null?void 0:f.customer_satisfaction_avg)||0,suffix:"/5",prefix:n.jsx(vp,{})})})})]}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,xl:14,children:n.jsx(H,{title:"Aylık Gelir Trendi",children:n.jsx(hs,{labels:((S==null?void 0:S.monthly_trend)||[]).map(se=>se.month.slice(2)),series:[{label:"Gelir",color:"#1d4ed8",values:((S==null?void 0:S.monthly_trend)||[]).map(se=>se.revenue)}]})})}),n.jsx(C,{xs:24,xl:10,children:n.jsx(H,{title:"Kapsam Bazlı Gelir DaÄılımı",children:n.jsx(Wf,{items:oe})})})]}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,md:12,xl:6,children:n.jsxs(H,{
107children:[n.jsx(Ee,{title:"YaklaÅan Muayeneler",value:((Ce=f==null?void 0:f.upcoming_inspections)==null?void 0:Ce.length)||0,prefix:n.jsx(Rs,{}),valueStyle:{color:(((Ue=f==null?void 0:f.upcoming_inspections)==null?void 0:Ue.length)||0)>0?"#cf1322":void 0}}),n.jsx(ps,{type:"secondary",style:{fontSize:11},children:"Sonraki 7 gun"})]})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsxs(H,{children:[n.jsx(Ee,{title:"Kalibrasyon Uyarilari",value:(f==null?void 0:f.calibration_warnings)||0,prefix:n.jsx(Rs,{}),valueStyle:{color:((f==null?void 0:f.calibration_warnings)||0)>0?"#faad14":void 0}}),n.jsx(ps,{type:"secondary",style:{fontSize:11},children:"30 gun icinde"})]})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Aktif Firmalar",value:(f==null?void 0:f.active_companies)||0,prefix:n.jsx(Es,{})})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsxs(H,{children:[n.jsx(Ee,{title:"Personel Kullanimi",value:(f==null?void 0:f.personnel_utilization)||0,suffix:"%",precision:1}),n.jsx(ps,{type:"secondary",style:{fontSize:11},children:"Bugun"})]})})]}),n.jsx(H,{title:"Personel Performans DaÄılımı",children:n.jsx(qa,{items:K})})]})},{key:"financial",label:"Finansal",children:R?n.jsx(mt,{}):n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:16,flexWrap:"wrap"},children:[n.jsxs(me,{gutter:[16,16],style:{flex:1},children:[n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Gönderilen",value:(S==null?void 0:S.proposals_sent)||0})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Kabul",value:(S==null?void 0:S.proposals_accepted)||0})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Red",value:(S==null?void 0:S.proposals_rejected)||0})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Kabul Oranı",value:(S==null?void 0:S.acceptance_rate)||0,suffix:"%"})})})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{icon:n.jsx(cn,{}),loading:$,onClick:()=>ue("financial","xlsx"),children:"Excel İndir"}),n.jsx(T,{loading:$,onClick:()=>ue("financial","csv"),children:"CSV"}),n.jsx(T,{loading:$,onClick:()=>ue("financial","pdf"),children:"PDF"})]})]}),n.jsx(H,{title:"12 Aylık KarÅılaÅtırma",children:n.jsx(hs,{labels:((S==null?void 0:S.monthly_trend)||[]).map(se=>se.month.slice(2)),series:[{label:"Teklif",color:"#0891b2",values:((S==null?void 0:S.monthly_trend)||[]).map(se=>se.proposed)},{label:"Kabul",color:"#16a34a",values:((S==null?void 0:S.monthly_trend)||[]).map(se=>se.accepted)},{label:"Gelir",color:"#1d4ed8",values:((S==null?void 0:S.monthly_trend)||[]).map(se=>se.revenue)}]})}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,xl:12,children:n.jsx(H,{title:"Kapsam Bazlı Gelir",children:n.jsx(Ie,{columns:J,dataSource:(S==null?void 0:S.revenue_by_scope)||[],rowKey:se=>`${se.scope_code}-${se.scope_name}`,pagination:{pageSize:6},size:"small"})})}),n.jsx(C,{xs:24,xl:12,children:n.jsx(H,{title:"Firma Bazlı Gelir",children:n.jsx(Ie,{columns:B,dataSource:(S==null?void 0:S.revenue_by_company)||[],rowKey:se=>se.company_name,pagination:{pageSize:6},size:"small"})})})]})]})},{key:"operational",label:"Operasyonel",children:U?n.jsx(mt,{}):n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:16,flexWrap:"wrap"},children:[n.jsxs(me,{gutter:[16,16],style:{flex:1},children:[n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Toplam İŠEmri",value:(P==null?void 0:P.total_work_orders)||0})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Tamamlanan",value:(P==null?void 0:P.completed)||0})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"İptal",value:(P==null?void 0:P.cancelled)||0})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Ort. Süre",value:(P==null?void 0:P.avg_completion_time)||0,suffix:"saat"})})})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{icon:n.jsx(cn,{}),loading:$,onClick:()=>ue("operational","xlsx"),children:"Excel İndir"}),n.jsx(T,{loading:$,onClick:()=>ue("operational","csv"),children:"CSV"}),n.jsx(T,{loading:$,onClick:()=>ue("operational","pdf"),children:"PDF"})]})]}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,xl:8,children:n.jsx(H,{title:"Uygunluk Oranı",children:n.jsx("div",{style:{display:"flex",justifyContent:"center"},children:n.jsx(oi,{type:"dashboard",percent:Math.round((P==null?void 0:P.conformity_rate)||0),strokeColor:"#16a34a"})})})}),n.jsx(C,{xs:24,xl:16,children:n.jsx(H,{title:"Günlük DaÄılım",children:n.jsx(qa,{items:((P==null?void 0:P.daily_distribution)||[]).slice(-10).map(se=>({label:Z(se.date).format("DD MMM"),value:se.count}))})})})]}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,xl:8,children:n.jsx(H,{title:"Kapsam Bazlı",children:n.jsx(Ie,{columns:he,dataSource:(P==null?void 0:P.inspections_by_scope)||[],rowKey:se=>se.scope_name,pagination:!1,size:"small"})})}),n.jsx(C,{xs:24,xl:8,children:n.jsx(H,{title:"Personel Bazlı",children:n.jsx(Ie,{columns:[{title:"Personel",dataIndex:"personnel_name",key:"personnel_name"},{title:"İE",dataIndex:"count",key:"count"},{title:"Ort. Süre",dataIndex:"avg_time",key:"avg_time",render:se=>`${se} saat`}],dataSource:(P==null?void 0:P.inspections_by_personnel)||[],rowKey:se=>se.personnel_name,pagination:!1,size:"small"})})}),n.jsx(C,{xs:24,xl:8,children:n.jsx(H,{title:"Firma Bazlı",children:n.jsx(Ie,{columns:de,dataSource:(P==null?void 0:P.inspections_by_company)||[],rowKey:se=>se.company_name,pagination:!1,size:"small"})})})]})]})},{key:"personnel",label:"Personel",children:n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsxs(W,{wrap:!0,children:[n.jsx(pe,{placeholder:"Personel seçin",value:c,onChange:d,style:{minWidth:260},options:(y||[]).map(se=>({label:se.full_name,value:se.id}))}),n.jsx(T,{icon:n.jsx(cn,{}),loading:$,disabled:!c,onClick:()=>ue("personnel","xlsx"),children:"Excel İndir"}),n.jsx(T,{loading:$,disabled:!c,onClick:()=>ue("personnel","csv"),children:"CSV"}),n.jsx(T,{loading:$,disabled:!c,onClick:()=>ue("personnel","pdf"),children:"PDF"})]}),D?n.jsx(be,{message:"Personel performansı yüklenemedi.",type:"error"}):null,Y?n.jsx(mt,{}):w?n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Toplam Muayene",value:w.total_inspections})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Toplam Rapor",value:w.total_reports})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Ort. Süre",value:w.avg_completion_time,suffix:"saat"})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Memnuniyet",value:w.customer_satisfaction_avg,suffix:"/5"})})})]}),n.jsx(H,{title:`${w.personnel_name} Aylık Trend`,children:n.jsx(hs,{labels:w.monthly_trend.map(se=>se.month.slice(2)),series:[{label:"Muayene",color:"#1d4ed8",values:w.monthly_trend.map(se=>se.inspections)},{label:"Rapor",color:"#16a34a",values:w.monthly_trend.map(se=>se.reports)}]})}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,xl:12,children:n.jsx(H,{title:"Kapsam DaÄılımı",children:n.jsx(Ie,{columns:he,dataSource:w.scopes_w
107orked,rowKey:se=>se.scope_name,pagination:!1,size:"small"})})}),n.jsx(C,{xs:24,xl:12,children:n.jsx(H,{title:"Firma DaÄılımı",children:n.jsx(Ie,{columns:de,dataSource:w.companies_served,rowKey:se=>se.company_name,pagination:!1,size:"small"})})})]})]}):n.jsx(ht,{description:"Personel verisi seçilmedi."})]})},{key:"company",label:"Firma",children:n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsx(pe,{placeholder:"Firma seçin",value:u,onChange:m,style:{minWidth:320},options:(p||[]).map(se=>({label:se.name,value:se.id}))}),b?n.jsx(be,{message:"Firma raporu yüklenemedi.",type:"error"}):null,M?n.jsx(mt,{}):_?n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Toplam Ekipman",value:_.total_equipment})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Bu Yıl Muayene Edilen",value:_.inspected_this_year})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Bekleyen Muayene",value:_.pending_inspection})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(H,{children:n.jsx(Ee,{title:"Toplam Harcama",value:_.total_spent,formatter:se=>Zr.format(Number(se))})})})]}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,xl:10,children:n.jsx(H,{title:"Uygunluk DaÄılımı",children:n.jsx(qa,{items:fe})})}),n.jsx(C,{xs:24,xl:14,children:n.jsx(H,{title:"Muayene GeçmiÅi",children:n.jsx(Ie,{columns:_e,dataSource:_.inspection_history,rowKey:se=>se.report_number,pagination:{pageSize:6},size:"small"})})})]}),n.jsx(H,{title:"Uygunsuzluk Ãzeti",children:n.jsx(Ie,{columns:De,dataSource:_.nonconformity_summary,rowKey:se=>se.scope,pagination:!1,size:"small"})})]}):n.jsx(ht,{description:"Firma seçilmedi."})]})},{key:"yearly",label:n.jsxs("span",{children:[n.jsx(Ov,{style:{marginRight:6}}),"Yillik Karsilastirma"]}),children:j?n.jsx(mt,{}):I?n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsx(me,{gutter:[16,16],children:(()=>{const se=I.current_year,q=I.previous_year,ae=q.revenue?(se.revenue-q.revenue)/q.revenue*100:0,ge=q.total_services?(se.total_services-q.total_services)/q.total_services*100:0,Me=q.total_reports?(se.total_reports-q.total_reports)/q.total_reports*100:0,ze=q.unique_companies?(se.unique_companies-q.unique_companies)/q.unique_companies*100:0;return[{title:"Gelir",current:Zr.format(se.revenue),change:ae},{title:"Hizmet Sayisi",current:se.total_services,change:ge},{title:"Rapor Sayisi",current:se.total_reports,change:Me},{title:"Musteri Sayisi",current:se.unique_companies,change:ze}].map(lt=>n.jsx(C,{xs:24,md:12,xl:6,children:n.jsxs(H,{children:[n.jsx(Ee,{title:`${lt.title} (${se.year})`,value:lt.current}),n.jsxs("div",{style:{marginTop:4,fontSize:12},children:[lt.change>0?n.jsxs(ie,{color:"success",icon:n.jsx(Pv,{}),children:["+",lt.change.toFixed(1),"%"]}):lt.change<0?n.jsxs(ie,{color:"error",icon:n.jsx(zv,{}),children:[lt.change.toFixed(1),"%"]}):n.jsx(ie,{children:"Degisim yok"}),n.jsxs(ps,{type:"secondary",style:{marginLeft:4,fontSize:11},children:["vs ",q.year]})]})]})},lt.title))})()}),n.jsx(H,{title:`Aylik Gelir Karsilastirmasi: ${I.current_year.year} vs ${I.previous_year.year}`,children:n.jsx(hs,{labels:I.monthly_comparison.map(se=>["Oca","Sub","Mar","Nis","May","Haz","Tem","Agu","Eyl","Eki","Kas","Ara"][se.month-1]||`${se.month}`),series:[{label:`${I.current_year.year} Gelir`,color:"#1d4ed8",values:I.monthly_comparison.map(se=>se.current_revenue)},{label:`${I.previous_year.year} Gelir`,color:"#94a3b8",values:I.monthly_comparison.map(se=>se.previous_revenue)}]})}),n.jsx(H,{title:"Aylik Hizmet Karsilastirmasi",children:n.jsx(hs,{labels:I.monthly_comparison.map(se=>["Oca","Sub","Mar","Nis","May","Haz","Tem","Agu","Eyl","Eki","Kas","Ara"][se.month-1]||`${se.month}`),series:[{label:`${I.current_year.year} Hizmet`,color:"#16a34a",values:I.monthly_comparison.map(se=>se.current_services)},{label:`${I.previous_year.year} Hizmet`,color:"#d1d5db",values:I.monthly_comparison.map(se=>se.previous_services)}]})}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,xl:12,children:n.jsx(H,{title:`${I.current_year.year} Ozet`,children:n.jsxs(F,{column:1,size:"small",bordered:!0,children:[n.jsx(F.Item,{label:"Teklif Gonderilen",children:I.current_year.proposals_sent}),n.jsx(F.Item,{label:"Teklif Kabul",children:I.current_year.proposals_accepted}),n.jsx(F.Item,{label:"Gelir",children:Zr.format(I.current_year.revenue)}),n.jsx(F.Item,{label:"Toplam Hizmet",children:I.current_year.total_services}),n.jsx(F.Item,{label:"Tamamlanan",children:I.current_year.completed_services}),n.jsxs(F.Item,{label:"Uygunluk Orani",children:[I.current_year.conformity_rate,"%"]}),n.jsxs(F.Item,{label:"Ort. Tamamlanma",children:[I.current_year.avg_completion_time," saat"]})]})})}),n.jsx(C,{xs:24,xl:12,children:n.jsx(H,{title:`${I.previous_year.year} Ozet`,children:n.jsxs(F,{column:1,size:"small",bordered:!0,children:[n.jsx(F.Item,{label:"Teklif Gonderilen",children:I.previous_year.proposals_sent}),n.jsx(F.Item,{label:"Teklif Kabul",children:I.previous_year.proposals_accepted}),n.jsx(F.Item,{label:"Gelir",children:Zr.format(I.previous_year.revenue)}),n.jsx(F.Item,{label:"Toplam Hizmet",children:I.previous_year.total_services}),n.jsx(F.Item,{label:"Tamamlanan",children:I.previous_year.completed_services}),n.jsxs(F.Item,{label:"Uygunluk Orani",children:[I.previous_year.conformity_rate,"%"]}),n.jsxs(F.Item,{label:"Ort. Tamamlanma",children:[I.previous_year.avg_completion_time," saat"]})]})})})]})]}):n.jsx(ht,{description:"Yillik karsilastirma verisi bulunamadi."})}]})]})})},{Search:OC}=G,{Text:Sa}=ft,LC=()=>{const{data:t=[],isLoading:e}=qr(),[r,i]=k.useState(""),s=r.trim().toLowerCase(),a=k.useMemo(()=>t.filter(m=>s?m.name.toLowerCase().includes(s)||m.code.toLowerCase().includes(s)||(m.legal_reference||"").toLowerCase().includes(s):!0),[s,t]),l=k.useMemo(()=>{const m=new Map;return a.forEach(h=>{const p=vr(h.category),y=h.category||p.value,f=m.get(y);if(f){f.service_count+=1;return}m.set(y,{key:y,category:y,label:p.label,color:p.color,description:p.description,service_count:1})}),Array.from(m.values())},[a]),o=k.useMemo(()=>a.flatMap(m=>{const h=vr(m.category);return(m.methods||[]).map(p=>({...p,key:p.id,service_name:vn(m.name),service_code:m.code,scope_label:h.label,scope_color:h.color}))}),[a]),c=[{title:"Hizmet BaÅlıÄı",key:"service_name",render:(m,h)=>n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:600},children:vn(h.name)}),n.jsx(Sa,{type:"secondary",children:h.description||"Hazırlanacak rapor / muayene türü."})]})},{title:"Kod",dataIndex:"code",key:"code",width:120},{title:"Kapsam",key:"scope_category",render:(m,h)=>{const p=vr(h.category);
107return n.jsx(ie,{color:p.color,children:p.label})},width:140},{title:"Metot",dataIndex:"method_count",key:"method_count",render:(m,h)=>{var p;return m??((p=h.methods)==null?void 0:p.length)??0},width:100},{title:"Yasal Dayanak",dataIndex:"legal_reference",key:"legal_reference",render:m=>m||"-"},{title:"Durum",dataIndex:"is_active",key:"is_active",render:m=>n.jsx(ie,{color:m?"success":"error",children:m?"Aktif":"Pasif"}),width:110}],d=[{title:"Kapsam BaÅlıÄı",key:"label",render:(m,h)=>n.jsxs(W,{direction:"vertical",size:2,children:[n.jsx(ie,{color:h.color,children:h.label}),n.jsx(Sa,{type:"secondary",children:h.description})]})},{title:"BaÄlı Hizmet",dataIndex:"service_count",key:"service_count",width:140,render:m=>`${m} hizmet`}],u=[{title:"Metot BaÅlıÄı",key:"method_name",render:(m,h)=>n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:600},children:h.name}),n.jsx(Sa,{type:"secondary",children:h.description||"Manuel tanımlanan kontrol metodu."})]})},{title:"Standart / Metot",key:"standard",render:(m,h)=>h.standard_name||h.standard_code||"-"},{title:"Hizmet",key:"service_name",render:(m,h)=>n.jsxs("div",{children:[n.jsx("div",{children:h.service_name}),n.jsx(Sa,{type:"secondary",children:h.service_code})]})},{title:"Kapsam",key:"scope_label",render:(m,h)=>n.jsx(ie,{color:h.scope_color,children:h.scope_label}),width:130},{title:"Cihaz İhtiyacı",key:"required_device_types",render:(m,h)=>{var p;return(p=h.required_device_types)!=null&&p.length?h.required_device_types.join(", "):"-"}}];return n.jsxs(W,{direction:"vertical",size:16,style:{width:"100%"},children:[n.jsxs(H,{title:"Hizmetler / Kapsamlar / Metotlar",children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Bu ekran üç farklı kavramı ayırır.",description:"Hizmetler hazırlanacak rapor türünü, kapsamlar yapılan kontrolün elektrik mi mekanik mi olduÄunu, metotlar ise kullanılan standart ve kontrol yöntemini tanımlar. Metotlar manuel girilir ve seçilen hizmete baÄlı olarak rapora otomatik gelir."}),n.jsx(OC,{placeholder:"Hizmet adı, kod veya mevzuat ile ara",allowClear:!0,onChange:m=>i(m.target.value),style:{width:360}})]}),n.jsxs(H,{title:"Hizmetler",children:[n.jsx(be,{type:"success",showIcon:!0,style:{marginBottom:16},message:"Buradaki kayıtlar iÅ emri ekranında seçilecek rapor / hizmet türleridir.",description:"ÃrneÄin Elektrik İç Tesisatı Raporu gibi bir hizmet seçildiÄinde, muayene baÅlatılırken ilgili hizmet tipi çaÄrılır ve rapor akıÅı buna göre açılır."}),n.jsx(Ie,{rowKey:"id",columns:c,dataSource:a,loading:e,pagination:{pageSize:10}})]}),n.jsxs(H,{title:"Kapsamlar",children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Kapsam, rapor türü deÄil disiplin bilgisidir.",description:"Buradaki kayıtlar yapılan kontrolün elektrik mi mekanik mi olduÄunu tanımlar. Hizmet kayıtları bu kapsamlardan birine baÄlanır."}),n.jsx(Ie,{rowKey:"key",columns:d,dataSource:l,loading:e,pagination:!1})]}),n.jsxs(H,{title:"Metotlar",children:[n.jsx(be,{type:"warning",showIcon:!0,style:{marginBottom:16},message:"Metotlar kullanılan standart ve kontrol yöntemidir.",description:"ÃrneÄin TS EN, TS HD veya yönetmelik referansları burada tanımlanır. Seçilen hizmete baÄlı metotlar rapor Åablonuna ve PDF çıktısına otomatik taÅınır."}),n.jsx(Ie,{rowKey:"key",columns:u,dataSource:o,loading:e,pagination:{pageSize:12}})]})]})},ci={getEquipmentList:async t=>(await L.get("/equipment/",{params:t})).data.results||[],getEquipment:async t=>(await L.get(`/equipment/${t}/`)).data,downloadImportTemplate:async()=>(await L.get("/equipment/import-template/",{responseType:"blob"})).data,bulkImport:async t=>{const e=new FormData;return e.append("file",t),(await L.post("/equipment/bulk-import/",e,{headers:{"Content-Type":"multipart/form-data"}})).data},getQrLabel:async t=>(await L.get(`/equipment/${t}/qr-label/`)).data,downloadQrLabelPdf:async t=>(await L.get(`/equipment/${t}/qr-label/?format=pdf`,{responseType:"blob"})).data,downloadBulkLabelsPdf:async t=>(await L.post("/equipment/bulk-labels/",{equipment_ids:t},{responseType:"blob"})).data},FC=t=>Re({queryKey:["equipment",t],queryFn:()=>ci.getEquipmentList(t)}),BC=t=>Re({queryKey:["equipment",t],queryFn:()=>ci.getEquipment(t),enabled:!!t}),YC=t=>Re({queryKey:["equipment",t,"qr-label"],queryFn:()=>ci.getQrLabel(t),enabled:!!t,staleTime:1e3*60*30}),{Search:HC}=G,UC={ACTIVE:"Aktif",INACTIVE:"Pasif",SCRAPPED:"Hurdaya Ayrildi"},qC={ACTIVE:"success",INACTIVE:"default",SCRAPPED:"error"},Pm=(t,e)=>{const r=window.URL.createObjectURL(t),i=document.createElement("a");i.href=r,i.download=e,document.body.appendChild(i),i.click(),i.remove(),window.URL.revokeObjectURL(r)},$C=()=>{const{data:t,isLoading:e}=FC(),r=Le(),[i,s]=k.useState(""),[a,l]=k.useState(!1),[o,c]=k.useState(null),[d,u]=k.useState(!1),[m,h]=k.useState([]),[p,y]=k.useState(!1),f=async()=>{try{const P=await ci.downloadImportTemplate();Pm(P,"equipment-import-template.csv")}catch(P){ce(P,"Ice aktarma sablonu indirilemedi","Sablon dosyasi hazirlanirken sunucu beklenen cevabi uretmedi.")}},g=async()=>
107{if(!o){re.warning("Lutfen once bir dosya secin.");return}u(!0);try{const P=await ci.bulkImport(o);re.success(`Ice aktarma tamamlandi. Olusan: ${P.created_count}, Hata: ${P.error_count}`),l(!1),c(null),window.location.reload()}catch(P){ce(P,"Toplu ice aktarma basarisiz oldu")}finally{u(!1)}},v=async()=>{if(m.length===0){re.warning("Lutfen en az bir ekipman secin.");return}y(!0);try{const P=await ci.downloadBulkLabelsPdf(m);Pm(P,`toplu-etiketler-${m.length}-adet.pdf`),re.success(`${m.length} adet etiket PDF olarak indirildi.`)}catch(P){ce(P,"Toplu etiket olusturulamadi")}finally{y(!1)}},S=t==null?void 0:t.filter(P=>P.name.toLowerCase().includes(i.toLowerCase())||(P.serial_number||"").toLowerCase().includes(i.toLowerCase())||(P.company_name||"").toLowerCase().includes(i.toLowerCase())),R=[{title:"Ekipman Adi",dataIndex:"name",key:"name",width:160,ellipsis:!0,sorter:(P,U)=>P.name.localeCompare(U.name)},{title:"Tip",dataIndex:"equipment_type",key:"equipment_type",width:120,ellipsis:!0,render:P=>P||"-"},{title:"Seri No",dataIndex:"serial_number",key:"serial_number",width:110,render:P=>P||"-"},{title:"Firma",dataIndex:"company_name",key:"company_name",width:140,ellipsis:!0,render:P=>P||"-"},{title:"Sube",dataIndex:"branch_name",key:"branch_name",width:100,ellipsis:!0,render:P=>P||"-"},{title:"Kapsam",dataIndex:"scope_name",key:"scope_name",width:160,ellipsis:!0,render:P=>P||"-"},{title:"Sonraki Muayene",dataIndex:"next_inspection_date",key:"next_inspection_date",width:140,render:(P,U)=>{if(!P)return n.jsx(ie,{color:"warning",children:"Belirsiz"});const A=Z(P).format("DD/MM/YYYY");return U.is_inspection_due?n.jsxs(ie,{color:"error",children:[A," (Gecikmis)"]}):n.jsx("span",{children:A})}},{title:"Durum",dataIndex:"status",key:"status",width:90,render:P=>n.jsx(ie,{color:qC[P]||"default",children:UC[P]||P})},{title:"Islem",key:"action",width:70,fixed:"right",render:(P,U)=>n.jsx(W,{size:"small",children:n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>r(`/equipment/${U.id}`)})})}],z={selectedRowKeys:m,onChange:P=>h(P)};return n.jsxs(n.Fragment,{children:[n.jsxs(H,{title:"Ekipmanlar",extra:n.jsxs(W,{wrap:!0,children:[m.length>0&&n.jsxs(T,{icon:n.jsx(Sp,{}),type:"primary",ghost:!0,loading:p,onClick:v,children:[m.length," Etiket Yazdir"]}),n.jsx(T,{onClick:f,children:"Import Sablonu"}),n.jsx(T,{type:"primary",onClick:()=>l(!0),children:"Toplu Ice Aktar"})]}),children:[n.jsx("div",{style:{marginBottom:16},children:n.jsx(HC,{placeholder:"Ekipman adi, seri no veya firma ile ara",allowClear:!0,onSearch:P=>s(P),onChange:P=>s(P.target.value),style:{width:350}})}),n.jsx(Ie,{columns:R,dataSource:S,rowKey:"id",loading:e,pagination:{pageSize:20},rowSelection:z,scroll:{x:1300}})]}),n.jsx(Ve,{title:"Toplu Ekipman Ice Aktarma",open:a,onCancel:()=>{l(!1),c(null)},onOk:g,confirmLoading:d,okText:"Aktar",children:n.jsx(An,{beforeUpload:P=>(c(P),!1),onRemove:()=>{c(null)},maxCount:1,children:n.jsx(T,{children:"CSV/XLSX Dosyasi Sec"})})})]})},{Text:Ea}=ft,KC=(t,e)=>{const r=window.URL.createObjectURL(t),i=document.createElement("a");i.href=r,i.download=e,document.body.appendChild(i),i.click(),i.remove(),window.URL.revokeObjectURL(r)},GC=()=>{const{id:t}=jt(),e=Le(),{data:r,isLoading:i}=BC(t||""),{data:s,isLoading:a}=YC(t||""),[l,o]=k.useState(!1),[c,d]=k.useState(!1),u=async()=>{if(t){d(!0);try{const p=await ci.downloadQrLabelPdf(t);KC(p,`etiket-${(r==null?void 0:r.serial_number)||t}.pdf`),re.success("QR etiket PDF indirildi.")}catch(p){ce(p,"PDF indirilemedi")}finally{d(!1)}}},m=()=>{if(!(s!=null&&s.qr_code_base64))return;const p=window.open("","_blank");p&&(p.document.write(` 108 <!DOCTYPE html> 109 <html> 110 <head> 111 <title>QR Etiket - ${(r==null?void 0:r.name)||""}</title> 112 <style> 113 body { font-family: Arial, sans-serif; display: flex; flex-direction: column; align-items: center; padding: 20mm; } 114 .label { border: 2px solid #333; border-radius: 8px; padding: 8mm; max-width: 90mm; text-align: center; } 115 .qr-img { width: 50mm; height: 50mm; } 116 .name { font-size: 14pt; font-weight: bold; margin: 4mm 0 2mm; } 117 .detail { font-size: 9pt; color: #555; line-height: 1.6; } 118 @media print { body { padding: 10mm; } } 119 </style> 120 </head> 121 <body> 122 <div class="label"> 123 <img src="data:image/png;base64,${s.qr_code_base64}" class="qr-img" /> 124 <div class="name">${(r==null?void 0:r.name)||""}</div> 125 <div class="detail"> 126 Seri No: ${(r==null?void 0:r.serial_number)||"-"}<br/> 127 Envanter: ${(r==null?void 0:r.inventory_number)||"-"}<br/> 128 Kapsam: ${s.scope_name||"-"}<br/> 129 Sonraki Muayene: ${r!=null&&r.next_inspection_date?Z(r.next_inspection_date).format("DD/MM/YYYY"):"-"} 130 </div> 131 </div> 132 <script>window.onload = () => { window.print(); }<\/script> 133 </body> 134 </html> 135 `),p.document.close())};if(i)return n.jsx("div",{style:{textAlign:"center",padding:50},children:n.jsx(mt,{size:"large"})});if(!r)return n.jsx(be,{type:"error",message:"Ekipman bulunamadi."});const h=r.documents||[];return n.jsxs("div",{children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:16,flexWrap:"wrap",gap:8},children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/equipment"),children:"Geri"}),n.jsxs(W,{wrap:!0,children:[n.jsx(Xn,{title:"QR Kodu Goruntule",children:n.jsx(T,{icon:n.jsx(Sp,{}),onClick:()=>o(!0),children:"QR Kod"})}),n.jsx(T,{icon:n.jsx(ju,{}),onClick:m,disabled:!s,children:"Etiket Yazdir"}),n.jsx(T,{icon:n.jsx(cn,{}),onClick:u,loading:c,children:"PDF Etiket"})]})]}),n.jsx(H,{title:`${r.name} (${r.serial_number||"-"})`,style:{marginBottom:16},children:n.jsxs(F,{bordered:!0,column:{xxl:2,xl:2,lg:2,md:1,sm:1,xs:1},children:[n.jsx(F.Item,{label:"Firma",children:r.company_name||"-"}),n.jsx(F.Item,{label:"Sube",children:r.branch_name||"-"}),n.jsx(F.Item,{label:"Kapsam",children:r.scope_name||"-"}),n.jsx(F.Item,{label:"Tip",children:r.equipment_type||"-"}
135),n.jsx(F.Item,{label:"Durum",children:n.jsx(ie,{color:r.status==="ACTIVE"?"success":"default",children:r.status})}),n.jsxs(F.Item,{label:"Sonraki Muayene",children:[r.next_inspection_date?Z(r.next_inspection_date).format("DD/MM/YYYY"):"-",r.is_inspection_due&&n.jsx(ie,{color:"error",style:{marginLeft:8},children:"GecikmiÅ"})]}),n.jsx(F.Item,{label:"Konum",children:r.location_detail||"-"}),n.jsx(F.Item,{label:"Envanter No",children:r.inventory_number||"-"}),n.jsx(F.Item,{label:"Marka / Model",children:`${r.brand||"-"} / ${r.model_name||"-"}`}),n.jsx(F.Item,{label:"Kapasite",children:r.capacity||"-"}),n.jsx(F.Item,{label:"Uretici",children:r.manufacturer||"-"}),n.jsx(F.Item,{label:"Uretim Yili",children:r.year_of_manufacture||"-"}),n.jsx(F.Item,{label:"Notlar",span:2,children:r.notes||"-"})]})}),s&&n.jsx(H,{title:"QR Etiket Onizleme",style:{marginBottom:16},children:n.jsxs("div",{style:{display:"flex",gap:24,alignItems:"flex-start",flexWrap:"wrap"},children:[n.jsxs("div",{style:{border:"2px solid #d9d9d9",borderRadius:8,padding:12,textAlign:"center"},children:[n.jsx("img",{src:`data:image/png;base64,${s.qr_code_base64}`,alt:"QR Kod",style:{width:160,height:160}}),n.jsx("div",{style:{marginTop:8},children:n.jsx(Ea,{type:"secondary",style:{fontSize:11},children:s.qr_url})})]}),n.jsx("div",{style:{flex:1,minWidth:200},children:n.jsxs(F,{column:1,size:"small",bordered:!0,children:[n.jsx(F.Item,{label:"Ekipman",children:s.name}),n.jsx(F.Item,{label:"Seri No",children:s.serial_number||"-"}),n.jsx(F.Item,{label:"Kapsam",children:s.scope_name||"-"}),n.jsx(F.Item,{label:"Firma",children:s.company_name||"-"}),n.jsx(F.Item,{label:"Son Muayene",children:s.last_inspection_date?Z(s.last_inspection_date).format("DD/MM/YYYY"):"-"}),n.jsx(F.Item,{label:"Sonraki Muayene",children:s.next_inspection_date?Z(s.next_inspection_date).format("DD/MM/YYYY"):"-"})]})})]})}),n.jsx(H,{title:"Belgeler",children:n.jsx(Ie,{rowKey:"id",dataSource:h,pagination:!1,locale:{emptyText:"Belge bulunamadi."},columns:[{title:"Baslik",dataIndex:"title",key:"title"},{title:"Tur",dataIndex:"document_type",key:"document_type"}
135,{title:"Dosya",dataIndex:"file",key:"file",render:p=>p?n.jsx("a",{href:p,target:"_blank",rel:"noreferrer",children:"Indir"}):"-"}]})}),n.jsx(Ve,{title:"QR Kod",open:l,onCancel:()=>o(!1),footer:[n.jsx(T,{icon:n.jsx(ju,{}),onClick:m,children:"Yazdir"},"print"),n.jsx(T,{icon:n.jsx(cn,{}),onClick:u,loading:c,children:"PDF Indir"},"pdf"),n.jsx(T,{onClick:()=>o(!1),children:"Kapat"},"close")],children:a?n.jsx("div",{style:{textAlign:"center",padding:40},children:n.jsx(mt,{})}):s?n.jsxs("div",{style:{textAlign:"center"},children:[n.jsx("img",{src:`data:image/png;base64,${s.qr_code_base64}`,alt:"QR Kod",style:{width:220,height:220}}),n.jsx(on,{}),n.jsx(Ea,{strong:!0,children:r.name}),n.jsx("br",{}),n.jsxs(Ea,{type:"secondary",children:["Seri No: ",r.serial_number||"-"]}),n.jsx("br",{}),n.jsx(Ea,{type:"secondary",style:{fontSize:11},children:s.qr_url})]}):n.jsx(be,{type:"warning",message:"QR kod verisi yuklenemedi."})})]})},WC=t=>{const e=new FormData;return Object.entries(t).forEach(([r,i])=>{if(!(i==null||i==="")){if(r==="tags"){e.append(r,JSON.stringify(i));return}e.append(r,i)}}),e},rr={getCategories:async()=>(await L.get("/document-categories/")).data.results||[],createCategory:async t=>(await L.post("/document-categories/",t)).data,updateCategory:async(t,e)=>(await L.patch(`/document-categories/${t}
135/`,e)).data,deleteCategory:async t=>{await L.delete(`/document-categories/${t}/`)},getDocuments:async t=>(await L.get("/documents/",{params:t})).data.results||[],getDocument:async t=>(await L.get(`/documents/${t}/`)).data,createDocument:async t=>(await L.post("/documents/",WC(t),{headers:{"Content-Type":"multipart/form-data"}})).data,updateDocument:async(t,e)=>(await L.patch(`/documents/${t}/`,e)).data,deleteDocument:async t=>{await L.delete(`/documents/${t}/`)},approveDocument:async t=>(await L.post(`/documents/${t}/approve/`)).data,obsoleteDocument:async t=>(await L.post(`/documents/${t}/obsolete/`)).data,uploadVersion:async(t,e,r)=>{const i=new FormData;return i.append("file",e),i.append("changelog",r),(await L.post(`/documents/${t}/upload-version/`,i,{headers:{"Content-Type":"multipart/form-data"}})).data},acknowledgeDocument:async(t,e)=>(await L.post(`/documents/${t}/acknowledge/`,e?{version_id:e}:{})).data,downloadDocument:async(t,e)=>(await L.get(`/documents/${t}/download/`,{params:e?{version_id:e}:void 0,responseType:"blob"})).data},_i=(t,e)=>{t.invalidateQueries({queryKey:["documents"]}),t.invalidateQueries({queryKey:["document-categories"]}),e&&t.invalidateQueries({queryKey:["documents",e]})},Vf=()=>Re({queryKey:["document-categories"],queryFn:rr.getCategories}),VC=t=>Re({queryKey:["documents",t],queryFn:()=>rr.getDocuments(t)}),Qf=t=>Re({queryKey:["documents",t],queryFn:()=>rr.getDocument(t),enabled:!!t}),QC=()=>{const t=ve();return ye({mutationFn:rr.createDocument,onSuccess:()=>{_i(t),re.success("Doküman oluÅturuldu.")},onError:e=>{ce(e,"Doküman oluÅturulamadı.")}})},XC=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>rr.updateDocument(e,r),onSuccess:(e,r)=>{_i(t,r.id),re.success("Doküman güncellendi.")},onError:e=>{ce(e,"Doküman güncellenemedi.")}})},ZC=()=>{const t=ve();return ye({mutationFn:rr.deleteDocument,onSuccess:()=>{_i(t),re.success("Doküman silindi.")},onError:e=>{ce(e,"Doküman silinemedi.")}})},JC=()=>{const t=ve();return ye({mutationFn:rr.approveDocument,onSuccess:(e,r)=>{_i(t,r),re.success("Doküman onaylandı.")},onError:e=>{ce(e,"Doküman onaylanamadı.")}})},e0=()=>{const t=ve();return ye({mutationFn:rr.obsoleteDocument,onSuccess:(e,r)=>{_i(t,r),re.success("Doküman yürürlükten kaldırıldı.")},onError:e=>{ce(e,"Doküman durumu güncellenemedi.")}})},t0=()=>{const t=ve();return ye({mutationFn:({id:e,file:r,changelog:i})=>rr.uploadVersion(e,r,i),onSuccess:(e,r)=>{_i(t,r.id),re.success("Yeni versiyon yüklendi.")},onError:e=>{ce(e,"Yeni versiyon yüklenemedi.")}})},n0=()=>{const t=ve();return ye({mutationFn:({id:e,versionId:r})=>rr.acknowledgeDocument(e,r),onSuccess:(e,r)=>{_i(t,r.id),re.success("Doküman okundu olarak iÅaretlendi.")},onError:e=>{ce(e,"Doküman okundu kaydı oluÅturulamadı.")}})},kc={DRAFT:"Taslak",ACTIVE:"Aktif",UNDER_REVIEW:"Gözden Geçirmede",OBSOLETE:"Yürürlükten Kalktı",ARCHIVED:"ArÅiv"},Xf={PUBLIC:"Genel",INTERNAL:"Kurum İçi",CONFIDENTIAL:"Gizli",RESTRICTED:"Kısıtlı"},{Search:r0}=G,{Text:zm}=ft,i0=[{title:"İŠEkipmanları YönetmeliÄi",summary:"Periyodik kontrol dönemleri ve EK-III rapor çerçevesi."},{title:"Elektrik Tesislerinde Topraklamalar YönetmeliÄi",summary:"Topraklama ölçümü ve sınır deÄer yorumları."},{title:"Elektrik İç Tesisleri YönetmeliÄi",summary:"İç tesisat gözle kontrol ve fonksiyon testlerinin ana referansı."},{title:"Binaların Yangından Korunması Hakkında Yönetmelik",summary:"Yangın algılama ve uyarı sistemlerinin iÅletme gereklilikleri."}],s0={DRAFT:"default",ACTIVE:"success",UNDER_REVIEW:"processing",OBSOLETE:"warning",ARCHIVED:"error"},Zf=(t,e=null)=>t.filter(r=>(r.parent||null)===e).map(r=>({key:r.id,title:r.name,children:Zf(t,r.id)})),a0=()=>{const t=Le(),[e,r]=k.useState(""),[i,s]=k.useState(null),[a,l]=k.useState(),{data:o=[]}=Vf(),{data:c=[],isLoading:d}=VC(),u=ZC(),m=He(g=>g.user),h=(m==null?void 0:m.role)==="ADMIN"||(m==null?void 0:m.role)==="MANAGER",p=k.useMemo(()=>Zf(o),[o]),y=k.useMemo(()=>c.filter(g=>{const v=!e||g.document_number.toLowerCase().includes(e.toLowerCase())||g.title.toLowerCase().includes(e.toLowerCase()),S=!i||g.category===i,R=!a||g.status===a;return v&&S&&R}),[c,e,i,a]),f=[{title:"Doküman",key:"document",render:(g,v)=>n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:600},children:v.document_number}),n.jsx(zm,{type:"secondary",children:v.title})]})},{title:"Kategori",dataIndex:"category_name",key:"category_name",render:(g,v)=>g||v.category_code||"-"},{title:"Versiyon",dataIndex:"current_version",key:"current_version",render:g=>`v${g}`},{title:"Durum",dataIndex:"status",key:"status",render:g=>
135n.jsx(ie,{color:s0[g]||"default",children:kc[g]||g})},{title:"EriÅim",dataIndex:"access_level",key:"access_level",render:g=>Xf[g]||g},{title:"Gözden Geçirme",dataIndex:"review_date",key:"review_date",render:g=>g?Z(g).format("DD.MM.YYYY"):"-"},{title:"Etiketler",dataIndex:"tags",key:"tags",render:g=>g!=null&&g.length?n.jsx(W,{size:[4,4],wrap:!0,children:g.map(v=>n.jsx(ie,{children:v},v))}):"-"},{title:"İÅlemler",key:"actions",render:(g,v)=>n.jsxs(W,{children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>t(`/documents/${v.id}`)}),h?n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>t(`/documents/${v.id}/edit`)}):null,h?n.jsx(Ot,{title:"Doküman silinsin mi?",onConfirm:()=>u.mutate(v.id),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})}):null]})}];return n.jsxs("div",{style:{display:"grid",gridTemplateColumns:"280px minmax(0, 1fr)",gap:16},children:[n.jsx(H,{title:"Kategori AÄacı",children:p.length?n.jsx(Lv,{treeData:[{key:"all",title:"Tüm Kategoriler",children:p}],defaultExpandAll:!0,selectedKeys:i?[i]:["all"],onSelect:g=>s(g[0]==="all"?null:String(g[0]))}):n.jsx(ht,{description:"Kategori bulunamadı."})}),n.jsxs(H,{title:n.jsxs(W,{children:[n.jsx(tl,{}),n.jsx("span",{children:"Dokümanlar ve Mevzuat"})]}),extra:h?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>t("/documents/new"),style:{background:"#1B5E8C"},children:"Yeni Doküman"}):null,children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Doküman ekranında güncelleme ve mevzuat takibi birlikte yönetilir.",description:"Versiyon yükleyerek doküman güncellemesi yapabilir, alttaki mevzuat kartlarından kalite ve raporlama akıÅında baz aldıÄımız ana yönetmelikleri takip edebilirsiniz."}),n.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:12,marginBottom:16},children:i0.map(g=>n.jsxs(H,{size:"small",children:[n.jsx("div",{style:{fontWeight:600,marginBottom:4},children:g.title}),n.jsx(zm,{type:"secondary",children:g.summary})]},g.title))}),n.jsxs(W,{style:{marginBottom:16},wrap:!0,children:[n.jsx(r0,{allowClear:!0,placeholder:"Doküman no veya baÅlık ara",style:{width:280},onSearch:r,onChange:g=>r(g.target.value)}),n.jsx(pe,{allowClear:!0,placeholder:"Durum filtresi",style:{width:220},value:a,onChange:g=>l(g),options:Object.entries(kc).map(([g,v])=>({value:g,label:v}))})]}),n.jsx(Ie,{rowKey:"id",loading:d,dataSource:y,columns:f})]})]})},{TextArea:Om}=G,Lm=()=>{const{id:t}=jt(),[e]=x.useForm(),r=Le(),i=!!(t&&t!=="new"),{data:s=[]}=Vf(),{data:a,isLoading:l}=Qf(i&&t||""),o=QC(),c=XC(),[d,u]=k.useState(null);k.useEffect(()=>{var y;!a||!i||e.setFieldsValue({...a,effective_date:a.effective_date?Z(a.effective_date):null,review_date:a.review_date?Z(a.review_date):null,tags_text:(y=a.tags)==null?void 0:y.join(", ")})},[a,e,i]);const m=k.useMemo(()=>[{label:"Taslak",value:"DRAFT"},{label:"Aktif",value:"ACTIVE"},{label:"Gözden Geçirmede",value:"UNDER_REVIEW"},{label:"Yürürlükten Kalktı",value:"OBSOLETE"},{label:"ArÅiv",value:"ARCHIVED"}],[]),h=k.useMemo(()=>[{label:"Genel",value:"PUBLIC"},{label:"Kurum İçi",value:"INTERNAL"},{label:"Gizli",value:"CONFIDENTIAL"},{label:"Kısıtlı",value:"RESTRICTED"}],[]),p=async y=>{const f={...y,effective_date:y.effective_date?y.effective_date.format("YYYY-MM-DD"):null,review_date:y.review_date?y.review_date.format("YYYY-MM-DD"):null,tags:y.tags_text?String(y.tags_text).split(",").map(g=>g.trim()).filter(Boolean):[]};if(delete f.tags_text,i&&t){await c.mutateAsync({id:t,data:f}),r(`/documents/${t}`);return}await o.mutateAsync({...f,initial_file:d,initial_changelog:y.initial_changelog||""}),r("/documents")};return n.jsx(H,{title:i?"Dokümanı Düzenle":"Yeni Doküman",loading:l,children:n.jsxs(x,{form:e,layout:"vertical",initialValues:{status:"DRAFT",access_level:"INTERNAL",is_controlled:!0},onFinish:p,children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"title",label:"BaÅlık",rules:[{required:!0,message:"BaÅlık zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"category",label:"Kategori",rules:[{required:!0,message:"Kategori seçin."}],children:n.jsx(pe,{options:s.map(y=>({label:`${y.code} - ${y.name}`,value:y.id}))})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"status",label:"Durum",children:n.jsx(pe,{options:m})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"access_level",label:"EriÅim",children:n.jsx(pe,{options:h})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"is_controlled",label:"Kontrollü Kopya",valuePropName:"checked",children:n.jsx(Tt,{})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"effective_date",label:"Yürürlük Tarihi",children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"review_date",label:"Gözden Geçirme Tarihi",children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})})})]}),n.jsx(x.Item,{name:"tags_text",label:"Etiketler",children:n.jsx(G,{placeholder:"ISO17020, prosedür, elektrik"})}),n.jsx(x.Item,{name:"description",label:"Açıklama",children:n.jsx(Om,{rows:4})}),i?null:n.jsxs(n.Fragment,{children:[n.jsx(x.Item,{name:"initial_file",label:"İlk Versiyon Dosyası",rules:[{required:!0,message:"İlk versiyon dosyası zorunludur."}],children:n.jsx(An,{beforeUpload:y=>(u(y),e.setFieldValue("initial_file",y.name),!1),maxCount:1,onRemove:()=>{u(null),e.setFieldValue("initial_file",void 0)},children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"Dosya Seç"})})}),n.jsx(x.Item,{name:"initial_changelog",label:"İlk Versiyon Açıklaması",children:n.jsx(Om,{rows:3})})]}),n.jsx(x.Item,{children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",loading:o.isPending||c.isPending,children:"Kaydet"}),n.jsx(T,{onClick:()=>r(i&&t?`/documents/${t}`:"/documents"),children:"İptal"})]})})]})})},{Paragraph:l0,Text:o0,Title:c0}=ft,d0={DRAFT:"default",ACTIVE:"success",UNDER_REVIEW:"processing",OBSOLETE:"warning",ARCHIVED:"error"},u0=()=>{const{id:t}=jt(),e=Le(),{data:r,isLoading:i}=Qf(t||""),s=JC(),a=e0(),l=n0(),o=t0(),c=He(z=>z.user),d=(c==null?void 0:c.role)==="ADMIN"||(c==null?void 0:c.role)==="MANAGER",[u,m]=k.useState(!1),[h,p]=k.useState(null),[y,f]=k.useState(""),g=async z=>{if(!t)return;const P=await rr.downloadDocument(t,z),U=window.URL.createObjectURL(P),A=window.document.createElement("a");A.href=U,A.download=`${(r==null?void 0:r.document_number)||"document"}.bin`,A.click(),window.URL.revokeObjectURL(U)},v=async()=>
135{if(!t||!h){re.warning("Yeni versiyon dosyası seçin.");return}await o.mutateAsync({id:t,file:h,changelog:y}),m(!1),p(null),f("")},S=[{title:"Versiyon",dataIndex:"version_number",key:"version_number",render:z=>`v${z}`},{title:"Dosya Tipi",dataIndex:"file_type",key:"file_type",render:z=>z||"-"},{title:"Boyut",dataIndex:"file_size",key:"file_size",render:z=>`${(z/1024).toFixed(1)} KB`},{title:"Yükleyen",dataIndex:"uploaded_by_name",key:"uploaded_by_name",render:z=>z||"-"},{title:"Yüklenme",dataIndex:"uploaded_at",key:"uploaded_at",render:z=>Z(z).format("DD.MM.YYYY HH:mm")},{title:"Açıklama",dataIndex:"changelog",key:"changelog",render:z=>z||"-"},{title:"İÅlem",key:"actions",render:(z,P)=>n.jsxs(W,{children:[n.jsx(T,{type:"text",icon:n.jsx(Fv,{}),onClick:()=>g(P.id)}),n.jsx(T,{type:"text",icon:n.jsx(ku,{}),onClick:()=>l.mutate({id:t||"",versionId:P.id})})]})}],R=[{title:"Kullanıcı",dataIndex:"read_by_name",key:"read_by_name",render:z=>z||"-"},{title:"Versiyon",dataIndex:"version_number",key:"version_number",render:z=>`v${z}`},{title:"Okuma Tarihi",dataIndex:"read_at",key:"read_at",render:z=>Z(z).format("DD.MM.YYYY HH:mm")},{title:"Onay",dataIndex:"acknowledged",key:"acknowledged",render:z=>n.jsx(ie,{color:z?"success":"default",children:z?"Okudum":"İndirildi"})}];return n.jsxs(n.Fragment,{children:[n.jsx(H,{title:"Doküman Detayı",loading:i,extra:n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx($t,{}),onClick:()=>g(),children:"Son Versiyonu İndir"}),n.jsx(T,{icon:n.jsx(ku,{}),onClick:()=>l.mutate({id:t||""}),children:"Okudum Onayı Ver"}),d?n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>e(`/documents/${t}/edit`),children:"Düzenle"}):null,d?n.jsx(T,{icon:n.jsx(Kn,{}),type:"primary",onClick:()=>m(!0),children:"Versiyon Güncelle"}):null]}),children:r?n.jsxs(W,{direction:"vertical",style:{width:"100%"},size:16,children:[n.jsx(be,{type:"info",showIcon:!0,message:"Doküman güncellemeleri versiyon mantıÄıyla takip edilir.",description:"Ãzellikle mevzuat dokümanlarında yeni dosya yüklediÄinizde versiyon geçmiÅi ve okuma onayları korunur."}),n.jsxs("div",{children:[n.jsx(c0,{level:3,style:{marginBottom:8},children:r.document_number}),n.jsx(o0,{type:"secondary",children:r.title})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(ie,{color:d0[r.status]||"default",children:kc[r.status]||r.status}),n.jsx(ie,{children:Xf[r.access_level]||r.access_level}),n.jsx(ie,{color:r.is_controlled?"blue":"default",children:r.is_controlled?"Kontrollü":"Kontrolsüz"}),(r.tags||[]).map(z=>n.jsx(ie,{children:z},z))]}),n.jsxs(F,{bordered:!0,column:{xxl:2,xl:2,lg:2,md:1,sm:1,xs:1},children:[n.jsx(F.Item,{label:"Kategori",children:r.category_name||"-"}),n.jsxs(F.Item,{label:"Güncel Versiyon",children:["v",r.current_version]}),n.jsx(F.Item,{label:"Hazırlayan",children:r.prepared_by_name||"-"}),n.jsx(F.Item,{label:"Onaylayan",children:r.approved_by_name||"-"}),n.jsx(F.Item,{label:"Yürürlük Tarihi",children:r.effective_date?Z(r.effective_date).format("DD.MM.YYYY"):"-"}),n.jsx(F.Item,{label:"Gözden Geçirme Tarihi",children:r.review_date?Z(r.review_date).format("DD.MM.YYYY"):"-"}),n.jsx(F.Item,{label:"Onay Tarihi",children:r.approved_at?Z(r.approved_at).format("DD.MM.YYYY HH:mm"):"-"}),n.jsx(F.Item,{label:"Son Güncelleme",children:Z(r.updated_at).format("DD.MM.YYYY HH:mm")})]}),n.jsx(H,{size:"small",title:"Açıklama",children:n.jsx(l0,{style:{marginBottom:0},children:r.description||"Açıklama girilmedi."})}),d?n.jsxs(W,{children:[n.jsx(T,{type:"primary",onClick:()=>s.mutate(t||""),disabled:!["DRAFT","UNDER_REVIEW"].includes(r.status),children:"Onayla"}),n.jsx(T,{danger:!0,onClick:()=>a.mutate(t||""),disabled:r.status!=="ACTIVE",children:"Yürürlükten Kaldır"})]}):null,n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:14,children:n.jsx(H,{title:"Versiyon GeçmiÅi",children:n.jsx(Ie,{rowKey:"id",dataSource:r.versions||[],columns:S,pagination:!1,locale:{emptyText:"Versiyon bulunamadı."}})})}),n.jsx(C,{span:10,children:n.jsx(H,{title:"Okunma Logları",children:n.jsx(Ie,{rowKey:"id",dataSource:r.read_logs||[],columns:R,pagination:!1,locale:{emptyText:"Okunma kaydı bulunamadı."}})})})]})]}):n.jsx(ht,{description:"Doküman bulunamadı."})}),n.jsx(Ve,{title:"Doküman Versiyonunu Güncelle",open:u,onCancel:()=>{m(!1),p(null),f("")},onOk:v,okText:"Yükle",confirmLoading:o.isPending,children:n.jsxs(W,{direction:"vertical",style:{width:"100%"},children:[n.jsx(An,{beforeUpload:z=>(p(z),!1),onRemove:()=>p(null),maxCount:1,children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"Versiyon Dosyası Seç"})}),n.jsx(G.TextArea,{rows:4,placeholder:"Bu versiyonda ne deÄiÅti?",value:y,onChange:z=>f(z.target.value)})]})})]})},Xt={getFeedbackList:async t=>(await L.get("/feedback/",{params:t})).data.results||[],getFeedback:async t=>(await L.get(`/feedback/${t}/`)).data,createFeedback:async t=>(await L.post("/feedback/",t)).data,updateFeedback:async(t,e)=>(await L.patch(`/feedback/${t}/`,e)).data,deleteFeedback:async t=>{await L.delete(`/feedback/${t}/`)},transitionFeedback:async(t,e)=>(await L.post(`/feedback/${t}/transition/`,e)).data,openCorrectiveAction:async(t,e)=>(await L.post(`/feedback/${t}/open-car/`,e)).data,getStatistics:async()=>(await L.get("/feedback/statistics/")).data,getCorrectiveActions:async t=>(await L.get("/corrective-actions/",{params:t})).data.results||[],getCorrectiveAction:async t=>(await L.get(`/corrective-actions/${t}/`)).data,createCorrectiveAction:async t=>(await L.post("/corrective-actions/",t)).data,updateCorrectiveAction:async(t,e)=>(await L.patch(`/corrective-actions/${t}/`,e)).data,deleteCorrectiveAction:async t=>{await L.delete(`/corrective-actions/${t}/`)},transitionCorrectiveAction:async(t,e)=>(await L.post(`/corrective-actions/${t}/transition/`,e)).data,verifyCorrectiveAction:async(t,e)=>(await L.post(`/corrective-actions/${t}/verify/`,e)).data,getSurveys:async t=>(await L.get("/surveys/",{params:t})).data.results||[],createSurvey:async t=>(await L.post("/surveys/",t)).data,updateSurvey:async(t,e)=>(await L.patch(`/surveys/${t}/`,e)).data,deleteSurvey:async t=>{await L.delete(`/surveys/${t}/`)}},ir=(t,e,r)=>{t.invalidateQueries({queryKey:["feedback-list"]}),t.invalidateQueries({queryKey:["feedback-statistics"]}),t.invalidateQueries({queryKey:["corrective-action-list"]}),t.invalidateQueries({queryKey:["survey-list"]}),e&&t.invalidateQueries({queryKey:["feedback",e]}),r&&t.invalidateQueries({queryKey:["corrective-action",r]})},m0=t=>Re({queryKey:["feedback-list",t],queryFn:()=>Xt.getFeedbackList(t)}),Jf=t=>Re({queryKey:["feedback",t],queryFn:()=>Xt.getFeedback(t),enabled:!!t}),gd=()=>Re({queryKey:["feedback-statistics"],queryFn:Xt.getStatistics}),h0=()=>{const t=ve();return ye({mutationFn:e=>Xt.createFeedback(e),onSuccess:()=>{ir(t),re.success("Geri bildirim oluÅturuldu.")},onError:e=>{ce(e,"Geri bildirim oluÅturulamadı.")}})},p0=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Xt.updateFeedback(e,r),onSuccess:(e,r)=>{ir(t,r.id),re.success("Geri bildirim güncellendi.")},onError:e=>{ce(e,"Geri bildirim güncellenemedi.")}})},f0=()=>{const t=ve();return ye({mutationFn:Xt.deleteFeedback,onSuccess:()=>{ir(t),re.success("Geri bildirim silindi.")},onError:e=>{ce(e,"Geri bildirim silinemedi.")}})},g0=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Xt.transitionFeedback(e,r),onSuccess:(e,r)=>{ir(t,r.id),re.success("Geri bildirim durumu güncellendi.")},onError:e=>{ce(e,"Geri bildirim durumu güncellenemedi.")}})},y0=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Xt.openCorrectiveAction(e,r),onSuccess:(e,r)=>{ir(t,r.id),re.success("DÃF kaydı oluÅturuldu.")},onError:e=>{ce(e,"DÃF kaydı oluÅturulamadı.")}})},x0=t=>Re({queryKey:["corrective-action-list",t],queryFn:()=>Xt.getCorrectiveActions(t)}),v0=t=>Re({queryKey:["corrective-action",t],queryFn:()=>Xt.getCorrectiveAction(t),enabled:!!t}),b0=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Xt.updateCorrectiveAction(e,r),onSuccess:(e,r)=>{ir(t,e.feedback||void 0,r.id),re.success("DÃF kaydı güncellendi.")},onError:e=>{ce(e,"DÃF kaydı güncellenemedi.")}})},_0=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Xt.transitionCorrectiveAction(e,r),onSuccess:(e,r)=>{ir(t,e.feedback||void 0,r.id),re.success("DÃF durumu güncellendi.")},onError:e=>{ce(e,"DÃF durumu güncellenemedi.")}})},j0=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Xt.verifyCorrectiveAction(e,r),onSuccess:(e,r)=>{ir(t,e.feedback||void 0,r.id),re.success("Etkinlik doÄrulaması kaydedildi.")},onError:e=>{ce(e,"DoÄrulama kaydı oluÅturulamadı.")}})},k0=t=>Re({queryKey:["survey-list",t],queryFn:()=>Xt.getSurveys(t)}),S0=()=>{const t=ve();return ye({mutationFn:e=>Xt.createSurvey(e),onSuccess:()=>{ir(t),re.success("Anket kaydı oluÅturuldu.")},onError:e=>{ce(e,"Anket kaydı oluÅturulamadı.")}})},E0=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>Xt.updateSurvey(e,r),onSuccess:()=>{ir(t),re.success("Anket kaydı güncellendi.")},onError:e=>{ce(e,"Anket kaydı güncellenemedi.")}})},w0=()=>{const t=ve();return ye({mutationFn:Xt.deleteSurvey,onSuccess:()=>{ir(t),re.success("Anket kaydı silindi.")},onError:e=>{ce(e,"Anket kaydı silinemedi.")}})},hl={COMPLAINT:"Åikayet",SUGGESTION:"Ãneri",APPRECIATION:"TeÅekkür",INTERNAL_AUDIT:"İç Denetim",NONCONFORMITY:"Uygunsuzluk"},eg={CUSTOMER:"MüÅteri",EMPLOYEE:"ÃalıÅan",AUDIT:"Denetim",MANAGEMENT_REVIEW:"YGG",EXTERNAL:"Harici"},yd={LOW:"DüÅük",MEDIUM:"Orta",HIGH:"Yüksek",CRITICAL:"Kritik"},tg={LOW:"default",MEDIUM:"blue",HIGH:"orange",CRITICAL:"red"},Ps={NEW:"Yeni",UNDER_INVESTIGATION:"İncelemede",CAR_OPENED:"DÃF Açıldı",RESOLVED:"Ãözüldü",CLOSED:"Kapatıldı"},ng={NEW:"default",UNDER_INVESTIGATION:"processing",CAR_OPENED:"warning",RESOLVED:"success",CLOSED:"purple"},zs={CORRECTIVE:"Düzeltici",PREVENTIVE:"Ãnleyici",IMPROVEMENT:"İyileÅtirme"},rg={FIVE_WHY:"5 Neden",FISHBONE:"Balık KılçıÄı",PARETO:"Pareto",OTHER:"DiÄer"},xd={OPEN:"Açık",IN_PROGRESS:"Devam Ediyor",COMPLETED:"Tamamlandı",VERIFIED:"DoÄrulandı",CLOSED:"Kapatıldı"},vd={OPEN:"default",IN_PROGRESS:"processing",COMPLETED:"warning",VERIFIED:"success",CLOSED:"purple"},Fm={CUSTOMER_FORM:"MüÅteri Formu",EMAIL:"E-Posta",PHONE:"Telefon",WHATSAPP:"WhatsApp",ONSITE:"Saha / Yüz Yüze"},{Search:C0}=G,D0=()=>{const t=Le(),e=He(f=>f.user),r=["ADMIN","MANAGER"].includes((e==null?void 0:e.role)||""),{data:i=[],isLoading:s}=m0(),{data:a}=gd(),l=f0(),[o,c]=k.useState(""),[d,u]=k.useState(),[m,h]=k.useState(),p=k.useMemo(()=>i.filter(f=>{const g=o.toLowerCase(),v=!g||f.feedback_number.toLowerCase().includes(g)||f.subject.toLowerCase().includes(g)||(f.company_name||"").toLowerCase().includes(g),S=!d||f.feedback_type===d,R=!m||f.status===m;return v&&S&&R}),[i,o,d,m]),y=[{title:"Kayıt",key:"feedback",render:(f,g)=>n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:600},children:g.feedback_number}),n.jsx("div",{style:{color:"#8c8c8c"},children:g.subject})]})},{title:"Firma",dataIndex:"company_name",key:"company_name",render:f=>f||"-"},{title:"Tip",dataIndex:"feedback_type",key:"feedback_type",render:f=>hl[f]||f},{title:"Ãncelik",dataIndex:"priority",key:"priority",render:f=>
135n.jsx(ie,{color:tg[f]||"default",children:yd[f]||f})},{title:"Durum",dataIndex:"status",key:"status",render:f=>n.jsx(ie,{color:ng[f]||"default",children:Ps[f]||f})},{title:"Atanan",dataIndex:"assigned_to_name",key:"assigned_to_name",render:f=>f||"-"},{title:"DÃF",dataIndex:"corrective_action_count",key:"corrective_action_count",render:f=>f??0},{title:"Tarih",dataIndex:"created_at",key:"created_at",render:f=>Z(f).format("DD.MM.YYYY HH:mm")},{title:"İÅlemler",key:"actions",render:(f,g)=>n.jsxs(W,{children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>t(`/feedback/${g.id}`)}),n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>t(`/feedback/${g.id}/edit`)}),r?n.jsx(Ot,{title:"Geri bildirim silinsin mi?",onConfirm:()=>l.mutate(g.id),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})}):null]})}];return n.jsx(H,{title:n.jsxs(W,{children:[n.jsx(Wc,{}),n.jsx("span",{children:"Geri Bildirimler"})]}),extra:n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{background:"#1B5E8C"},onClick:()=>t("/feedback/new"),children:"Yeni Kayıt"}),children:n.jsxs(W,{direction:"vertical",size:16,style:{width:"100%"},children:[n.jsx(be,{type:"info",showIcon:!0,message:"DÃF, Düzeltici Ãnleyici Faaliyet anlamına gelir.",description:"MüÅteri Åikayeti, uygunsuzluk veya denetim bulgusundan sonra açılan kök neden, aksiyon, doÄrulama ve kapanıŠkaydıdır. Bu nedenle kaldırmıyor; açıklamasını görünür hale getiriyoruz."}),n.jsxs(W,{wrap:!0,children:[n.jsx(Ee,{title:"Toplam",value:(a==null?void 0:a.feedback_totals.total)||0}),n.jsx(Ee,{title:"Åikayet",value:(a==null?void 0:a.feedback_totals.by_type.COMPLAINT)||0}),n.jsx(Ee,{title:"Açık DÃF",value:(a==null?void 0:a.corrective_actions.total)||0}),n.jsx(Ee,{title:"Geciken DÃF",value:(a==null?void 0:a.corrective_actions.overdue)||0})]}),n.jsxs(W,{wrap:!0,style:{width:"100%",justifyContent:"space-between"},children:[n.jsx(C0,{allowClear:!0,placeholder:"Kayıt no, konu veya firma",style:{width:320},onChange:f=>c(f.target.value)}),n.jsxs(W,{wrap:!0,children:[n.jsx(pe,{allowClear:!0,placeholder:"Tip",style:{width:180},value:d,onChange:u,options:Object.entries(hl).map(([f,g])=>({value:f,label:g}))}),n.jsx(pe,{allowClear:!0,placeholder:"Durum",style:{width:180},value:m,onChange:h,options:Object.entries(Ps).map(([f,g])=>({value:f,label:g}))})]})]}),n.jsx(Ie,{rowKey:"id",columns:y,dataSource:p,loading:s||l.isPending})]})})},R0={getUsers:async()=>(await L.get("/auth/users/")).data.results||[]},ea=()=>Re({queryKey:["users"],queryFn:R0.getUsers}),{TextArea:Bm}=G,Ym=()=>{const{id:t}=jt(),e=Le(),[r]=x.useForm(),i=!!(t&&t!=="new"),{data:s,isLoading:a}=Jf(i&&t||""),{data:l=[]}=tr(),{data:o=[]}=Nl(),{data:c=[]}=Xs(),{data:d=[]}=ea(),u=h0(),m=p0();k.useEffect(()=>{!s||!i||r.setFieldsValue({...s,attachments:s.attachments||[]})},[s,r,i]);const h=async p=>{const y={...p,attachments:p.attachments||[]};if(i&&t){await m.mutateAsync({id:t,data:y}),e(`/feedback/${t}`);return}const f=await u.mutateAsync(y);e(`/feedback/${f.id}`)};return n.jsx(H,{title:i?"Geri Bildirimi Düzenle":"Yeni Geri Bildirim",loading:a,children:n.jsxs(x,{form:r,layout:"vertical",initialValues:{feedback_type:"COMPLAINT",source:"CUSTOMER",priority:"MEDIUM",status:"NEW"},onFinish:h,children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"feedback_type",label:"Tip",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(hl).map(([p,y])=>({value:p,label:y}))})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"source",label:"Kaynak",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(eg).map(([p,y])=>({value:p,label:y}))})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"priority",label:"Ãncelik",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(yd).map(([p,y])=>({value:p,label:y}))})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"company",label:"Firma",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",options:l.map(p=>({value:p.id,label:p.name}))})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"assigned_to",label:"Atanan Kullanıcı",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",options:d.map(p=>({value:p.id,label:p.full_name||p.email}))})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"related_service",label:"İlgili Hizmet",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",options:c.map(p=>({value:p.id,label:`${p.service_number} - ${p.company_name}`}))})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"related_report",label:"İlgili Rapor",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",options:o.map(p=>({value:p.id,label:`${p.report_number} - ${p.company_name||""}`}))})})})]}),n.jsx(x.Item,{name:"subject",label:"Konu",rules:[{required:!0,message:"Konu zorunludur."}],children:n.jsx(G,{})}),n.jsx(x.Item,{name:"description",label:"Açıklama",rules:[{required:!0,message:"Açıklama zorunludur."}],children:n.jsx(Bm,{rows:5})}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"status",label:"Durum",children:n.jsx(pe,{options:Object.entries(Ps).map(([p,y])=>({value:p,label:y}))})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"attachments",label:"Ek URL'leri",children:n.jsx(pe,{mode:"tags",tokenSeparators:[","],placeholder:"https://... veya /media/..."})})})]}),n.jsx(x.Item,{name:"resolution",label:"Ãözüm",children:n.jsx(Bm,{rows:3})}),n.jsx(x.Item,{children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",loading:u.isPending||m.isPending,children:"Kaydet"}),n.jsx(T,{onClick:()=>e(i&&t?`/feedback/${t}`:"/feedback"),children:"İptal"})]})})]})})},{TextArea:To}=G,I0=()=>{const{id:t}=jt(),e=Le(),{data:r,isLoading:i}=Jf(t||""),{data:s=[]}=ea(),a=g0(),l=y0(),[o,c]=k.useState(!1),[d]=x.useForm(),[u,m]=k.useState(!1),[h]=x.useForm();if(i)return n.jsx("div",{style:{textAlign:"center",padding:64},children:n.jsx(mt,{size:"large"})});if(k.useEffect(()=>{r&&d.setFieldsValue({status:r.status,resolution:r.resolution,assigned_to:r.assigned_to||void 0})},[r,d]),!r)return n.jsx(be,{type:"error",message:"Geri bildirim kaydı bulunamadı."});const p=["UNDER_INVESTIGATION","RESOLVED","CLOSED"];return n.jsxs(n.Fragment,{children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:16},children:[n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/feedback"),children:"Geri"}),n.jsxs("div",{style:{fontSize:18,fontWeight:600}
135,children:[r.feedback_number,n.jsx(ie,{color:ng[r.status]||"default",style:{marginLeft:8},children:Ps[r.status]||r.status})]})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>e(`/feedback/${r.id}/edit`),children:"Düzenle"}),n.jsx(T,{onClick:()=>c(!0),children:"Durum Güncelle"}),n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{background:"#1B5E8C"},onClick:()=>m(!0),children:"DÃF Aç"})]})]}),n.jsx(H,{style:{marginBottom:24},children:n.jsxs(F,{bordered:!0,column:{xxl:2,xl:2,lg:2,md:1,sm:1,xs:1},children:[n.jsx(F.Item,{label:"Tip",children:hl[r.feedback_type]||r.feedback_type}),n.jsx(F.Item,{label:"Kaynak",children:eg[r.source]||r.source}),n.jsx(F.Item,{label:"Firma",children:r.company_name||"-"}),n.jsx(F.Item,{label:"Ãncelik",children:n.jsx(ie,{color:tg[r.priority]||"default",children:yd[r.priority]||r.priority})}),n.jsx(F.Item,{label:"Atanan",children:r.assigned_to_name||"-"}),n.jsx(F.Item,{label:"OluÅturan",children:r.created_by_name||"-"}),n.jsx(F.Item,{label:"İlgili Hizmet",children:r.related_service_number||"-"}),n.jsx(F.Item,{label:"İlgili Rapor",children:r.related_report_number||"-"}),n.jsx(F.Item,{label:"Konu",span:2,children:r.subject}),n.jsx(F.Item,{label:"Açıklama",span:2,children:r.description||"-"}),n.jsx(F.Item,{label:"Ãözüm",span:2,children:r.resolution||"-"}),n.jsx(F.Item,{label:"Ãözüldü",children:r.resolved_at?Z(r.resolved_at).format("DD.MM.YYYY HH:mm"):"-"}),n.jsx(F.Item,{label:"Kapandı",children:r.closed_at?Z(r.closed_at).format("DD.MM.YYYY HH:mm"):"-"}),n.jsx(F.Item,{label:"Ekler",span:2,children:(r.attachments||[]).length?n.jsx(W,{wrap:!0,children:(r.attachments||[]).map(y=>n.jsx(T,{type:"link",href:y,target:"_blank",icon:n.jsx($t,{}),children:y.split("/").pop()},y))}):"-"})]})}),n.jsx(H,{title:"BaÄlı DÃF Kayıtları",children:n.jsx(Ie,{rowKey:"id",dataSource:r.corrective_actions||[],pagination:!1,locale:{emptyText:"Henüz DÃF kaydı yok."},columns:[{title:"DÃF No",dataIndex:"car_number",key:"car_number"},{title:"Tip",dataIndex:"action_type",key:"action_type",render:y=>zs[y]||y},{title:"Sorumlu",dataIndex:"responsible_name",key:"responsible_name",render:y=>y||"-"},{title:"Hedef",dataIndex:"target_date",key:"target_date",render:y=>Z(y).format("DD.MM.YYYY")},{title:"Durum",dataIndex:"status",key:"status",render:y=>n.jsx(ie,{color:vd[y]||"default",children:xd[y]||y})},{title:"İÅlem",key:"actions",render:(y,f)=>n.jsx(T,{type:"link",onClick:()=>e(`/corrective-actions/${f.id}`),children:"Detay"})}]})}),n.jsx(Ve,{title:"Geri Bildirim Durumu",open:o,onCancel:()=>c(!1),onOk:()=>d.validateFields().then(y=>a.mutate({id:r.id,data:y},{onSuccess:()=>c(!1)})),okButtonProps:{loading:a.isPending},okText:"Güncelle",children:n.jsxs(x,{form:d,layout:"vertical",initialValues:{status:r.status,resolution:r.resolution,assigned_to:r.assigned_to||void 0},children:[n.jsx(x.Item,{name:"status",label:"Durum",rules:[{required:!0}],children:n.jsx(pe,{options:p.map(y=>({value:y,label:Ps[y]}))})}),n.jsx(x.Item,{name:"assigned_to",label:"Atanan Kullanıcı",children:n.jsx(pe,{allowClear:!0,options:s.map(y=>({value:y.id,label:y.full_name||y.email}))})}),n.jsx(x.Item,{name:"resolution",label:"Ãözüm",children:n.jsx(To,{rows:4})})]})}),n.jsx(Ve,{title:"DÃF BaÅlat",open:u,onCancel:()=>m(!1),onOk:()=>h.validateFields().then(y=>l.mutate({id:r.id,data:{...y,target_date:y.target_date.format("YYYY-MM-DD")}},{onSuccess:f=>{m(!1),e(`/corrective-actions/${f.id}`)}})),okButtonProps:{loading:l.isPending},okText:"OluÅtur",children:n.jsxs(x,{form:h,layout:"vertical",initialValues:{action_type:"CORRECTIVE",root_cause_method:"FIVE_WHY"},children:[n.jsx(x.Item,{name:"action_type",label:"Faaliyet Tipi",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(zs).map(([y,f])=>({value:y,label:f}))})}),n.jsx(x.Item,{name:"root_cause_method",label:"Kök Neden Yöntemi",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(rg).map(([y,f])=>({value:y,label:f}))})}),n.jsx(x.Item,{name:"responsible",label:"Sorumlu",rules:[{required:!0}],children:n.jsx(pe,{options:s.map(y=>({value:y.id,label:y.full_name||y.email}))})}),n.jsx(x.Item,{name:"target_date",label:"Hedef Tarih",rules:[{required:!0}],children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})}),n.jsx(x.Item,{name:"root_cause",label:"Kök Neden",children:n.jsx(To,{rows:3})}),n.jsx(x.Item,{name:"planned_action",label:"Planlanan Faaliyet",children:n.jsx(To,{rows:3})})]})})]})},{Search:T0}=G,A0=()=>{const t=Le(),{data:e=[],isLoading:r}=x0(),{data:i}=gd(),[s,a]=k.useState(""),l=k.useMemo(()=>e.filter(c=>{const d=s.toLowerCase();return!d||c.car_number.toLowerCase().includes(d)||(c.feedback_subject||"").toLowerCase().includes(d)||(c.responsible_name||"").toLowerCase().includes(d)}),[e,s]),o=[{title:"DÃF No",dataIndex:"car_number",key:"car_number"},{title:"Geri Bildirim",key:"feedback",render:(c,d)=>n.jsxs("div",{children:[n.jsx("div",{children:d.feedback_number||"-"}),n.jsx("div",{style:{color:"#8c8c8c"},children:d.feedback_subject||"-"})]})},{title:"Tip",dataIndex:"action_type",key:"action_type",render:c=>zs[c]||c},{title:"Sorumlu",dataIndex:"responsible_name",key:"responsible_name",render:c=>c||"-"},{title:"Hedef",dataIndex:"target_date",key:"target_date",render:c=>Z(c).format("DD.MM.YYYY")},{title:"Durum",dataIndex:"status",key:"status",render:(c,d)=>
135n.jsxs(W,{children:[n.jsx(ie,{color:vd[c]||"default",children:xd[c]||c}),d.is_overdue?n.jsx(ie,{color:"red",children:"GecikmiÅ"}):null]})},{title:"İÅlem",key:"actions",render:(c,d)=>n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>t(`/corrective-actions/${d.id}`)})}];return n.jsx(H,{title:n.jsxs(W,{children:[n.jsx(hp,{}),n.jsx("span",{children:"DÃF Kayıtları"})]}),children:n.jsxs(W,{direction:"vertical",size:16,style:{width:"100%"},children:[n.jsx(be,{type:"info",showIcon:!0,message:"DÃF = Düzeltici Ãnleyici Faaliyet",description:"Açılan her kayıt uygunsuzluÄu gidermek, tekrarını önlemek ve etkinliÄi doÄrulamak için izlenir."}),n.jsxs(W,{wrap:!0,children:[n.jsx(Ee,{title:"Toplam DÃF",value:(i==null?void 0:i.corrective_actions.total)||0}),n.jsx(Ee,{title:"Geciken",value:(i==null?void 0:i.corrective_actions.overdue)||0}),n.jsx(Ee,{title:"DoÄrulanan",value:(i==null?void 0:i.corrective_actions.by_status.VERIFIED)||0})]}),n.jsx(T0,{allowClear:!0,placeholder:"DÃF no, konu veya sorumlu",style:{width:320},onChange:c=>a(c.target.value)}),n.jsx(Ie,{rowKey:"id",columns:o,dataSource:l,loading:r})]})})},{TextArea:wa}=G,M0=()=>{const{id:t}=jt(),e=Le(),[r]=x.useForm(),{data:i,isLoading:s}=v0(t||""),{data:a=[]}=ea(),l=b0(),o=_0(),c=j0(),[d,u]=k.useState(!1),[m]=x.useForm();if(k.useEffect(()=>{i&&r.setFieldsValue({...i,target_date:i.target_date?Z(i.target_date):null})},[i,r]),s)return n.jsx("div",{style:{textAlign:"center",padding:64},children:n.jsx(mt,{size:"large"})});if(!i)return n.jsx(be,{type:"error",message:"DÃF kaydı bulunamadı."});const h=async f=>{await l.mutateAsync({id:i.id,data:{...f,target_date:f.target_date.format("YYYY-MM-DD")}})},p=async()=>{const f=r.getFieldValue("actual_action");await o.mutateAsync({id:i.id,data:{status:"COMPLETED",actual_action:f}})},y=async()=>{await o.mutateAsync({id:i.id,data:{status:"CLOSED"}})};return n.jsxs(n.Fragment,{children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:16},children:[n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/corrective-actions"),children:"Geri"}),n.jsxs("div",{style:{fontSize:18,fontWeight:600},children:[i.car_number,n.jsx(ie,{color:vd[i.status]||"default",style:{marginLeft:8},children:xd[i.status]||i.status})]})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{onClick:()=>o.mutate({id:i.id,data:{status:"IN_PROGRESS"}}),children:"ÃalıÅmaya Al"}),n.jsx(T,{onClick:p,loading:o.isPending,children:"Tamamlandı"}),n.jsx(T,{type:"primary",icon:n.jsx(Dn,{}),style:{background:"#237804"},onClick:()=>u(!0),children:"Etkinlik DoÄrula"}),n.jsx(T,{danger:!0,onClick:y,disabled:!i.verified_at,children:"Kapat"})]})]}),n.jsx(H,{style:{marginBottom:24},children:n.jsxs(F,{bordered:!0,column:{xxl:2,xl:2,lg:2,md:1,sm:1,xs:1},children:[n.jsx(F.Item,{label:"BaÄlı Geri Bildirim",children:i.feedback_number||"-"}),n.jsx(F.Item,{label:"Konu",children:i.feedback_subject||"-"}),n.jsx(F.Item,{label:"Firma",children:i.feedback_company_name||"-"}),n.jsx(F.Item,{label:"Tip",children:zs[i.action_type]||i.action_type}),n.jsx(F.Item,{label:"Sorumlu",children:i.responsible_name||"-"}),n.jsx(F.Item,{label:"Hedef Tarih",children:Z(i.target_date).format("DD.MM.YYYY")}),n.jsx(F.Item,{label:"DoÄrulayan",children:i.verified_by_name||"-"}),n.jsx(F.Item,{label:"DoÄrulama Zamanı",children:i.verified_at?Z(i.verified_at).format("DD.MM.YYYY HH:mm"):"-"})]})}),n.jsx(H,{title:"DÃF Formu",children:n.jsx(x,{form:r,layout:"vertical",onFinish:h,children:n.jsxs(W,{direction:"vertical",style:{width:"100%"},size:12,children:[n.jsx(x.Item,{name:"action_type",label:"Faaliyet Tipi",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(zs).map(([f,g])=>({value:f,label:g}))})}),n.jsx(x.Item,{name:"root_cause_method",label:"Kök Neden Yöntemi",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(rg).map(([f,g])=>({value:f,label:g}))})}),n.jsx(x.Item,{name:"responsible",label:"Sorumlu",rules:[{required:!0}],children:n.jsx(pe,{options:a.map(f=>({value:f.id,label:f.full_name||f.email}))})}),n.jsx(x.Item,{name:"target_date",label:"Hedef Tarih",rules:[{required:!0}],children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})}),n.jsx(x.Item,{name:"root_cause",label:"Kök Neden",children:n.jsx(wa,{rows:4})}),n.jsx(x.Item,{name:"planned_action",label:"Planlanan Faaliyet",children:n.jsx(wa,{rows:4})}),n.jsx(x.Item,{name:"actual_action",label:"GerçekleÅen Faaliyet",children:n.jsx(wa,{rows:4})}),n.jsx(x.Item,{children:n.jsx(T,{type:"primary",htmlType:"submit",loading:l.isPending,children:"Kaydet"})})]})})}),n.jsx(Ve,{title:"Etkinlik DoÄrulama",open:d,onCancel:()=>u(!1),onOk:()=>m.validateFields().then(f=>c.mutate({id:i.id,data:f},{onSuccess:()=>u(!1)})),okButtonProps:{loading:c.isPending},okText:"DoÄrula",children:n.jsxs(x,{form:m,layout:"vertical",initialValues:{effectiveness_verified:!0},children:[n.jsx(x.Item,{name:"effectiveness_verified",label:"Etkin mi?",valuePropName:"checked",children:n.jsx(Tt,{})}),n.jsx(x.Item,{name:"verification_notes",label:"DoÄrulama Notu",rules:[{required:!0}],children:n.jsx(wa,{rows:4})})]})})]})},{TextArea:Hm}=G,N0=()=>{const[t,e]=k.useState(!1),[r,i]=k.useState(null),[s]=x.useForm(),a=He(R=>R.user),l=["ADMIN","MANAGER"].includes((a==null?void 0:a.role)||""),{data:o=[],isLoading:c}=k0(),{data:d}=gd(),{data:u=[]}=tr(),{data:m=[]}=Xs(),h=S0(),p=E0(),y=w0(),f=k.useMemo(()=>(d==null?void 0:d.surveys.averages.overall_rating)||0,[d]),g=R=>{i(R||null),s.setFieldsValue(R||{overall_rating:5,timeliness_rating:5,quality_rating:5,communication_rating:5,professionalism_rating:5,would_recommend:!0,response_channel:"CUSTOMER_FORM",is_manual_entry:!1}),e(!0)},v=async()=>{const R=await s.validateFields();r?await p.mutateAsync({id:r.id,data:R}):await h.mutateAsync(R),e(!1),i(null),s.resetFields()},S=[{title:"Firma",dataIndex:"company_name",key:"company_name"},{title:"Hizmet",dataIndex:"service_number",key:"service_number",render:R=>R||"-"},{title:"Genel",dataIndex:"overall_rating",key:"overall_rating",render:R=>n.jsx(ei,{disabled:!0,value:R})},{title:"Tavsiye",dataIndex:"would_recommend",key:"would_recommend",render:R=>R?"Evet":"Hayır"},{title:"Dolduran",dataIndex:"submitted_by",key:"submitted_by"},{title:"GeliÅ Åekli",dataIndex:"response_channel",key:"response_channel",render:(R,z)=>
135n.jsxs(W,{children:[n.jsx(ie,{color:z.is_manual_entry?"gold":"blue",children:z.is_manual_entry?"Manuel Kayıt":"MüÅteri GiriÅi"}),n.jsx(ie,{children:Fm[R]||R})]})},{title:"Tarih",dataIndex:"submitted_at",key:"submitted_at",render:R=>Z(R).format("DD.MM.YYYY HH:mm")},{title:"İÅlem",key:"actions",render:(R,z)=>n.jsxs(W,{children:[l?n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>g(z)}):null,l?n.jsx(Ot,{title:"Anket kaydı silinsin mi?",onConfirm:()=>y.mutate(z.id),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})}):null]})}];return n.jsxs(n.Fragment,{children:[n.jsx(H,{title:n.jsxs(W,{children:[n.jsx(Bv,{}),n.jsx("span",{children:"Memnuniyet Anketleri"})]}),extra:n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{background:"#1B5E8C"},onClick:()=>g(),children:"Yeni Anket"}),children:n.jsxs(W,{direction:"vertical",size:16,style:{width:"100%"},children:[n.jsx(be,{type:"info",showIcon:!0,message:"Anketler müÅteriden gelen puanları ve gerektiÄinde manuel kayıtları birlikte tutar.",description:"MüÅteri formu, telefon, e-posta veya saha görüÅmesi ile gelen deÄerlendirmeler kaydedilebilir; yönetim ekibi de gerektiÄinde manuel not ekleyip kaydı revize edebilir."}),n.jsxs(W,{wrap:!0,children:[n.jsx(Ee,{title:"Toplam Anket",value:(d==null?void 0:d.surveys.count)||0}),n.jsx(Ee,{title:"Ortalama Puan",value:f,precision:2}),n.jsx(Ee,{title:"Tavsiye Oranı",value:(d==null?void 0:d.surveys.recommend_rate)||0,suffix:"%",precision:1})]}),n.jsx(Ie,{rowKey:"id",columns:S,dataSource:o,loading:c||y.isPending})]})}),n.jsx(Ve,{title:r?"Anketi Düzenle":"Yeni Anket",open:t,onCancel:()=>{e(!1),i(null),s.resetFields()},onOk:v,okButtonProps:{loading:h.isPending||p.isPending},okText:"Kaydet",children:n.jsxs(x,{form:s,layout:"vertical",children:[n.jsx(x.Item,{name:"company",label:"Firma",rules:[{required:!0}],children:n.jsx(pe,{options:u.map(R=>({value:R.id,label:R.name}))})}),n.jsx(x.Item,{name:"service",label:"Hizmet",children:n.jsx(pe,{allowClear:!0,options:m.map(R=>({value:R.id,label:`${R.service_number} - ${R.company_name}`}))})}),n.jsx(x.Item,{name:"submitted_by",label:"Dolduran",rules:[{required:!0}],children:n.jsx(G,{})}),n.jsx(x.Item,{name:"response_channel",label:"Yanıt Kanalı",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(Fm).map(([R,z])=>({value:R,label:z}))})}),n.jsx(x.Item,{name:"is_manual_entry",label:"Manuel Müdahale / Kayıt",valuePropName:"checked",children:n.jsx(Tt,{})}),n.jsx(x.Item,{name:"overall_rating",label:"Genel Memnuniyet",rules:[{required:!0}],children:n.jsx(ei,{})}),n.jsx(x.Item,{name:"timeliness_rating",label:"Zamanlama",rules:[{required:!0}],children:n.jsx(ei,{})}),n.jsx(x.Item,{name:"quality_rating",label:"Kalite",rules:[{required:!0}],children:n.jsx(ei,{})}),n.jsx(x.Item,{name:"communication_rating",label:"İletiÅim",rules:[{required:!0}],children:n.jsx(ei,{})}),n.jsx(x.Item,{name:"professionalism_rating",label:"Profesyonellik",rules:[{required:!0}],children:n.jsx(ei,{})}),n.jsx(x.Item,{name:"would_recommend",label:"Tavsiye eder misiniz?",valuePropName:"checked",children:n.jsx(Tt,{})}),n.jsx(x.Item,{name:"comments",label:"Yorumlar",children:n.jsx(Hm,{rows:4})}),n.jsx(x.Item,{name:"manual_note",label:"İç Not / Manuel Müdahale Açıklaması",children:n.jsx(Hm,{rows:3,placeholder:"MüÅteri adına giriÅ yapıldıysa veya içerik düzenlendiyse nedenini yazın."})})]})})]})},bd={CAR:"Otomobil",VAN:"Van",PICKUP:"Pickup",TRUCK:"Kamyon",OTHER:"DiÄer"},pl={GASOLINE:"Benzin",DIESEL:"Dizel",LPG:"LPG",HYBRID:"Hibrit",ELECTRIC:"Elektrik"},P0={OIL_CHANGE:"YaÄ DeÄiÅimi",TIRE_CHANGE:"Lastik DeÄiÅimi",BRAKE:"Fren",BATTERY:"Akü",GENERAL_SERVICE:"Genel Servis",REPAIR:"Onarım",OTHER:"DiÄer"},{Search:z0}=G,{Text:Um}=ft,qm=t=>t==null?n.jsx(ie,{children:"Belirtilmedi"}):t<=0?n.jsx(ie,{color:"error",children:"Süresi Doldu"}):t<=30?n.jsxs(ie,{color:"warning",children:[t," gün kaldı"]}):n.jsxs(ie,{color:"success",children:[t," gün"]}),O0=()=>{const t=Le(),[e,r]=k.useState(""),{data:i,isLoading:s}=Jp(),a=zj(),l=He(u=>u.user),o=(l==null?void 0:l.role)==="ADMIN"||(l==null?void 0:l.role)==="MANAGER",c=k.useMemo(()=>(i||[]).filter(u=>{const m=e.toLowerCase();return u.plate_number.toLowerCase().includes(m)||u.brand.toLowerCase().includes(m)||u.model.toLowerCase().includes(m)||(u.assigned_to_name||"").toLowerCase().includes(m)}),[e,i]),d=[{title:"Plaka",dataIndex:"plate_number",key:"plate_number",render:(u,m)=>n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:600},children:u}),n.jsxs(Um,{type:"secondary",children:[m.brand," ",m.model]})]})},{title:"Araç",key:"vehicle_info",render:(u,m)=>n.jsxs("div",{children:[n.jsx("div",{children:bd[m.vehicle_type]||m.vehicle_type}),n.jsxs(Um,{type:"secondary",children:[m.year," ⢠",pl[m.fuel_type]||m.fuel_type]})]})},{title:"Zimmet",dataIndex:"assigned_to_name",key:"assigned_to_name",render:u=>u||"-"},{title:"KM",dataIndex:"current_km",key:"current_km",render:u=>`${new Intl.NumberFormat("tr-TR").format(u)} km`},{title:"Sigorta",key:"insurance_expiry",render:(u,m)=>n.jsxs("div",{children:[n.jsx("div",{children:m.insurance_expiry?Z(m.insurance_expiry).format("DD/MM/YYYY"):"-"}),qm(m.days_until_insurance)]})},{title:"Muayene",key:"inspection_expiry",render:(u,m)=>n.jsxs("div",{children:[n.jsx("div",{children:m.inspection_expiry?Z(m.inspection_expiry).format("DD/MM/YYYY"):"-"}),qm(m.days_until_inspection)]})},{title:"Durum",key:"status",render:(u,m)=>
135n.jsxs(W,{direction:"vertical",size:4,children:[n.jsx(ie,{color:m.is_available?"success":"warning",children:m.is_available?"Müsait":"MeÅgul"}),m.is_active?null:n.jsx(ie,{color:"error",children:"Pasif"})]})},{title:"İÅlemler",key:"actions",render:(u,m)=>n.jsxs(W,{size:"middle",children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>t(`/vehicles/${m.id}`)}),o?n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>t(`/vehicles/${m.id}/edit`)}):null,o?n.jsx(Ot,{title:"Aracı sil",description:"Bu aracı silmek istediÄinizden emin misiniz?",okText:"Evet",cancelText:"Hayır",onConfirm:()=>a.mutate(m.id),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})}):null]})}];return n.jsxs(H,{title:"Araçlar",extra:o?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>t("/vehicles/new"),style:{background:"#1B5E8C"},children:"Yeni Araç"}):null,children:[n.jsx(z0,{placeholder:"Plaka, marka, model veya zimmetli personel ara",allowClear:!0,style:{marginBottom:16,maxWidth:420},onSearch:r,onChange:u=>r(u.target.value)}),n.jsx(Ie,{rowKey:"id",loading:s,dataSource:c,columns:d})]})},L0=Object.entries(bd).map(([t,e])=>({value:t,label:e})),F0=Object.entries(pl).map(([t,e])=>({value:t,label:e})),Cn=(t,e,r)=>{if(!(r==null||r==="")){if(typeof r=="boolean"){t.append(e,r?"true":"false");return}t.append(e,String(r))}},$m=()=>{const{id:t}=jt(),e=!!t&&t!=="new",r=Le(),[i]=x.useForm(),[s,a]=k.useState(null),l=He(f=>f.user),o=(l==null?void 0:l.role)==="ADMIN"||(l==null?void 0:l.role)==="MANAGER",{data:c,isLoading:d}=ef(e?t:""),{data:u}=Qs(),m=Nj(),h=Pj();k.useEffect(()=>{c&&i.setFieldsValue({plate_number:c.plate_number,brand:c.brand,model:c.model,year:c.year,vehicle_type:c.vehicle_type,color:c.color||void 0,fuel_type:c.fuel_type,current_km:c.current_km,insurance_expiry:c.insurance_expiry?Z(c.insurance_expiry):null,inspection_expiry:c.inspection_expiry?Z(c.inspection_expiry):null,assigned_to:c.assigned_to||void 0,is_active:c.is_active,notes:c.notes||""})},[i,c]);const p={maxCount:1,beforeUpload:f=>(a(f),!1),onRemove:()=>{a(null)}},y=f=>{var v,S;const g=new FormData;if(Cn(g,"plate_number",f.plate_number),Cn(g,"brand",f.brand),Cn(g,"model",f.model),Cn(g,"year",f.year),Cn(g,"vehicle_type",f.vehicle_type),Cn(g,"color",f.color),Cn(g,"fuel_type",f.fuel_type),Cn(g,"current_km",f.current_km),Cn(g,"insurance_expiry",(v=f.insurance_expiry)==null?void 0:v.format("YYYY-MM-DD")),Cn(g,"inspection_expiry",(S=f.inspection_expiry)==null?void 0:S.format("YYYY-MM-DD")),Cn(g,"assigned_to",f.assigned_to),Cn(g,"is_active",f.is_active),Cn(g,"notes",f.notes),s&&g.append("photo",s),e){h.mutate({id:t,data:g},{onSuccess:()=>r(`/vehicles/${t}`)});return}m.mutate(g,{onSuccess:R=>r(`/vehicles/${R.id}`)})};return n.jsx(H,{title:e?"Araç Düzenle":"Yeni Araç",loading:e&&d,children:n.jsxs(x,{form:i,layout:"vertical",onFinish:y,initialValues:{vehicle_type:"VAN",fuel_type:"DIESEL",is_active:!0,current_km:0},children:[o?null:n.jsx(be,{type:"warning",showIcon:!0,message:"Araç oluÅturma ve düzenleme için MANAGER veya ADMIN yetkisi gerekir.",style:{marginBottom:16}}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"plate_number",label:"Plaka",rules:[{required:!0,message:"Plaka zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"brand",label:"Marka",rules:[{required:!0,message:"Marka zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"model",label:"Model",rules:[{required:!0,message:"Model zorunludur."}],children:n.jsx(G,{})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"year",label:"Yıl",rules:[{required:!0,message:"Yıl zorunludur."}],children:n.jsx(Ze,{style:{width:"100%"},min:1990,max:Z().year()+1})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"vehicle_type",label:"Araç Tipi",rules:[{required:!0}],children:n.jsx(pe,{options:L0})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"fuel_type",label:"Yakıt Tipi",rules:[{required:!0}],children:n.jsx(pe,{options:F0})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"color",label:"Renk",children:n.jsx(G,{})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"current_km",label:"Güncel KM",children:n.jsx(Ze,{style:{width:"100%"},min:0})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"insurance_expiry",label:"Sigorta BitiÅ",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"inspection_expiry",label:"Muayene BitiÅ",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"assigned_to",label:"Zimmetli Personel",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",options:(u||[]).map(f=>({value:f.id,label:f.full_name}))})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{label:"FotoÄraf",children:n.jsxs(W,{direction:"vertical",children:[n.jsx(An,{...p,children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"FotoÄraf Seç"})}),c!=null&&c.photo?n.jsx("img",{src:c.photo,alt:"Araç",style:{width:180,borderRadius:8,objectFit:"cover"}}):null]})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"is_active",label:"Aktif",valuePropName:"checked",children:n.jsx(Tt,{})})})]}),n.jsx(x.Item,{name:"notes",label:"Notlar",children:n.jsx(G.TextArea,{rows:4})}),n.jsx(x.Item,{children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",disabled:!o,loading:m.isPending||h.isPending,style:{background:"#1B5E8C"},children:"Kaydet"}),n.jsx(T,{onClick:()=>r(e?`/vehicles/${t}`:"/vehicles"),children:"İptal"})]})})]})})},{TextArea:Km}=G,Gm=t=>t==null?n.jsx(ie,{children:"Belirtilmedi"}
135):t<=0?n.jsx(ie,{color:"error",children:"Süresi Doldu"}):t<=30?n.jsxs(ie,{color:"warning",children:[t," gün kaldı"]}):n.jsxs(ie,{color:"success",children:[t," gün"]}),Ar=(t,e,r)=>{r==null||r===""||t.append(e,String(r))},B0=()=>{const{id:t}=jt(),e=Le(),[r,i]=k.useState(null),[s]=x.useForm(),[a]=x.useForm(),[l]=x.useForm(),[o,c]=k.useState(null),{data:d,isLoading:u}=ef(t||""),{data:m,isLoading:h}=Tj(t||""),{data:p,isLoading:y}=Aj(t||""),{data:f,isLoading:g}=Mj(t||""),{data:v}=Qs(),{data:S}=Xs(),R=Oj(),z=Fj(),P=Yj(),U=Lj(),A=Bj(),w=Hj(),Y=He(N=>N.user),D=(Y==null?void 0:Y.role)==="ADMIN"||(Y==null?void 0:Y.role)==="MANAGER";if(u)return n.jsx("div",{style:{textAlign:"center",padding:50},children:n.jsx(mt,{size:"large"})});if(!d)return n.jsx(be,{message:"Araç bulunamadı.",type:"error"});const _={maxCount:1,beforeUpload:N=>(c(N),!1),onRemove:()=>{c(null)}},M=()=>{i(null),s.resetFields(),a.resetFields(),l.resetFields(),c(null)},b=async()=>{var ue,oe;const N=await s.validateFields(),$=new FormData;Ar($,"maintenance_type",N.maintenance_type),Ar($,"description",N.description),Ar($,"km_at_maintenance",N.km_at_maintenance),Ar($,"cost",N.cost),Ar($,"service_provider",N.service_provider),Ar($,"maintenance_date",(ue=N.maintenance_date)==null?void 0:ue.format("YYYY-MM-DD")),Ar($,"next_maintenance_date",(oe=N.next_maintenance_date)==null?void 0:oe.format("YYYY-MM-DD")),Ar($,"next_maintenance_km",N.next_maintenance_km),o&&$.append("invoice_file",o),R.mutate({vehicleId:d.id,data:$},{onSuccess:M})},I=async()=>{const N=await a.validateFields();z.mutate({vehicleId:d.id,data:{date:N.date.format("YYYY-MM-DD"),km_at_fill:N.km_at_fill,liters:N.liters,cost:N.cost,fuel_type:N.fuel_type,station:N.station||null}},{onSuccess:M})},j=async()=>{const N=await l.validateFields();P.mutate({vehicleId:d.id,data:{service:N.service||null,assigned_to:N.assigned_to,start_date:N.start_date.format("YYYY-MM-DD"),end_date:N.end_date?N.end_date.format("YYYY-MM-DD"):null,start_km:N.start_km,end_km:N.end_km??null,notes:N.notes||""}},{onSuccess:M})};return n.jsxs("div",{children:[n.jsxs("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/vehicles"),children:"Geri"}),n.jsx("div",{style:{fontSize:18,fontWeight:500},children:d.plate_number}),n.jsx(ie,{color:d.is_available?"success":"warning",children:d.is_available?"Müsait":"MeÅgul"})]}),D?n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>e(`/vehicles/${d.id}/edit`),children:"Düzenle"}):null]}),n.jsxs(me,{gutter:[16,16],style:{marginBottom:24},children:[n.jsx(C,{xs:24,xl:8,children:n.jsx(H,{children:d.photo?n.jsx(jp,{src:d.photo,alt:d.plate_number,style:{borderRadius:8}}):n.jsx("div",{style:{height:220,display:"flex",alignItems:"center",justifyContent:"center",background:"#fafafa",borderRadius:8},children:"Görsel yok"})})}),n.jsx(C,{xs:24,xl:16,children:n.jsx(H,{children:n.jsxs(F,{bordered:!0,column:{xxl:2,xl:2,lg:2,md:1,sm:1,xs:1},children:[n.jsxs(F.Item,{label:"Marka / Model",children:[d.brand," ",d.model]}),n.jsx(F.Item,{label:"Yıl",children:d.year}),n.jsx(F.Item,{label:"Araç Tipi",children:bd[d.vehicle_type]||d.vehicle_type}),n.jsx(F.Item,{label:"Yakıt Tipi",children:pl[d.fuel_type]||d.fuel_type}),n.jsxs(F.Item,{label:"Güncel KM",children:[new Intl.NumberFormat("tr-TR").format(d.current_km)," km"]}),n.jsx(F.Item,{label:"Zimmet",children:d.assigned_to_name||"-"}),n.jsx(F.Item,{label:"Sigorta",children:n.jsxs(W,{children:[n.jsx("span",{children:d.insurance_expiry?Z(d.insurance_expiry).format("DD/MM/YYYY"):"-"}),Gm(d.days_until_insurance)]})}),n.jsx(F.Item,{label:"Muayene",children:n.jsxs(W,{children:[n.jsx("span",{children:d.inspection_expiry?Z(d.inspection_expiry).format("DD/MM/YYYY"):"-"}),Gm(d.days_until_inspection)]})}),n.jsx(F.Item,{label:"Notlar",span:2,children:d.notes||"-"})]})})})]}),n.jsx(H,{children:n.jsx(Jn,{items:[{key:"maintenances",label:"Bakım GeçmiÅi",children:n.jsxs(n.Fragment,{children:[D?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{marginBottom:16,background:"#1B5E8C"},onClick:()=>i("maintenance"),children:"Bakım Ekle"}):null,n.jsx(Ie,{rowKey:"id",loading:h,dataSource:m,columns:[{title:"Tarih",dataIndex:"maintenance_date",key:"maintenance_date",render:N=>Z(N).format("DD/MM/YYYY")},{title:"Tür",dataIndex:"maintenance_type_display",key:"maintenance_type_display"},{title:"KM",dataIndex:"km_at_maintenance",key:"km_at_maintenance"},{title:"Tutar",dataIndex:"cost",key:"cost",render:N=>`${N} TL`},{title:"Sonraki",key:"next",render:(N,$)=>`${$.next_maintenance_date?Z($.next_maintenance_date).format("DD/MM/YYYY"):"-"} / ${$.next_maintenance_km||"-"}`},{title:"İÅlem",key:"action",render:(N,$)=>D?n.jsx(Ot,{title:"Bakım kaydını sil",onConfirm:()=>U.mutate({vehicleId:d.id,maintenanceId:$.id}),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})}):null}]})]})},{key:"fuel",label:"Yakıt Logları",children:n.jsxs(n.Fragment,{children:[D?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{marginBottom:16,background:"#1B5E8C"},onClick:()=>i("fuel"),children:"Yakıt Kaydı Ekle"}):null,n.jsx(Ie,{rowKey:"id",loading:y,dataSource:p,columns:[{title:"Tarih",dataIndex:"date",key:"date",render:N=>Z(N).format("DD/MM/YYYY")}
135,{title:"KM",dataIndex:"km_at_fill",key:"km_at_fill"},{title:"Litre",dataIndex:"liters",key:"liters"},{title:"Tutar",dataIndex:"cost",key:"cost",render:N=>`${N} TL`},{title:"İstasyon",dataIndex:"station",key:"station",render:N=>N||"-"},{title:"İÅlem",key:"action",render:(N,$)=>D?n.jsx(Ot,{title:"Yakıt kaydını sil",onConfirm:()=>A.mutate({vehicleId:d.id,fuelLogId:$.id}),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})}):null}]})]})},{key:"assignment",label:"Kullanım GeçmiÅi",children:n.jsxs(n.Fragment,{children:[D?n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{marginBottom:16,background:"#1B5E8C"},onClick:()=>i("assignment"),children:"Kullanım Kaydı Ekle"}):null,n.jsx(Ie,{rowKey:"id",loading:g,dataSource:f,columns:[{title:"Personel",dataIndex:"assigned_to_name",key:"assigned_to_name"},{title:"İŠEmri",key:"service",render:(N,$)=>$.work_order_number||$.service_number||"-"},{title:"BaÅlangıç",dataIndex:"start_date",key:"start_date",render:N=>Z(N).format("DD/MM/YYYY")},{title:"BitiÅ",dataIndex:"end_date",key:"end_date",render:N=>N?Z(N).format("DD/MM/YYYY"):"-"},{title:"KM",key:"km",render:(N,$)=>`${$.start_km} / ${$.end_km??"-"}`},{title:"İÅlem",key:"action",render:(N,$)=>D?n.jsx(Ot,{title:"Kullanım kaydını sil",onConfirm:()=>w.mutate({vehicleId:d.id,assignmentLogId:$.id}),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})}):null}]})]})}]})}),n.jsx(Ve,{title:"Bakım Kaydı Ekle",open:r==="maintenance",onCancel:M,onOk:b,confirmLoading:R.isPending,okText:"Kaydet",children:n.jsxs(x,{form:s,layout:"vertical",children:[n.jsx(x.Item,{name:"maintenance_type",label:"Bakım Türü",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(P0).map(([N,$])=>({value:N,label:$}))})}),n.jsx(x.Item,{name:"description",label:"Açıklama",rules:[{required:!0}],children:n.jsx(Km,{rows:3})}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"maintenance_date",label:"Bakım Tarihi",rules:[{required:!0}],children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"km_at_maintenance",label:"Bakım KM",rules:[{required:!0}],children:n.jsx(Ze,{style:{width:"100%"},min:0})})})]}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"cost",label:"Tutar",children:n.jsx(Ze,{style:{width:"100%"},min:0})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"service_provider",label:"Servis SaÄlayıcı",children:n.jsx(G,{})})})]}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"next_maintenance_date",label:"Sonraki Bakım Tarihi",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"next_maintenance_km",label:"Sonraki Bakım KM",children:n.jsx(Ze,{style:{width:"100%"},min:0})})})]}),n.jsx(x.Item,{label:"Fatura",children:n.jsx(An,{..._,children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"Dosya Seç"})})})]})}),n.jsx(Ve,{title:"Yakıt Kaydı Ekle",open:r==="fuel",onCancel:M,onOk:I,confirmLoading:z.isPending,okText:"Kaydet",children:n.jsxs(x,{form:a,layout:"vertical",children:[n.jsxs(me,{gutter:12,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"date",label:"Tarih",rules:[{required:!0}],children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"km_at_fill",label:"Dolum KM",rules:[{required:!0}],children:n.jsx(Ze,{style:{width:"100%"},min:0})})})]}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"liters",label:"Litre",rules:[{required:!0}],children:n.jsx(Ze,{style:{width:"100%"},min:0})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"cost",label:"Tutar",rules:[{required:!0}],children:n.jsx(Ze,{style:{width:"100%"},min:0})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"fuel_type",label:"Yakıt Tipi",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(pl).map(([N,$])=>({value:N,label:$}))})})})]}),n.jsx(x.Item,{name:"station",label:"İstasyon",children:n.jsx(G,{})})]})}),n.jsx(Ve,{title:"Kullanım Kaydı Ekle",open:r==="assignment",onCancel:M,onOk:j,confirmLoading:P.isPending,okText:"Kaydet",children:n.jsxs(x,{form:l,layout:"vertical",initialValues:{start_km:d.current_km},children:[n.jsx(x.Item,{name:"assigned_to",label:"Personel",rules:[{required:!0}],children:n.jsx(pe,{showSearch:!0,optionFilterProp:"label",options:(v||[]).map(N=>({value:N.id,label:N.full_name}))})}),n.jsx(x.Item,{name:"service",label:"İŠEmri",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",options:(S||[]).map(N=>({value:N.id,label:`${N.work_order_number||N.service_number}
135 - ${N.company_name}`}))})}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"start_date",label:"BaÅlangıç",rules:[{required:!0}],children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"end_date",label:"BitiÅ",children:n.jsx(We,{style:{width:"100%"},format:"DD/MM/YYYY"})})})]}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"start_km",label:"BaÅlangıç KM",rules:[{required:!0}],children:n.jsx(Ze,{style:{width:"100%"},min:0})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"end_km",label:"BitiÅ KM",children:n.jsx(Ze,{style:{width:"100%"},min:0})})})]}),n.jsx(x.Item,{name:"notes",label:"Notlar",children:n.jsx(Km,{rows:3})})]})})]})};var to,Pe,ig,sg,Hi,si,Wm,ag,lg,fl={},og=[],Y0=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function Or(t,e){for(var r in e)t[r]=e[r];return t}function cg(t){var e=t.parentNode;e&&e.removeChild(t)}function E(t,e,r){var i,s,a,l={};for(a in e)a=="key"?i=e[a]:a=="ref"?s=e[a]:l[a]=e[a];if(arguments.length>2&&(l.children=arguments.length>3?to.call(arguments,2):r),typeof t=="function"&&t.defaultProps!=null)for(a in t.defaultProps)l[a]===void 0&&(l[a]=t.defaultProps[a]
vendor: 15,392 bytes, line 135
135);return $a(t,l,i,s,null)}function $a(t,e,r,i,s){var a={type:t,props:e,key:r,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:s??++ig};return s==null&&Pe.vnode!=null&&Pe.vnode(a),a}function ot(){return{current:null}}function Ye(t){return t.children}function H0(t,e,r,i,s){var a;for(a in r)a==="children"||a==="key"||a in e||gl(t,a,null,r[a],i);for(a in e)s&&typeof e[a]!="function"||a==="children"||a==="key"||a==="value"||a==="checked"||r[a]===e[a]||gl(t,a,e[a],r[a],i)}function Vm(t,e,r){e[0]==="-"?t.setProperty(e,r??""):t[e]=r==null?"":typeof r!="number"||Y0.test(e)?r:r+"px"}function gl(t,e,r,i,s){var a;e:if(e==="style")if(typeof r=="string")t.style.cssText=r;else{if(typeof i=="string"&&(t.style.cssText=i=""),i)for(e in i)r&&e in r||Vm(t.style,e,"");if(r)for(e in r)i&&r[e]===i[e]||Vm(t.style,e,r[e])}else if(e[0]==="o"&&e[1]==="n")a=e!==(e=e.replace(/Capture$/,"")),e=e.toLowerCase()in t?e.toLowerCase().slice(2):e.slice(2),t.l||(t.l={}),t.l[e+a]=r,r?i||t.addEventListener(e,a?Xm:Qm,a):t.removeEventListener(e,a?Xm:Qm,a);else if(e!=="dangerouslySetInnerHTML"){if(s)e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!=="width"&&e!=="height"&&e!=="href"&&e!=="list"&&e!=="form"&&e!=="tabIndex"&&e!=="download"&&e in t)try{t[e]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&e.indexOf("-")==-1?t.removeAttribute(e):t.setAttribute(e,r))}}function Qm(t){Hi=!0;try{return this.l[t.type+!1](Pe.event?Pe.event(t):t)}finally{Hi=!1}}function Xm(t){Hi=!0;try{return this.l[t.type+!0](Pe.event?Pe.event(t):t)}finally{Hi=!1}}function Rn(t,e){this.props=t,this.context=e}function Os(t,e){if(e==null)return t.__?Os(t.__,t.__.__k.indexOf(t)+1):null;for(var r;e<t.__k.length;e++)if((r=t.__k[e])!=null&&r.__e!=null)return r.__e;return typeof t.type=="function"?Os(t):null}function dg(t){var e,r;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((r=t.__k[e])!=null&&r.__e!=null){t.__e=t.__c.base=r.__e;break}return dg(t)}}function U0(t){Hi?setTimeout(t):ag(t)}function Sc(t){(!t.__d&&(t.__d=!0)&&si.push(t)&&!yl.__r++||Wm!==Pe.debounceRendering)&&((Wm=Pe.debounceRendering)||U0)(yl)}function yl(){var t,e,r,i,s,a,l,o;for(si.sort(function(c,d){return c.__v.__b-d.__v.__b});t=si.shift();)t.__d&&(e=si.length,i=void 0,s=void 0,l=(a=(r=t).__v).__e,(o=r.__P)&&(i=[],(s=Or({},a)).__v=a.__v+1,_d(o,a,s,r.__n,o.ownerSVGElement!==void 0,a.__h!=null?[l]:null,i,l??Os(a),a.__h),fg(i,a),a.__e!=l&&dg(a)),si.length>e&&si.sort(function(c,d){return c.__v.__b-d.__v.__b}));yl.__r=0}function ug(t,e,r,i,s,a,l,o,c,d){var u,m,h,p,y,f,g,v=i&&i.__k||og,S=v.length;for(r.__k=[],u=0;u<e.length;u++)if((p=r.__k[u]=(p=e[u])==null||typeof p=="boolean"?null:typeof p=="string"||typeof p=="number"||typeof p=="bigint"?$a(null,p,null,null,p):Array.isArray(p)?$a(Ye,{children:p},null,null,null):p.__b>0?$a(p.type,p.props,p.key,p.ref?p.ref:null,p.__v):p)!=null){if(p.__=r,p.__b=r.__b+1,(h=v[u])===null||h&&p.key==h.key&&p.type===h.type)v[u]=void 0;else for(m=0;m<S;m++){if((h=v[m])&&p.key==h.key&&p.type===h.type){v[m]=void 0;break}h=null}_d(t,p,h=h||fl,s,a,l,o,c,d),y=p.__e,(m=p.ref)&&h.ref!=m&&(g||(g=[]),h.ref&&g.push(h.ref,null,p),g.push(m,p.__c||y,p)),y!=null?(f==null&&(f=y),typeof p.type=="function"&&p.__k===h.__k?p.__d=c=mg(p,c,t):c=hg(t,p,h,v,y,c),typeof r.type=="function"&&(r.__d=c)):c&&h.__e==c&&c.parentNode!=t&&(c=Os(h))}for(r.__e=f,u=S;u--;)v[u]!=null&&(typeof r.type=="function"&&v[u].__e!=null&&v[u].__e==r.__d&&(r.__d=pg(i).nextSibling),yg(v[u],v[u]));if(g)for(u=0;u<g.length;u++)gg(g[u],g[++u],g[++u])}function mg(t,e,r){for(var i,s=t.__k,a=0;s&&a<s.length;a++)(i=s[a])&&(i.__=t,e=typeof i.type=="function"?mg(i,e,r):hg(r,i,i,s,i.__e,e));return e}function xl(t,e){return e=e||[],t==null||typeof t=="boolean"||(Array.isArray(t)?t.some(function(r){xl(r,e)}):e.push(t)),e}function hg(t,e,r,i,s,a){var l,o,c;if(e.__d!==void 0)l=e.__d,e.__d=void 0;else if(r==null||s!=a||s.parentNode==null)e:if(a==null||a.parentNode!==t)t.appendChild(s),l=null;else{for(o=a,c=0;(o=o.nextSibling)&&c<i.length;c+=1)if(o==s)break e;t.insertBefore(s,a),l=a}return l!==void 0?l:s.nextSibling}function pg(t){var e,r,i;if(t.type==null||typeof t.type=="string")return t.__e;if(t.__k){for(e=t.__k.length-1;e>=0;e--)if((r=t.__k[e])&&(i=pg(r)))return i}return null}function _d(t,e,r,i,s,a,l,o,c){var d,u,m,h,p,y,f,g,v,S,R,z,P,U,A,w=e.type;if(e.constructor!==void 0)return null;r.__h!=null&&(c=r.__h,o=e.__e=r.__e,e.__h=null,a=[o]),(d=Pe.__b)&&d(e);try{e:if(typeof w=="function"){if(g=e.props,v=(d=w.contextType)&&i[d.__c],S=d?v?v.props.value:d.__:i,r.__c?f=(u=e.__c=r.__c).__=u.__E:("prototype"in w&&w.prototype.render?e.__c=u=new w(g,S):(e.__c=u=new Rn(g,S),u.constructor=w,u.render=$0),v&&v.sub(u),u.props=g,u.state||(u.state={}),u.context=S,u.__n=i,m=u.__d=!0,u.__h=[],u._sb=[]),u.__s==null&&(u.__s=u.state),w.getDerivedStateFromProps!=null&&(u.__s==u.state&&(u.__s=Or({},u.__s)),Or(u.__s,w.getDerivedStateFromProps(g,u.__s))),h=u.props,p=u.state,u.__v=e,m)w.getDerivedStateFromProps==null&&u.componentWillMount!=null&&u.componentWillMount(),u.componentDidMount!=null&&u.__h.push(u.componentDidMount);else{if(w.getDerivedStateFromProps==null&&g!==h&&u.componentWillReceiveProps!=null&&u.componentWillReceiveProps(g,S),!u.__e&&u.shouldComponentUpdate!=null&&u.shouldComponentUpdate(g,u.__s,S)===!1||e.__v===r.__v){for(e.__v!==r.__v&&(u.props=g,u.state=u.__s,u.__d=!1),e.__e=r.__e,e.__k=r.__k,e.__k.forEach(function(Y){Y&&(Y.__=e)}),R=0;R<u._sb.length;R++)u.__h.push(u._sb[R]);u._sb=[],u.__h.length&&l.push(u);break e}u.componentWillUpdate!=null&&u.componentWillUpdate(g,u.__s,S),u.componentDidUpdate!=null&&u.__h.push(function(){u.componentDidUpdate(h,p,y)})}if(u.context=S,u.props=g,u.__P=t,z=Pe.__r,P=0,"prototype"in w&&w.prototype.render){for(u.state=u.__s,u.__d=!1,z&&z(e),d=u.render(u.props,u.state,u.context),U=0;U<u._sb.length;U++)u.__h.push(u._sb[U]);u._sb=[]}else do u.__d=!1,z&&z(e),d=u.render(u.props,u.state,u.context),u.state=u.__s;while(u.__d&&++P<25);u.state=u.__s,u.getChildContext!=null&&(i=Or(Or({},i),u.getChildContext())),m||u.getSnapshotBeforeUpdate==null||(y=u.getSnapshotBeforeUpdate(h,p)),A=d!=null&&d.type===Ye&&d.key==null?d.props.children:d,ug(t,Array.isArray(A)?A:[A],e,r,i,s,a,l,o,c),u.base=e.__e,e.__h=null,u.__h.length&&l.push(u),f&&(u.__E=u.__=null),u.__e=!1}else a==null&&e.__v===r.__v?(e.__k=r.__k,e.__e=r.__e):e.__e=q0(r.__e,e,r,i,s,a,l,c);(d=Pe.diffed)&&d(e)}catch(Y){e.__v=null,(c||a!=null)&&(e.__e=o,e.__h=!!c,a[a.indexOf(o)]=null),Pe.__e(Y,e,r)}}function fg(t,e){Pe.__c&&Pe.__c(e,t),t.some(function(r){try{t=r.__h,r.__h=[],t.some(function(i){i.call(r)})}catch(i){Pe.__e(i,r.__v)}})}function q0(t,e,r,i,s,a,l,o){var c,d,u,m=r.props,h=e.props,p=e.type,y=0;if(p==="svg"&&(s=!0),a!=null){for(;y<a.length;y++)if((c=a[y])&&"setAttribute"in c==!!p&&(p?c.localName===p:c.nodeType===3)){t=c,a[y]=null;break}}if(t==null){if(p===null)return document.createTextNode(h);t=s?document.createElementNS("http://www.w3.org/2000/svg",p):document.createElement(p,h.is&&h),a=null,o=!1}if(p===null)m===h||o&&t.data===h||(t.data=h);else{if(a=a&&to.call(t.childNodes),d=(m=r.props||fl).dangerouslySetInnerHTML,u=h.dangerouslySetInnerHTML,!o){if(a!=null)for(m={},y=0;y<t.attributes.length;y++)m[t.attributes[y].name]=t.attributes[y].value;(u||d)&&(u&&(d&&u.__html==d.__html||u.__html===t.innerHTML)||(t.innerHTML=u&&u.__html||""))}if(H0(t,h,m,s,o),u)e.__k=[];else if(y=e.props.children,ug(t,Array.isArray(y)?y:[y],e,r,i,s&&p!=="foreignObject",a,l,a?a[0]:r.__k&&Os(r,0),o),a!=null)for(y=a.length;y--;)a[y]!=null&&cg(a[y]);o||("value"in h&&(y=h.value)!==void 0&&(y!==t.value||p==="progress"&&!y||p==="option"&&y!==m.value)&&gl(t,"value",y,m.value,!1),"checked"in h&&(y=h.checked)!==void 0&&y!==t.checked&&gl(t,"checked",y,m.checked,!1))}return t}function gg(t,e,r){try{typeof t=="function"?t(e):t.current=e}catch(i){Pe.__e(i,r)}}function yg(t,e,r){var i,s;if(Pe.unmount&&Pe.unmount(t),(i=t.ref)&&(i.current&&i.current!==t.__e||gg(i,null,e)),(i=t.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(a){Pe.__e(a,e)}i.base=i.__P=null,t.__c=void 0}if(i=t.__k)for(s=0;s<i.length;s++)i[s]&&yg(i[s],e,r||typeof t.type!="function");r||t.__e==null||cg(t.__e),t.__=t.__e=t.__d=void 0}function $0(t,e,r){return this.constructor(t,r)}function Ls(t,e,r){var i,s,a;Pe.__&&Pe.__(t,e),s=(i=!1)?null:e.__k,a=[],_d(e,t=e.__k=E(Ye,null,[t]),s||fl,fl,e.ownerSVGElement!==void 0,s?null:e.firstChild?to.call(e.childNodes):null,a,s?s.__e:e.firstChild,i),fg(a,t)}function K0(t,e){var r={__c:e="__cC"+lg++,__:t,Consumer:function(i,s){return i.children(s)},Provider:function(i){var s,a;return this.getChildContext||(s=[],(a={})[e]=this,this.getChildContext=function(){return a},this.shouldComponentUpdate=function(l){this.props.value!==l.value&&s.some(function(o){o.__e=!0,Sc(o)})},this.sub=function(l){s.push(l);var o=l.componentWillUnmount;l.componentWillUnmount=function(){s.splice(s.indexOf(l),1),o&&o.call(l)}}),i.children}};return r.Provider.__=r.Consumer.contextType=r}to=og.slice,Pe={__e:function(t,e,r,i){for(var s,a,l;e=e.__;)if((s=e.__c)&&!s.__)try{if((a=s.constructor)&&a.getDerivedStateFromError!=null&&(s.setState(a.getDerivedStateFromError(t)),l=s.__d),s.componentDidCatch!=null&&(s.componentDidCatch(t,i||{}),l=s.__d),l)return s.__E=s}catch(o){t=o}throw t}},ig=0,sg=function(t){return t!=null&&t.constructor===void 0},Hi=!1,Rn.prototype.setState=function(t,e){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=Or({},this.state),typeof t=="function"&&(t=t(Or({},r),this.props)),t&&Or(r,t),t!=null&&this.__v&&(e&&this._sb.push(e),Sc(this))},Rn.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),Sc(this))},Rn.prototype.render=Ye,si=[],ag=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,yl.__r=0,lg=0;var lr,Ao,Zm,xg=[],Mo=[],Jm=Pe.__b,eh=Pe.__r,th=Pe.diffed,nh=Pe.__c,rh=Pe.unmount;function G0(){for(var t;t=xg.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(Ka),t.__H.__h.forEach(Ec),t.__H.__h=[]}catch(e){t.__H.__h=[],Pe.__e(e,t.__v)}}Pe.__b=function(t){lr=null,Jm&&Jm(t)},Pe.__r=function(t){eh&&eh(t);var e=(lr=t.__c).__H;e&&(Ao===lr?(e.__h=[],lr.__h=[],e.__.forEach(function(r){r.__N&&(r.__=r.__N),r.__V=Mo,r.__N=r.i=void 0})):(e.__h.forEach(Ka),e.__h.forEach(Ec),e.__h=[])),Ao=lr},Pe.diffed=function(t){th&&th(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(xg.push(e)!==1&&Zm===Pe.requestAnimationFrame||((Zm=Pe.requestAnimationFrame)||W0)(G0)),e.__H.__.forEach(function(r){r.i&&(r.__H=r.i),r.__V!==Mo&&(r.__=r.__V),r.i=void 0,r.__V=Mo})),Ao=lr=null},Pe.__c=function(t,e){e.some(function(r){try{r.__h.forEach(Ka),r.__h=r.__h.filter(function(i){return!i.__||Ec(i)})}catch(i){e.some(function(s){s.__h&&(s.__h=[])}),e=[],Pe.__e(i,r.__v)}}),nh&&nh(t,e)},Pe.unmount=function(t){rh&&rh(t);var e,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(i){try{Ka(i)}catch(s){e=s}}),r.__H=void 0,e&&Pe.__e(e,r.__v))};var ih=typeof requestAnimationFrame=="function";function W0(t){var e,r=function(){clearTimeout(i),ih&&cancelAnimationFrame(e),setTimeout(t)},i=setTimeout(r,100);ih&&(e=requestAnimationFrame(r))}function Ka(t){var e=lr,r=t.__c;typeof r=="function"&&(t.__c=void 0,r()),lr=e}function Ec(t){var e=lr;t.__c=t.__(),lr=e}function V0(t,e){for(var r in e)t[r]=e[r];return t}function sh(t,e){for(var r in t)if(r!=="__source"&&!(r in e))return!0;for(var i in e)if(i!=="__source"&&t[i]!==e[i])return!0;return!1}function ah(t){this.props=t}(ah.prototype=new Rn).isPureReactComponent=!0,ah.prototype.shouldComponentUpdate=function(t,e){return sh(this.props,t)||sh(this.state,e)};var lh=Pe.__b;Pe.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),lh&&lh(t)};var Q0=Pe.__e;Pe.__e=function(t,e,r,i){if(t.then){for(var s,a=e;a=a.__;)if((s=a.__c)&&s.__c)return e.__e==null&&(e.__e=r.__e,e.__k=r.__k),s.__c(t,e)}Q0(t,e,r,i)};var oh=Pe.unmount;function vg(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(i){typeof i.__c=="function"&&i.__c()}),t.__c.__H=null),(t=V0({},t)).__c!=null&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(i){return vg(i,e,r)})),t}function bg(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(i){return bg(i,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}function No(){this.__u=0,this.t=null,this.__b=null}function _g(t){var e=t.__.__c;return e&&e.__a&&e.__a(t)}function Ca(){this.u=null,this.o=null}Pe.unmount=function(t){var e=t.__c;e&&e.__R&&e.__R(),e&&t.__h===!0&&(t.type=null),oh&&oh(t)},(No.prototype=new Rn).__c=function(t,e){var r=e.__c,i=this;i.t==null&&(i.t=[]),i.t.push(r);var s=_g(i.__v),a=!1,l=function(){a||(a=!0,r.__R=null,s?s(o):o())};r.__R=l;var o=function(){if(!--i.__u){if(i.state.__a){var d=i.state.__a;i.__v.__k[0]=bg(d,d.__c.__P,d.__c.__O)}var u;for(i.setState({__a:i.__b=null});u=i.t.pop();)u.forceUpdate()}},c=e.__h===!0;i.__u++||c||i.setState({__a:i.__b=i.__v.__k[0]}),t.then(l,l)},No.prototype.componentWillUnmount=function(){this.t=[]},No.prototype.render=function(t,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),i=this.__v.__k[0].__c;this.__v.__k[0]=vg(this.__b,r,i.__O=i.__P)}this.__b=null}var s=e.__a&&E(Ye,null,t.fallback);return s&&(s.__h=null),[E(Ye,null,e.__a?null:t.children),s]};var ch=function(t,e,r){if(++r[1]===r[0]&&t.o.delete(e),t.props.revealOrder&&(t.props.revealOrder[0]!=="t"||!t.o.size))for(r=t.u;r;){for(;r.length>3;)r.pop()();if(r[1]<r[0])break;t.u=r=r[2]}};function X0(t){return this.getChildContext=function(){return t.context},t.children}function Z0(t){var e=this,r=t.i;e.componentWillUnmount=function(){Ls(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),t.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(i){this.childNodes.push(i),e.i.appendChild(i)},insertBefore:function(i,s){this.childNodes.push(i),e.i.appendChild(i)},removeChild:function(i){this.childNodes.splice(this.childNodes.indexOf(i)>>>1,1),e.i.removeChild(i)}}),Ls(E(X0,{context:e.context},t.__v),e.l)):e.l&&e.componentWillUnmount()}function J0(t,e){var r=E(Z0,{__v:t,i:e});return r.containerInfo=e,r}(Ca.prototype=new Rn).__a=function(t){var e=this,r=_g(e.__v),i=e.o.get(t);return i[0]++,function(s){var a=function(){e.props.revealOrder?(i.push(s),ch(e,t,i)):s()};r?r(a):a()}},Ca.prototype.render=function(t){this.u=null,this.o=new Map;var e=xl(t.children);t.revealOrder&&t.revealOrder[0]==="b"&&e.reverse();for(var r=e.length;r--;)this.o.set(e[r],this.u=[1,0,this.u]);return t.children},Ca.prototype.componentDidUpdate=Ca.prototype.componentDidMount=function(){var t=this;this.o.forEach(function(e,r){ch(t,r,e)})};var eD=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,tD=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,nD=typeof document<"u",rD=function(t){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(t)};Rn.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(Rn.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]}
135,set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})});var dh=Pe.event;function iD(){}function sD(){return this.cancelBubble}function aD(){return this.defaultPrevented}Pe.event=function(t){return dh&&(t=dh(t)),t.persist=iD,t.isPropagationStopped=sD,t.isDefaultPrevented=aD,t.nativeEvent=t};var uh={configurable:!0,get:function(){return this.class}},mh=Pe.vnode;Pe.vnode=function(t){var e=t.type,r=t.props,i=r;if(typeof e=="string"){var s=e.indexOf("-")===-1;for(var a in i={},r){var l=r[a];nD&&a==="children"&&e==="noscript"||a==="value"&&"defaultValue"in r&&l==null||(a==="defaultValue"&&"value"in r&&r.value==null?a="value":a==="download"&&l===!0?l="":/ondoubleclick/i.test(a)?a="ondblclick":/^onchange(textarea|input)/i.test(a+e)&&!rD(r.type)?a="oninput":/^onfocus$/i.test(a)?a="onfocusin":/^onblur$/i.test(a)?a="onfocusout":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(a)?a=a.toLowerCase():s&&tD.test(a)?a=a.replace(/[A-Z0-9]/g,"-$&").toLowerCase():l===null&&(l=void 0),/^oninput$/i.test(a)&&(a=a.toLowerCase(),i[a]&&(a="oninputCapture")),i[a]=l)}e=="select"&&i.multiple&&Array.isArray(i.value)&&(i.value=xl(r.children).forEach(function(o){o.props.selected=i.value.indexOf(o.props.value)!=-1})),e=="select"&&i.defaultValue!=null&&(i.value=xl(r.children).forEach(function(o){o.props.selected=i.multiple?i.defaultValue.indexOf(o.props.value)!=-1:i.defaultValue==o.props.value})),t.props=i,r.class!=r.className&&(uh.enumerable="className"in r,r.className!=null&&(i.class=r.className),Object.defineProperty(i,"className",uh))}t.$$typeof=eD,mh&&mh(t)};var hh=Pe.__r;Pe.__r=function(t){hh&&hh(t),t.__c};const jg=[],wc=new Map;function ta(t){jg.push(t),wc.forEach(e=>{Sg(e,t)})}function lD(t){t.isConnected&&t.getRootNode&&kg(t.getRootNode())}function kg(t){let e=wc.get(t);if(!e||!e.isConnected){if(e=t.querySelector("style[data-fullcalendar]"),!e){e=document.createElement("style"),e.setAttribute("data-fullcalendar","");const r=cD();r&&(e.nonce=r);const i=t===document?document.head:t,s=t===document?i.querySelector("script,link[rel=stylesheet],link[as=style],style"):i.firstChild;i.insertBefore(e,s)}wc.set(t,e),oD(e)}}function oD(t){for(const e of jg)Sg(t,e)}function Sg(t,e){const{sheet:r}=t,i=r.cssRules.length;e.split("}").forEach((s,a)=>{s=s.trim(),s&&r.insertRule(s+"}",i+a)})}let Po;function cD(){return Po===void 0&&(Po=dD()),Po}function dD(){const t=document.querySelector('meta[name="csp-nonce"]');if(t&&t.hasAttribute("content"))return t.getAttribute("content");const e=document.querySelector("script[nonce]");return e&&e.nonce||""}typeof document<"u"&&kg(document);var uD
vendor: 14,303 bytes, line 135
135=':root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") format("truetype")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:"\\e900"}.fc-icon-chevron-right:before{content:"\\e901"}.fc-icon-chevrons-left:before{content:"\\e902"}.fc-icon-chevrons-right:before{content:"\\e903"}.fc-icon-minus-square:before{content:"\\e904"}.fc-icon-plus-square:before{content:"\\e905"}.fc-icon-x:before{content:"\\e906"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:"";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:"";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}';
135ta(uD);class Fs{constructor(e){this.drainedOption=e,this.isRunning=!1,this.isDirty=!1,this.pauseDepths={},this.timeoutId=0}request(e){this.isDirty=!0,this.isPaused()||(this.clearTimeout(),e==null?this.tryDrain():this.timeoutId=setTimeout(this.tryDrain.bind(this),e))}pause(e=""){let{pauseDepths:r}=this;r[e]=(r[e]||0)+1,this.clearTimeout()}resume(e="",r){let{pauseDepths:i}=this;e in i&&(r?delete i[e]:(i[e]-=1,i[e]<=0&&delete i[e]),this.tryDrain())}isPaused(){return Object.keys(this.pauseDepths).length}tryDrain(){if(!this.isRunning&&!this.isPaused()){for(this.isRunning=!0;this.isDirty;)this.isDirty=!1,this.drained();this.isRunning=!1}}clear(){this.clearTimeout(),this.isDirty=!1,this.pauseDepths={}}clearTimeout(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=0)}drained(){this.drainedOption&&this.drainedOption()}}function no(t){t.parentNode&&t.parentNode.removeChild(t)}function Ut(t,e){if(t.closest)return t.closest(e);if(!document.documentElement.contains(t))return null;do{if(jd(t,e))return t;t=t.parentElement||t.parentNode}while(t!==null&&t.nodeType===1);return null}function jd(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector).call(t,e)}function Zi(t,e){let r=t instanceof HTMLElement?[t]:t,i=[];for(let s=0;s<r.length;s+=1){let a=r[s].querySelectorAll(e);for(let l=0;l<a.length;l+=1)i.push(a[l])}return i}function mD(t,e){let r=t instanceof HTMLElement?[t]:t,i=[];for(let s=0;s<r.length;s+=1){let a=r[s].children;for(let l=0;l<a.length;l+=1){let o=a[l];jd(o,e)&&i.push(o)}}return i}const hD=/(top|left|right|bottom|width|height)$/i;function Oi(t,e){for(let r in e)Eg(t,r,e[r])}function Eg(t,e,r){r==null?t.style[e]="":typeof r=="number"&&hD.test(e)?t.style[e]=`${r}px`:t.style[e]=r}function wg(t){var e,r;return(r=(e=t.composedPath)===null||e===void 0?void 0:e.call(t)[0])!==null&&r!==void 0?r:t.target}let ph=0;function ro(){return ph+=1,"fc-dom-"+ph}function io(t){t.preventDefault()}function pD(t,e){return r=>{let i=Ut(r.target,t);i&&e.call(i,r,i)}}function Cg(t,e,r,i){let s=pD(r,i);return t.addEventListener(e,s),()=>{t.removeEventListener(e,s)}}function fD(t,e,r,i){let s;return Cg(t,"mouseover",e,(a,l)=>{if(l!==s){s=l,r(a,l);let o=c=>{s=null,i(c,l),l.removeEventListener("mouseleave",o)};l.addEventListener("mouseleave",o)}})}const fh=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];function gD(t,e){let r=i=>{e(i),fh.forEach(s=>{t.removeEventListener(s,r)})};fh.forEach(i=>
vendor: 5,586 bytes, line 135
135{t.addEventListener(i,r)})}function Dg(t){return Object.assign({onClick:t},Rg(t))}function Rg(t){return{tabIndex:0,onKeyDown(e){(e.key==="Enter"||e.key===" ")&&(t(e),e.preventDefault())}}}let gh=0;function mr(){return gh+=1,String(gh)}function so(){document.body.classList.add("fc-not-allowed")}function ao(){document.body.classList.remove("fc-not-allowed")}function yD(t){t.style.userSelect="none",t.style.webkitUserSelect="none",t.addEventListener("selectstart",io)}function xD(t){t.style.userSelect="",t.style.webkitUserSelect="",t.removeEventListener("selectstart",io)}function vD(t){t.addEventListener("contextmenu",io)}function bD(t){t.removeEventListener("contextmenu",io)}function kd(t){let e=[],r=[],i,s;for(typeof t=="string"?r=t.split(/\s*,\s*/):typeof t=="function"?r=[t]:Array.isArray(t)&&(r=t),i=0;i<r.length;i+=1)s=r[i],typeof s=="string"?e.push(s.charAt(0)==="-"?{field:s.substring(1),order:-1}:{field:s,order:1}):typeof s=="function"&&e.push({func:s});return e}function Ig(t,e,r){let i,s;for(i=0;i<r.length;i+=1)if(s=_D(t,e,r[i]),s)return s;return 0}function _D(t,e,r){return r.func?r.func(t,e):Tg(t[r.field],e[r.field])*(r.order||1)}function Tg(t,e){return!t&&!e?0:e==null?-1:t==null?1:typeof t=="string"||typeof e=="string"?String(t).localeCompare(String(e)):t-e}function br(t,e){let r=String(t);return"000".substr(0,e-r.length)+r}function js(t,e,r){return typeof t=="function"?t(...e):typeof t=="string"?e.reduce((i,s,a)=>i.replace("$"+a,s||""),t):r}function jD(t,e){return t-e}function di(t){return t%1===0}function kD(t){let e=t.querySelector(".fc-scrollgrid-shrink-frame"),r=t.querySelector(".fc-scrollgrid-shrink-cushion");if(!e)throw new Error("needs fc-scrollgrid-shrink-frame className");if(!r)throw new Error("needs fc-scrollgrid-shrink-cushion className");return t.getBoundingClientRect().width-e.getBoundingClientRect().width+r.getBoundingClientRect().width}const yh=["years","months","days","milliseconds"],SD=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function Ge(t,e){return typeof t=="string"?ED(t):typeof t=="object"&&t?xh(t):typeof t=="number"?xh({[e||"milliseconds"]:t}):null}function ED(t){let e=SD.exec(t);if(e){let r=e[1]?-1:1;return{years:0,months:0,days:r*(e[2]?parseInt(e[2],10):0),milliseconds:r*((e[3]?parseInt(e[3],10):0)*60*60*1e3+(e[4]?parseInt(e[4],10):0)*60*1e3+(e[5]?parseInt(e[5],10):0)*1e3+(e[6]?parseInt(e[6],10):0))}}return null}function xh(t){let e={years:t.years||t.year||0,months:t.months||t.month||0,days:t.days||t.day||0,milliseconds:(t.hours||t.hour||0)*60*60*1e3+(t.minutes||t.minute||0)*60*1e3+(t.seconds||t.second||0)*1e3+(t.milliseconds||t.millisecond||t.ms||0)},r=t.weeks||t.week;return r&&(e.days+=r*7,e.specifiedWeeks=!0),e}function wD(t,e){return t.years===e.years&&t.months===e.months&&t.days===e.days&&t.milliseconds===e.milliseconds}function Ag(t){return!t.years&&!t.months&&!t.milliseconds?t.days:0}function Cc(t,e){return{years:t.years+e.years,months:t.months+e.months,days:t.days+e.days,milliseconds:t.milliseconds+e.milliseconds}}function CD(t,e){return{years:t.years-e.years,months:t.months-e.months,days:t.days-e.days,milliseconds:t.milliseconds-e.milliseconds}}function Mg(t,e){return{years:t.years*e,months:t.months*e,days:t.days*e,milliseconds:t.milliseconds*e}}function DD(t){return Li(t)/365}function RD(t){return Li(t)/30}function Li(t){return nn(t)/864e5}function ID(t){return nn(t)/(1e3*60)}function TD(t){return nn(t)/1e3}function nn(t){return t.years*(365*864e5)+t.months*(30*864e5)+t.days*864e5+t.milliseconds}function Yr(t,e){let r=null;for(let i=0;i<yh.length;i+=1){let s=yh[i];if(e[s]){let a=t[s]/e[s];if(!di(a)||r!==null&&r!==a)return null;r=a}else if(t[s])return null}return r}function Hr(t){let e=t.milliseconds;if(e){if(e%1e3!==0)return{unit:"millisecond",value:e};if(e%(1e3*60)!==0)return{unit:"second",value:e/1e3};if(e%(1e3*60*60)!==0)return{unit:"minute",value:e/(1e3*60)};if(e)return{unit:"hour",value:e/(1e3*60*60)}}return t.days?t.specifiedWeeks&&t.days%7===0?{unit:"week",value:t.days/7}:{unit:"day",value:t.days}:t.months?{unit:"month",value:t.months}:t.years?{unit:"year",value:t.years}:{unit:"millisecond",value:0}}function Mn(t,e,r){if(t===e)return!0;let i=t.length,s;if(i!==e.length)return!1;for(s=0;s<i;s+=1)if(!(r?r(t[s],e[s]):t[s]===e[s]))return!1;return!0}const Ng=["sun","mon","tue","wed","thu","fri","sat"];function vh(t,e){let r=Lr(t);return r[2]+=e*7,xn(r)}function Mt(t,e){let r=Lr(t);return r[2]+=e,xn(r)}function kr(t,e){let r=Lr(t);return r[6]+=e,xn(r)}function AD(t,e){return ji(t,e)/7}function ji(t,e){return(e.valueOf()-t.valueOf())/(1e3*60*60*24)}function MD(t,e){return(e.valueOf()-t.valueOf())/(1e3*60*60)}function ND(t,e){return(e.valueOf()-t.valueOf())/(1e3*60)}function PD(t,e){return(e.valueOf()-t.valueOf())/1e3}function zD(t,e){let r=ct(t),i=ct(e);return{years:0,months:0,days:Math.round(ji(r,i)),milliseconds:e.valueOf()-i.valueOf()-(t.valueOf()-r.valueOf())}}function OD(t,e){let r=Bs(t,e);return r!==null&&r%7===0?r/7:null}function Bs(t,e){return Fr(t)===Fr(e)?Math.round(ji(t,e)):null}function ct(t){return xn([t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()])}function LD(t){return xn([t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours()])}function FD(t){return xn([t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes()])}function BD(t){return xn([t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds()])}function YD(t,e,r){let i=t.getUTCFullYear(),s=zo(t,i,e,r);if(s<1)return zo(t,i-1,e,r);let a=zo(t,i+1,e,r);return a>=1?Math.min(s,a):s}
135function zo(t,e,r,i){let s=xn([e,0,1+HD(e,r,i)]),a=ct(t),l=Math.round(ji(s,a));return Math.floor(l/7)+1}function HD(t,e,r){let i=7+e-r;return-((7+xn([t,0,i]).getUTCDay()-e)%7)+i-1}function bh(t){return[t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()]}function _h(t){return new Date(t[0],t[1]||0,t[2]==null?1:t[2],t[3]||0,t[4]||0,t[5]||0)}function Lr(t){return[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.getUTCMilliseconds()]}function xn(t){return t.length===1&&(t=t.concat([0])),new Date(Date.UTC(...t))}function Sd(t){return!isNaN(t.valueOf())}function Fr(t){return t.getUTCHours()*1e3*60*60+t.getUTCMinutes()*1e3*60+t.getUTCSeconds()*1e3+t.getUTCMilliseconds()}function lo(t,e,r=!1){let i=t.toISOString();return i=i.replace(".000",""),r&&(i=i.replace("T00:00:00Z","")),i.length>10&&(e==null?i=i.replace("Z",""):e!==0&&(i=i.replace("Z",wd(e,!0)))),i}function Ed(t){return t.toISOString().replace(/T.*$/,"")}function UD(t){return t.toISOString().match(/^\d{4}-\d{2}/)[0]}function qD(t){return br(t.getUTCHours(),2)+":"+br(t.getUTCMinutes(),2)+":"+br(t.getUTCSeconds(),2)}function wd(t,e=!1){let r=t<0?"-":"+",i=Math.abs(t),s=Math.floor(i/60),a=Math.round(i%60);return e?`${r+br(s,2)}:${br(a,2)}`:`GMT${r}${s}${a?`:${br(a,2)}`:""}`}function Te(t,e,r){let i,s;return function(...a){if(!i)s=t.apply(this,a);else if(!Mn(i,a)){let l=t.apply(this,a);(!e||!e(l,s))&&(s=l)}return i=a,s}}function ui(t,e,r){let i,s;return a=>(i?Qt(i,a)||(s=t.call(this,a)):s=t.call(this,a),i=a,s)}function Oo(t,e,r){let i=[],s=[];return a=>{let l=i.length,o=a.length,c=0;for(;c<l;c+=1)if(a[c]){if(!Mn(i[c],a[c])){let d=t.apply(this,a[c]);(!e||!e(d,s[c]))&&(s[c]=d)}}for(;c<o;c+=1)s[c]=t.apply(this,a[c]);return i=a,s.splice(o),s}}function jh(t,e,r){let i={},s={};return a=>{let l={};for(let o in a)if(!s[o])l[o]=t.apply(this,a[o]);else if(Mn(i[o],a[o]))l[o]=s[o];else{r&&r(s[o]);let c=t.apply(this,a[o]);l[o]=c}return i=a,s=l,l}}const Lo={week:3,separator:9,omitZeroMinute:9,meridiem:9,omitCommas:9},vl={timeZoneName:7,era:6,year:5,month:4,day:2,weekday:2,hour:1,minute:1,second:1},Da=/\s*([ap])\.?m\.?/i,$D=/,/g,KD=/\s+/g,GD=/\u200e/g,WD=/UTC|GMT/;class VD{constructor(e){let r={},i={},s=9;for(let a in e)a in Lo?(i[a]=e[a],Lo[a]<9&&(s=Math.min(Lo[a],s))):(r[a]=e[a],a in vl&&(s=Math.min(vl[a],s)));this.standardDateProps=r,this.extendedSettings=i,this.smallestUnitNum=s,this.buildFormattingFunc=Te(kh)}format(e,r){return this.buildFormattingFunc(this.standardDateProps,this.extendedSettings,r)(e)}formatRange(e,r,i,s){let{standardDateProps:a,extendedSettings:l}=this,o=tR(e.marker,r.marker,i.calendarSystem);if(!o)return this.format(e,i);let c=o;c>1&&(a.year==="numeric"||a.year==="2-digit")&&(a.month==="numeric"||a.month==="2-digit")&&(a.day==="numeric"||a.day==="2-digit")&&(c=1);let d=this.format(e,i),u=this.format(r,i);if(d===u)return d;let m=nR(a,c),h=kh(m,l,i),p=h(e),y=h(r),f=rR(d,p,u,y),g=l.separator||s||i.defaultSeparator||"";return f?f.before+p+g+y+f.after:d+g+u}getSmallestUnit(){switch(this.smallestUnitNum){case 7:case 6:case 5:return"year";case 4:return"month";case 3:return"week";case 2:return"day";default:return"time"}}}function kh(t,e,r){let i=Object.keys(t).length;return i===1&&t.timeZoneName==="short"?s=>wd(s.timeZoneOffset):i===0&&e.week?s=>eR(r.computeWeekNumber(s.marker),r.weekText,r.weekTextLong,r.locale,e.week):QD(t,e,r)}function QD(t,e,r){t=Object.assign({},t),e=Object.assign({},e),XD(t,e),t.timeZone="UTC";let i=new Intl.DateTimeFormat(r.locale.codes,t),s;if(e.omitZeroMinute){let a=Object.assign({},t);delete a.minute,s=new Intl.DateTimeFormat(r.locale.codes,a)}return a=>{let{marker:l}=a,o;s&&!l.getUTCMinutes()?o=s:o=i;let c=o.format(l);return ZD(c,a,t,e,r)}}function XD(t,e){t.timeZoneName&&(t.hour||(t.hour="2-digit"),t.minute||(t.minute="2-digit")),t.timeZoneName==="long"&&(t.timeZoneName="short"),e.omitZeroMinute&&(t.second||t.millisecond)&&delete e.omitZeroMinute}function ZD(t,e,r,i,s){return t=t.replace(GD,""),r.timeZoneName==="short"&&(t=JD(t,s.timeZone==="UTC"||e.timeZoneOffset==null?"UTC":wd(e.timeZoneOffset))),i.omitCommas&&(t=t.replace($D,"").trim()),i.omitZeroMinute&&(t=t.replace(":00","")),i.meridiem===!1?t=t.replace(Da,"").trim():i.meridiem==="narrow"?t=t.replace(Da,(a,l)=>l.toLocaleLowerCase()):i.meridiem==="short"?t=t.replace(Da,(a,l)=>`${l.toLocaleLowerCase()}m`):i.meridiem==="lowercase"&&(t=t.replace(Da,a=>a.toLocaleLowerCase())),t=t.replace(KD," "),t=t.trim(),t}function JD(t,e){let r=!1;return t=t.replace(WD,()=>(r=!0,e)),r||(t+=` ${e}`),t}function eR(t,e,r,i,s){let a=[];return s==="long"?a.push(r):(s==="short"||s==="narrow")&&a.push(e),(s==="long"||s==="short")&&a.push(" "),a.push(i.simpleNumberFormat.format(t)),i.options.direction==="rtl"&&a.reverse(),a.join("")}function tR(t,e,r){return r.getMarkerYear(t)!==r.getMarkerYear(e)?5:r.getMarkerMonth(t)!==r.getMarkerMonth(e)?4:r.getMarkerDay(t)!==r.getMarkerDay(e)?2:Fr(t)!==Fr(e)?1:0}function nR(t,e){let r={};for(let i in t)(!(i in vl)||vl[i]<=e)&&(r[i]=t[i]);return r}function rR(t,e,r,i){let s=0;for(;s<t.length;){let a=t.indexOf(e,s);if(a===-1)break;let l=t.substr(0,a);s=a+e.length;let o=t.substr(s),c=0;for(;c<r.length;){let d=r.indexOf(i,c);if(d===-1)break;let u=r.substr(0,d);c=d+i.length;let m=r.substr(c);if(l===u&&o===m)return{before:l,after:o}}}return null}function Sh(t,e){let r=e.markerToArray(t.marker);return{marker:t.marker,timeZoneOffset:t.timeZoneOffset,array:r,year:r[0],month:r[1],day:r[2],hour:r[3],minute:r[4],second:r[5],millisecond:r[6]}}function bl(t,e,r,i){let s=Sh(t,r.calendarSystem),a=e?Sh(e,r.calendarSystem):null;return{date:s,start:s,end:a,timeZone:r.timeZone,localeCodes:r.locale.codes,defaultSeparator:i||r.defaultSeparator}}class iR{constructor(e){this.cmdStr=e}format(e,r,i){return r.cmdFormatter(this.cmdStr,bl(e,null,r,i))}formatRange(e,r,i,s){return i.cmdFormatter(this.cmdStr,bl(e,r,i,s))}}class sR{constructor(e){this.func=e}format(e,r,i){return this.func(bl(e,null,r,i))}formatRange(e,r,i,s){return this.func(bl(e,r,i,s))}}function bt(t){return typeof t=="object"&&t?new VD(t):typeof t=="string"?new iR(t):typeof t=="function"?new sR(t):null}const Eh={navLinkDayClick:Q,navLinkWeekClick:Q,duration:Ge,bootstrapFontAwesome:Q,buttonIcons:Q,customButtons:Q,defaultAllDayEventDuration:Ge,defaultTimedEventDuration:Ge,nextDayThreshold:Ge,scrollTime:Ge,scrollTimeReset:Boolean,slotMinTime:Ge,slotMaxTime:Ge,dayPopoverFormat:bt,slotDuration:Ge,snapDuration:Ge,headerToolbar:Q,footerToolbar:Q,defaultRangeSeparator:String,titleRangeSeparator:String,forceEventDuration:Boolean,dayHeaders:Boolean,dayHeaderFormat:bt,dayHeaderClassNames:Q,dayHeaderContent:Q,dayHeaderDidMount:Q,dayHeaderWillUnmount:Q,dayCellClassNames:Q,dayCellContent:Q,dayCellDidMount:Q,dayCellWillUnmount:Q,initialView:String,aspectRatio:Number,weekends:Boolean,weekNumberCalculation:Q,weekNumbers:Boolean,weekNumberClassNames:Q,weekNumberContent:Q,weekNumberDidMount:Q,weekNumberWillUnmount:Q,editable:Boolean,viewClassNames:Q,viewDidMount:Q,viewWillUnmount:Q,nowIndicator:Boolean,nowIndicatorSnap:Q,nowIndicatorClassNames:Q,nowIndicatorContent:Q,nowIndicatorDidMount:Q,nowIndicatorWillUnmount:Q,showNonCurrentDates:Boolean,lazyFetching:Boolean,startParam:String,endParam:String,timeZoneParam:String,timeZone:String,locales:Q,locale:Q,themeSystem:String,dragRevertDuration:Number,dragScroll:Boolean,allDayMaintainDuration:Boolean,unselectAuto:Boolean,dropAccept:Q,eventOrder:kd,eventOrderStrict:Boolean,handleWindowResize:Boolean,windowResizeDelay:Number,longPressDelay:Number,eventDragMinDistance:Number,expandRows:Boolean,height:Q,contentHeight:Q,direction:String,weekNumberFormat:bt,eventResizableFromStart:Boolean,displayEventTime:Boolean,displayEventEnd:Boolean,weekText:String,weekTextLong:String,progressiveEventRendering:Boolean,businessHours:Q,initialDate:Q,now:Q,eventDataTransform:Q,stickyHeaderDates:Q,stickyFooterScrollbar:Q,viewHeight:Q,defaultAllDay:Boolean,eventSourceFailure:Q,eventSourceSuccess:Q,eventDisplay:String,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventOverlap:Q,eventConstraint:Q,eventAllow:Q,eventBackgroun
vendor: 128,260 bytes, line 135
135dColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String,eventClassNames:Q,eventContent:Q,eventDidMount:Q,eventWillUnmount:Q,selectConstraint:Q,selectOverlap:Q,selectAllow:Q,droppable:Boolean,unselectCancel:String,slotLabelFormat:Q,slotLaneClassNames:Q,slotLaneContent:Q,slotLaneDidMount:Q,slotLaneWillUnmount:Q,slotLabelClassNames:Q,slotLabelContent:Q,slotLabelDidMount:Q,slotLabelWillUnmount:Q,dayMaxEvents:Q,dayMaxEventRows:Q,dayMinWidth:Number,slotLabelInterval:Ge,allDayText:String,allDayClassNames:Q,allDayContent:Q,allDayDidMount:Q,allDayWillUnmount:Q,slotMinWidth:Number,navLinks:Boolean,eventTimeFormat:bt,rerenderDelay:Number,moreLinkText:Q,moreLinkHint:Q,selectMinDistance:Number,selectable:Boolean,selectLongPressDelay:Number,eventLongPressDelay:Number,selectMirror:Boolean,eventMaxStack:Number,eventMinHeight:Number,eventMinWidth:Number,eventShortHeight:Number,slotEventOverlap:Boolean,plugins:Q,firstDay:Number,dayCount:Number,dateAlignment:String,dateIncrement:Ge,hiddenDays:Q,fixedWeekCount:Boolean,validRange:Q,visibleRange:Q,titleFormat:Q,eventInteractive:Boolean,noEventsText:String,viewHint:Q,navLinkHint:Q,closeHint:String,timeHint:String,eventHint:String,moreLinkClick:Q,moreLinkClassNames:Q,moreLinkContent:Q,moreLinkDidMount:Q,moreLinkWillUnmount:Q,monthStartFormat:bt,handleCustomRendering:Q,customRenderingMetaMap:Q,customRenderingReplaces:Boolean},mi={eventDisplay:"auto",defaultRangeSeparator:" - ",titleRangeSeparator:" â ",defaultTimedEventDuration:"01:00:00",defaultAllDayEventDuration:{day:1},forceEventDuration:!1,nextDayThreshold:"00:00:00",dayHeaders:!0,initialView:"",aspectRatio:1.35,headerToolbar:{start:"title",center:"",end:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"local",editable:!1,nowIndicator:!1,scrollTime:"06:00:00",scrollTimeReset:!0,slotMinTime:"00:00:00",slotMaxTime:"24:00:00",showNonCurrentDates:!0,lazyFetching:!0,startParam:"start",endParam:"end",timeZoneParam:"timeZone",timeZone:"local",locales:[],locale:"",themeSystem:"standard",dragRevertDuration:500,dragScroll:!0,allDayMaintainDuration:!1,unselectAuto:!0,dropAccept:"*",eventOrder:"start,-duration,allDay,title",dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3,eventDragMinDistance:5,expandRows:!1,navLinks:!1,selectable:!1,eventMinHeight:15,eventMinWidth:30,eventShortHeight:30,monthStartFormat:{month:"long",day:"numeric"},nowIndicatorSnap:"auto"},wh={datesSet:Q,eventsSet:Q,eventAdd:Q,eventChange:Q,eventRemove:Q,windowResize:Q,eventClick:Q,eventMouseEnter:Q,eventMouseLeave:Q,select:Q,unselect:Q,loading:Q,_unmount:Q,_beforeprint:Q,_afterprint:Q,_noEventDrop:Q,_noEventResize:Q,_resize:Q,_scrollRequest:Q},Ch={buttonText:Q,buttonHints:Q,views:Q,plugins:Q,initialEvents:Q,events:Q,eventSources:Q},ti={headerToolbar:ni,footerToolbar:ni,buttonText:ni,buttonHints:ni,buttonIcons:ni,dateIncrement:ni,plugins:Ra,events:Ra,eventSources:Ra,resources:Ra};function ni(t,e){return typeof t=="object"&&typeof e=="object"&&t&&e?Qt(t,e):t===e}function Ra(t,e){return Array.isArray(t)&&Array.isArray(e)?Mn(t,e):t===e}const aR={type:String,component:Q,buttonText:String,buttonTextKey:String,dateProfileGeneratorClass:Q,usesMinMaxTime:Boolean,classNames:Q,content:Q,didMount:Q,willUnmount:Q};function Fo(t){return Cd(t,ti)}function Ji(t,e){let r={},i={};for(let s in e)s in t&&(r[s]=e[s](t[s]));for(let s in t)s in e||(i[s]=t[s]);return{refined:r,extra:i}}function Q(t){return t}const{hasOwnProperty:_l}=Object.prototype;function Cd(t,e){let r={};if(e){for(let i in e)if(e[i]===ni){let s=[];for(let a=t.length-1;a>=0;a-=1){let l=t[a][i];if(typeof l=="object"&&l)s.unshift(l);else if(l!==void 0){r[i]=l;break}}s.length&&(r[i]=Cd(s))}}for(let i=t.length-1;i>=0;i-=1){let s=t[i];for(let a in s)a in r||(r[a]=s[a])}return r}function Sr(t,e){let r={};for(let i in t)e(t[i],i)&&(r[i]=t[i]);return r}function dn(t,e){let r={};for(let i in t)r[i]=e(t[i],i);return r}function Pg(t){let e={};for(let r of t)e[r]=!0;return e}function Dd(t){let e=[];for(let r in t)e.push(t[r]);return e}function Qt(t,e){if(t===e)return!0;for(let r in t)if(_l.call(t,r)&&!(r in e))return!1;for(let r in e)if(_l.call(e,r)&&t[r]!==e[r])return!1;return!0}const lR=/^on[A-Z]/;function oR(t,e){const r=cR(t,e);for(let i of r)if(!lR.test(i))return!1;return!0}function cR(t,e){let r=[];for(let i in t)_l.call(t,i)&&(i in e||r.push(i));for(let i in e)_l.call(e,i)&&t[i]!==e[i]&&r.push(i);return r}function Ga(t,e,r={}){if(t===e)return!0;for(let i in e)if(!(i in t&&dR(t[i],e[i],r[i])))return!1;for(let i in t)if(!(i in e))return!1;return!0}function dR(t,e,r){return t===e||r===!0?!0:r?r(t,e):!1}function zg(t,e=0,r,i=1){let s=[];r==null&&(r=Object.keys(t).length);for(let a=e;a<r;a+=i){let l=t[a];l!==void 0&&s.push(l)}return s}let Og={};function uR(t,e){Og[t]=e}function mR(t){return new Og[t]}class hR{getMarkerYear(e){return e.getUTCFullYear()}getMarkerMonth(e){return e.getUTCMonth()}getMarkerDay(e){return e.getUTCDate()}arrayToMarker(e){return xn(e)}markerToArray(e){return Lr(e)}}uR("gregory",hR);const pR=/^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;function fR(t){let e=pR.exec(t);if(e){let r=new Date(Date.UTC(Number(e[1]),e[3]?Number(e[3])-1:0,Number(e[5]||1),Number(e[7]||0),Number(e[8]||0),Number(e[10]||0),e[12]?+`0.${e[12]}`*1e3:0));if(Sd(r)){let i=null;return e[13]&&(i=(e[15]==="-"?-1:1)*(Number(e[16]||0)*60+Number(e[18]||0))),{marker:r,isTimeUnspecified:!e[6],timeZoneOffset:i}}}return null}class gR{constructor(e){let r=this.timeZone=e.timeZone,i=r!=="local"&&r!=="UTC";e.namedTimeZoneImpl&&i&&(this.namedTimeZoneImpl=new e.namedTimeZoneImpl(r)),this.canComputeOffset=!!(!i||this.namedTimeZoneImpl),this.calendarSystem=mR(e.calendarSystem),this.locale=e.locale,this.weekDow=e.locale.week.dow,this.weekDoy=e.locale.week.doy,e.weekNumberCalculation==="ISO"&&(this.weekDow=1,this.weekDoy=4),typeof e.firstDay=="number"&&(this.weekDow=e.firstDay),typeof e.weekNumberCalculation=="function"&&(this.weekNumberFunc=e.weekNumberCalculation),this.weekText=e.weekText!=null?e.weekText:e.locale.options.weekText,this.weekTextLong=(e.weekTextLong!=null?e.weekTextLong:e.locale.options.weekTextLong)||this.weekText,this.cmdFormatter=e.cmdFormatter,this.defaultSeparator=e.defaultSeparator}createMarker(e){let r=this.createMarkerMeta(e);return r===null?null:r.marker}createNowMarker(){return this.canComputeOffset?this.timestampToMarker(new Date().valueOf()):xn(bh(new Date))}createMarkerMeta(e){if(typeof e=="string")return this.parse(e);let r=null;return typeof e=="number"?r=this.timestampToMarker(e):e instanceof Date?(e=e.valueOf(),isNaN(e)||(r=this.timestampToMarker(e))):Array.isArray(e)&&(r=xn(e)),r===null||!Sd(r)?null:{marker:r,isTimeUnspecified:!1,forcedTzo:null}}parse(e){let r=fR(e);if(r===null)return null;let{marker:i}=r,s=null;return r.timeZoneOffset!==null&&(this.canComputeOffset?i=this.timestampToMarker(i.valueOf()-r.timeZoneOffset*60*1e3):s=r.timeZoneOffset),{marker:i,isTimeUnspecified:r.isTimeUnspecified,forcedTzo:s}}getYear(e){return this.calendarSystem.getMarkerYear(e)}getMonth(e){return this.calendarSystem.getMarkerMonth(e)}getDay(e){return this.calendarSystem.getMarkerDay(e)}add(e,r){let i=this.calendarSystem.markerToArray(e);return i[0]+=r.years,i[1]+=r.months,i[2]+=r.days,i[6]+=r.milliseconds,this.calendarSystem.arrayToMarker(i)}subtract(e,r){let i=this.calendarSystem.markerToArray(e);return i[0]-=r.years,i[1]-=r.months,i[2]-=r.days,i[6]-=r.milliseconds,this.calendarSystem.arrayToMarker(i)}addYears(e,r){let i=this.calendarSystem.markerToArray(e);return i[0]+=r,this.calendarSystem.arrayToMarker(i)}addMonths(e,r){let i=this.calendarSystem.markerToArray(e);return i[1]+=r,this.calendarSystem.arrayToMarker(i)}diffWholeYears(e,r){let{calendarSystem:i}=this;return Fr(e)===Fr(r)&&i.getMarkerDay(e)===i.getMarkerDay(r)&&i.getMarkerMonth(e)===i.getMarkerMonth(r)?i.getMarkerYear(r)-i.getMarkerYear(e):null}diffWholeMonths(e,r){let{calendarSystem:i}=this;return Fr(e)===Fr(r)&&i.getMarkerDay(e)===i.getMarkerDay(r)?i.getMarkerMonth(r)-i.getMarkerMonth(e)+(i.getMarkerYear(r)-i.getMarkerYear(e))*12:null}greatestWholeUnit(e,r){let i=this.diffWholeYears(e,r);return i!==null?{unit:"year",value:i}:(i=this.diffWholeMonths(e,r),i!==null?{unit:"month",value:i}:(i=OD(e,r),i!==null?{unit:"week",value:i}:(i=Bs(e,r),i!==null?{unit:"day",value:i}:(i=MD(e,r),di(i)?{unit:"hour",value:i}:(i=ND(e,r),di(i)?{unit:"minute",value:i}:(i=PD(e,r),di(i)?{unit:"second",value:i}:{unit:"millisecond",value:r.valueOf()-e.valueOf()}))))))}countDurationsBetween(e,r,i){let s;return i.years&&(s=this.diffWholeYears(e,r),s!==null)?s/DD(i):i.months&&(s=this.diffWholeMonths(e,r),s!==null)?s/RD(i):i.days&&(s=Bs(e,r),s!==null)?s/Li(i):(r.valueOf()-e.valueOf())/nn(i)}startOf(e,r){return r==="year"?this.startOfYear(e):r==="month"?this.startOfMonth(e):r==="week"?this.startOfWeek(e):r==="day"?ct(e):r==="hour"?LD(e):r==="minute"?FD(e):r==="second"?BD(e):null}startOfYear(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e)])}startOfMonth(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e)])}startOfWeek(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e),e.getUTCDate()-(e.getUTCDay()-this.weekDow+7)%7])}computeWeekNumber(e){return this.weekNumberFunc?this.weekNumberFunc(this.toDate(e)):YD(e,this.weekDow,this.weekDoy)}format(e,r,i={}){return r.format({marker:e,timeZoneOffset:i.forcedTzo!=null?i.forcedTzo:this.offsetForMarker(e)},this)}formatRange(e,r,i,s={}){return s.isEndExclusive&&(r=kr(r,-1)),i.formatRange({marker:e,timeZoneOffset:s.forcedStartTzo!=null?s.forcedStartTzo:this.offsetForMarker(e)},{marker:r,timeZoneOffset:s.forcedEndTzo!=null?s.forcedEndTzo:this.offsetForMarker(r)},this,s.defaultSeparator)}formatIso(e,r={}){let i=null;return r.omitTimeZoneOffset||(r.forcedTzo!=null?i=r.forcedTzo:i=this.offsetForMarker(e)),lo(e,i,r.omitTime)}timestampToMarker(e){return this.timeZone==="local"?xn(bh(new Date(e))):this.timeZone==="UTC"||!this.namedTimeZoneImpl?new Date(e):xn(this.namedTimeZoneImpl.timestampToArray(e))}offsetForMarker(e){return this.timeZone==="local"?-_h(Lr(e)).getTimezoneOffset():this.timeZone==="UTC"?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(Lr(e)):null}toDate(e,r){return this.timeZone==="local"?_h(Lr(e)):this.timeZone==="UTC"?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-this.namedTimeZoneImpl.offsetForArray(Lr(e))*1e3*60):new Date(e.valueOf()-(r||0))}}class na{constructor(e){this.iconOverrideOption&&this.setIconOverride(e[this.iconOverrideOption])}setIconOverride(e){let r,i;if(typeof e=="object"&&e){r=Object.assign({},this.iconClasses);for(i in e)r[i]=this.applyIconOverridePrefix(e[i]);this.iconClasses=r}else e===!1&&(this.iconClasses={})}applyIconOverridePrefix(e){let r=this.iconOverridePrefix;return r&&e.indexOf(r)!==0&&(e=r+e),e}getClass(e){return this.classes[e]||""}getIconClass(e,r){let i;return r&&this.rtlIconClasses?i=this.rtlIconClasses[e]||this.iconClasses[e]:i=this.iconClasses[e],i?`${this.baseIconClass} ${i}`:""}getCustomButtonIconClass(e){let r;return this.iconOverrideCustomButtonOption&&(r=e[this.iconOverrideCustomButtonOption],r)?`${this.baseIconClass} ${this.applyIconOverridePrefix(r)}`:""}}na.prototype.classes={};na.prototype.iconClasses={};na.prototype.baseIconClass="";na.prototype.iconOverridePrefix="";function jl(t){t();let e=Pe.debounceRendering,r=[];function i(s){r.push(s)}for(Pe.debounceRendering=i,Ls(E(yR,{}),document.createElement("div"));r.length;)r.shift()();Pe.debounceRendering=e}class yR extends Rn{render(){return E("div",{})}componentDidMount(){this.setState({})}}function Lg(t){let e=K0(t),r=e.Provider;return e.Provider=function(){let i=!this.getChildContext,s=r.apply(this,arguments);if(i){let a=[];this.shouldComponentUpdate=l=>{this.props.value!==l.value&&a.forEach(o=>{o.context=l.value,o.forceUpdate()})},this.sub=l=>{a.push(l);let o=l.componentWillUnmount;l.componentWillUnmount=()=>{a.splice(a.indexOf(l),1),o&&o.call(l)}}}return s},e}class xR{constructor(e,r,i,s){this.execFunc=e,this.emitter=r,this.scrollTime=i,this.scrollTimeReset=s,this.handleScrollRequest=a=>{this.queuedRequest=Object.assign({},this.queuedRequest||{},a),this.drain()},r.on("_scrollRequest",this.handleScrollRequest),this.fireInitialScroll()}detach(){this.emitter.off("_scrollRequest",this.handleScrollRequest)}update(e){e&&this.scrollTimeReset?this.fireInitialScroll():this.drain()}fireInitialScroll(){this.handleScrollRequest({time:this.scrollTime})}drain(){this.queuedRequest&&this.execFunc(this.queuedRequest)&&(this.queuedRequest=null)}}const Dr=Lg({});function vR(t,e,r,i,s,a,l,o,c,d,u,m,h,p){return{dateEnv:s,nowManager:a,options:r,pluginHooks:o,emitter:u,dispatch:c,getCurrentData:d,calendarApi:m,viewSpec:t,viewApi:e,dateProfileGenerator:i,theme:l,isRtl:r.direction==="rtl",addResizeHandler(y){u.on("_resize",y)},removeResizeHandler(y){u.off("_resize",y)},createScrollResponder(y){return new xR(y,u,Ge(r.scrollTime),r.scrollTimeReset)},registerInteractiveComponent:h,unregisterInteractiveComponent:p}}class ki extends Rn{shouldComponentUpdate(e,r){return!Ga(this.props,e,this.propEquality)||!Ga(this.state,r,this.stateEquality)}safeSetState(e){Ga(this.state,Object.assign(Object.assign({},this.state),e),this.stateEquality)||this.setState(e)}}ki.addPropsEquality=bR;ki.addStateEquality=_R;ki.contextType=Dr;ki.prototype.propEquality={};ki.prototype.stateEquality={};class Ne extends ki{}Ne.contextType=Dr;function bR(t){let e=Object.create(this.prototype.propEquality);Object.assign(e,t),this.prototype.propEquality=e}function _R(t){let e=Object.create(this.prototype.stateEquality);Object.assign(e,t),this.prototype.stateEquality=e}function Nn(t,e){typeof t=="function"?t(e):t&&(t.current=e)}class Rd extends Ne{constructor(){super(...arguments),this.id=mr(),this.queuedDomNodes=[],this.currentDomNodes=[],this.handleEl=e=>{const{options:r}=this.context,{generatorName:i}=this.props;(!r.customRenderingReplaces||!Dc(i,r))&&this.updateElRef(e)},this.updateElRef=e=>{this.props.elRef&&Nn(this.props.elRef,e)}}render(){const{props:e,context:r}=this,{options:i}=r,{customGenerator:s,defaultGenerator:a,renderProps:l}=e,o=Fg(e,[],this.handleEl);let c=!1,d,u=[],m;if(s!=null){const h=typeof s=="function"?s(l,E):s;if(h===!0)c=!0;else{const p=h&&typeof h=="object";p&&"html"in h?o.dangerouslySetInnerHTML={__html:h.html}:p&&"domNodes"in h?u=Array.prototype.slice.call(h.domNodes):(p?sg(h):typeof h!="function")?d=h:m=h}}else c=!Dc(e.generatorName,i);return c&&a&&(d=a(l)),this.queuedDomNodes=u,this.currentGeneratorMeta=m,E(e.elTag,o,d)}componentDidMount(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentDidUpdate(){this.applyQueueudDomNodes(),this.triggerCustomRendering(!0)}componentWillUnmount(){this.triggerCustomRendering(!1)}triggerCustomRendering(e){var r;const{props:i,context:s}=this,{handleCustomRendering:a,customRenderingMetaMap:l}=s.options;if(a){const o=(r=this.currentGeneratorMeta)!==null&&r!==void 0?r:l==null?void 0:l[i.generatorName];o&&a(Object.assign(Object.assign({id:this.id,isActive:e,containerEl:this.base,reportNewContainerEl:this.updateElRef,generatorMeta:o},i),{elClasses:(i.elClasses||[]).filter(jR)}))}}applyQueueudDomNodes(){const{queuedDomNodes:e,currentDomNodes:r}=this,i=this.base;if(!Mn(e,r)){r.forEach(no);for(let s of e)i.appendChild(s);this.currentDomNodes=e}}}Rd.addPropsEquality({elClasses:Mn,elStyle:Qt,elAttrs:oR,renderProps:Qt});function Dc(t,e){var r;return!!(e.handleCustomRendering&&t&&(!((r=e.customRenderingMetaMap)===null||r===void 0)&&r[t]))}function Fg(t,e,r){const i=Object.assign(Object.assign({},t.elAttrs),{ref:r});return(t.elClasses||e)&&(i.className=(t.elClasses||[]).concat(e||[]).concat(i.className||[]).filter(Boolean).join(" ")),t.elStyle&&(i.style=t.elStyle),i}function jR(t){return!!t}const Bg=Lg(0);class Dt extends Rn{constructor(){super(...arguments),this.InnerContent=kR.bind(void 0,this),this.handleEl=e=>{this.el=e,this.props.elRef&&(Nn(this.props.elRef,e),e&&this.didMountMisfire&&this.componentDidMount())}}render(){const{props:e}=this,r=SR(e.classNameGenerator,e.renderProps);if(e.children){const i=Fg(e,r,this.handleEl),s=e.children(this.InnerContent,e.renderProps,i);return e.elTag?E(e.elTag,i,s):s}else return E(Rd,Object.assign(Object.assign({},e),{elRef:this.handleEl,elTag:e.elTag||"div",elClasses:(e.elClasses||[]).concat(r),renderId:this.context}))}componentDidMount(){var e,r;this.el?(r=(e=this.props).didMount)===null||r===void 0||r.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.el})):this.didMountMisfire=!0}componentWillUnmount(){var e,r;(r=(e=this.props).willUnmount)===null||r===void 0||r.call(e,Object.assign(Object.assign({},this.props.renderProps),{el:this.el}))}}Dt.contextType=Bg;function kR(t,e){const r=t.props;return E(Rd,Object.assign({renderProps:r.renderProps,generatorName:r.generatorName,customGenerator:r.customGenerator,defaultGenerator:r.defaultGenerator,renderId:t.context},e))}function SR(t,e){const r=typeof t=="function"?t(e):t||[];return typeof r=="string"?[r]:r}class Ui extends Ne{render(){let{props:e,context:r}=this,{options:i}=r,s={view:r.viewApi};return E(Dt,{elRef:e.elRef,elTag:e.elTag||"div",elAttrs:e.elAttrs,elClasses:[...Yg(e.viewSpec),...e.elClasses||[]],elStyle:e.elStyle,renderProps:s,classNameGenerator:i.viewClassNames,generatorName:void 0,didMount:i.viewDidMount,willUnmount:i.viewWillUnmount},()=>e.children)}}function Yg(t){return[`fc-${t.type}-view`,"fc-view"]}function ER(t,e){let r=null,i=null;return t.start&&(r=e.createMarker(t.start)),t.end&&(i=e.createMarker(t.end)),!r&&!i||r&&i&&i<r?null:{start:r,end:i}}function Dh(t,e){let r=[],{start:i}=e,s,a;for(t.sort(wR),s=0;s<t.length;s+=1)a=t[s],a.start>i&&r.push({start:i,end:a.start}),a.end>i&&(i=a.end);return i<e.end&&r.push({start:i,end:e.end}),r}function wR(t,e){return t.start.valueOf()-e.start.valueOf()}function Ur(t,e){let{start:r,end:i}=t,s=null;return e.start!==null&&(r===null?r=e.start:r=new Date(Math.max(r.valueOf(),e.start.valueOf()))),e.end!=null&&(i===null?i=e.end:i=new Date(Math.min(i.valueOf(),e.end.valueOf()))),(r===null||i===null||r<i)&&(s={start:r,end:i}),s}function Hg(t,e){return(t.start===null?null:t.start.valueOf())===(e.start===null?null:e.start.valueOf())&&(t.end===null?null:t.end.valueOf())===(e.end===null?null:e.end.valueOf())}function oo(t,e){return(t.end===null||e.start===null||t.end>e.start)&&(t.start===null||e.end===null||t.start<e.end)}function co(t,e){return(t.start===null||e.start!==null&&e.start>=t.start)&&(t.end===null||e.end!==null&&e.end<=t.end)}function dr(t,e){return(t.start===null||e>=t.start)&&(t.end===null||e<t.end)}function CR(t,e){return e.start!=null&&t<e.start?e.start:e.end!=null&&t>=e.end?new Date(e.end.valueOf()-1):t}function Ug(t){let e=Math.floor(ji(t.start,t.end))||1,r=ct(t.start),i=Mt(r,e);return{start:r,end:i}}function Id(t,e=Ge(0)){let r=null,i=null;if(t.end){i=ct(t.end);let s=t.end.valueOf()-i.valueOf();s&&s>=nn(e)&&(i=Mt(i,1))}return t.start&&(r=ct(t.start),i&&i<=r&&(i=Mt(r,1))),{start:r,end:i}}function Ni(t,e,r,i){return i==="year"?Ge(r.diffWholeYears(t,e),"year"):i==="month"?Ge(r.diffWholeMonths(t,e),"month"):zD(t,e)}class qg{constructor(e){this.props=e,this.initHiddenDays()}buildPrev(e,r,i){let{dateEnv:s}=this.props,a=s.subtract(s.startOf(r,e.currentRangeUnit),e.dateIncrement);return this.build(a,-1,i)}buildNext(e,r,i){let{dateEnv:s}=this.props,a=s.add(s.startOf(r,e.currentRangeUnit),e.dateIncrement);return this.build(a,1,i)}build(e,r,i=!0){let{props:s}=this,a,l,o,c,d,u;return a=this.buildValidRange(),a=this.trimHiddenDays(a),i&&(e=CR(e,a)),l=this.buildCurrentRangeInfo(e,r),o=/^(year|month|week|day)$/.test(l.unit),c=this.buildRenderRange(this.trimHiddenDays(l.range),l.unit,o),c=this.trimHiddenDays(c),d=c,s.showNonCurrentDates||(d=Ur(d,l.range)),d=this.adjustActiveRange(d),d=Ur(d,a),u=oo(l.range,a),dr(c,e)||(e=c.start),{currentDate:e,validRange:a,currentRange:l.range,currentRangeUnit:l.unit,isRangeAllDay:o,activeRange:d,renderRange:c,slotMinTime:s.slotMinTime,slotMaxTime:s.slotMaxTime,isValid:u,dateIncrement:this.buildDateIncrement(l.duration)}}buildValidRange(){let e=this.props.validRangeInput,r=typeof e=="function"?e.call(this.props.calendarApi,this.props.dateEnv.toDate(this.props.nowManager.getDateMarker())):e;return this.refineRange(r)||{start:null,end:null}}buildCurrentRangeInfo(e,r){let{props:i}=this,s=null,a=null,l=null,o;return i.duration?(s=i.duration,a=i.durationUnit,l=this.buildRangeFromDuration(e,r,s,a)):(o=this.props.dayCount)?(a="day",l=this.buildRangeFromDayCount(e,r,o)):(l=this.buildCustomVisibleRange(e))?a=i.dateEnv.greatestWholeUnit(l.start,l.end).unit:(s=this.getFallbackDuration(),a=Hr(s).unit,l=this.buildRangeFromDuration(e,r,s,a)),{duration:s,unit:a,range:l}}getFallbackDuration(){return Ge({day:1})}adjustActiveRange(e){let{dateEnv:r,usesMinMaxTime:i,slotMinTime:s,slotMaxTime:a}=this.props,{start:l,end:o}=e;return i&&(Li(s)<0&&(l=ct(l),l=r.add(l,s)),Li(a)>1&&(o=ct(o),o=Mt(o,-1),o=r.add(o,a))),{start:l,end:o}}buildRangeFromDuration(e,r,i,s){let{dateEnv:a,dateAlignment:l}=this.props,o,c,d;if(!l){let{dateIncrement:m}=this.props;m&&nn(m)<nn(i)?l=Hr(m).unit:l=s}Li(i)<=1&&this.isHiddenDay(o)&&(o=this.skipHiddenDays(o,r),o=ct(o));function u(){o=a.startOf(e,l),c=a.add(o,i),d={start:o,end:c}}return u(),this.trimHiddenDays(d)||(e=this.skipHiddenDays(e,r),u()),d}buildRangeFromDayCount(e,r,i){let{dateEnv:s,dateAlignment:a}=this.props,l=0,o=e,c;a&&(o=s.startOf(o,a)),o=ct(o),o=this.skipHiddenDays(o,r),c=o;do c=Mt(c,1),this.isHiddenDay(c)||(l+=1);while(l<i);return{start:o,end:c}}buildCustomVisibleRange(e){let{props:r}=this,i=r.visibleRangeInput,s=typeof i=="function"?i.call(r.calendarApi,r.dateEnv.toDate(e)):i,a=this.refineRange(s);return a&&(a.start==null||a.end==null)?null:a}buildRenderRange(e,r,i){return e}buildDateIncrement(e){let{dateIncrement:r}=this.props,i;return r||((i=this.props.dateAlignment)?Ge(1,i):e||Ge({days:1}))}refineRange(e){if(e){let r=ER(e,this.props.dateEnv);return r&&(r=Id(r)),r}return null}initHiddenDays(){let e=this.props.hiddenDays||[],r=[],i=0,s;for(this.props.weekends===!1&&e.push(0,6),s=0;s<7;s+=1)(r[s]=e.indexOf(s)!==-1)||(i+=1);if(!i)throw new Error("invalid hiddenDays");this.isHiddenDayHash=r}trimHiddenDays(e){let{start:r,end:i}=e;return r&&(r=this.skipHiddenDays(r)),i&&(i=this.skipHiddenDays(i,-1,!0)),r==null||i==null||r<i?{start:r,end:i}:null}isHiddenDay(e){return e instanceof Date&&(e=e.getUTCDay()),this.isHiddenDayHash[e]}skipHiddenDays(e,r=1,i=!1){for(;this.isHiddenDayHash[(e.getUTCDay()+(i?r:0)+7)%7];)e=Mt(e,r);return e}}function uo(t,e,r,i){return{instanceId:mr(),defId:t,range:e,forcedStartTzo:r??null,forcedEndTzo:i??null}}function DR(t,e,r,i){for(let s=0;s<i.length;s+=1){let a=i[s].parse(t,r);if(a){let{allDay:l}=t;return l==null&&(l=e,l==null&&(l=a.allDayGuess,l==null&&(l=!1))),{allDay:l,duration:a.duration,typeData:a.typeData,typeId:s}}}return null}function xi(t,e,r){let{dateEnv:i,pluginHooks:s,options:a}=r,{defs:l,instances:o}=t;o=Sr(o,c=>!l[c.defId].recurringDef);for(let c in l){let d=l[c];if(d.recurringDef){let{duration:u}=d.recurringDef;u||(u=d.allDay?a.defaultAllDayEventDuration:a.defaultTimedEventDuration);let m=RR(d,u,e,i,s.recurringTypes);for(let h of m){let p=uo(c,{start:h,end:i.add(h,u)});o[p.instanceId]=p}}}return{defs:l,instances:o}}function RR(t,e,r,i,s){let l=s[t.recurringDef.typeId].expand(t.recurringDef.typeData,{start:i.subtract(r.start,e),end:r.end},i);return t.allDay&&(l=l.map(ct)),l}const Wa={id:String,groupId:String,title:String,url:String,interactive:Boolean},$g={start:Q,end:Q,date:Q,allDay:Boolean},IR=Object.assign(Object.assign(Object.assign({},Wa),$g),{extendedProps:Q});function Kg(t,e,r,i,s=Ad(r),a,l){let{refined:o,extra:c}=Td(t,r,s),d=AR(e,r),u=DR(o,d,r.dateEnv,r.pluginHooks.recurringTypes);if(u){let h=kl(o,c,e?e.sourceId:"",u.allDay,!!u.duration,r,a);return h.recurringDef={typeId:u.typeId,typeData:u.typeData,duration:u.duration},{def:h,instance:null}}let m=TR(o,d,r,i);if(m){let h=kl(o,c,e?e.sourceId:"",m.allDay,m.hasEnd,r,a),p=uo(h.defId,m.range,m.forcedStartTzo,m.forcedEndTzo);return l&&h.publicId&&l[h.publicId]&&(p.instanceId=l[h.publicId]),{def:h,instance:p}}return null}function Td(t,e,r=Ad(e)){return Ji(t,r)}function Ad(t){return Object.assign(Object.assign(Object.assign({},Sl),IR),t.pluginHooks.eventRefiners)}function kl(t,e,r,i,s,a,l){let o={title:t.title||"",groupId:t.groupId||"",publicId:t.id||"",url:t.url||"",recurringDef:null,defId:(l&&t.id?l[t.id]:"")||mr(),sourceId:r,allDay:i,hasEnd:s,interactive:t.interactive,ui:Us(t,a),extendedProps:Object.assign(Object.assign({},t.extendedProps||{}),e)};for(let c of a.pluginHooks.eventDefMemberAdders)Object.assign(o,c(t));return Object.freeze(o.ui.classNames),Object.freeze(o.extendedProps),o}function TR(t,e,r,i){let{allDay:s}=t,a,l=null,o=!1,c,d=null,u=t.start!=null?t.start:t.date;if(a=r.dateEnv.createMarkerMeta(u),a)l=a.marker;else if(!i)return null;return t.end!=null&&(c=r.dateEnv.createMarkerMeta(t.end)),s==null&&(e!=null?s=e:s=(!a||a.isTimeUnspecified)&&(!c||c.isTimeUnspecified)),s&&l&&(l=ct(l)),c&&(d=c.marker,s&&(d=ct(d)),l&&d<=l&&(d=null)),d?o=!0:i||(o=r.options.forceEventDuration||!1,d=r.dateEnv.add(l,s?r.options.defaultAllDayEventDuration:r.options.defaultTimedEventDuration)),{allDay:s,hasEnd:o,range:{start:l,end:d},forcedStartTzo:a?a.forcedTzo:null,forcedEndTzo:c?c.forcedTzo:null}}function AR(t,e){let r=null;return t&&(r=t.defaultAllDay),r==null&&(r=e.options.defaultAllDay),r}function Ys(t,e,r,i,s,a){let l=sn(),o=Ad(r);for(let c of t){let d=Kg(c,e,r,i,o,s,a);d&&Hs(d,l)}return l}function Hs(t,e=sn()){return e.defs[t.def.defId]=t.def,t.instance&&(e.instances[t.instance.instanceId]=t.instance),e}function Md(t,e){let r=t.instances[e];if(r){let i=t.defs[r.defId],s=ho(t,a=>MR(i,a));return s.defs[i.defId]=i,s.instances[r.instanceId]=r,s}return sn()}function MR(t,e){return!!(t.groupId&&t.groupId===e.groupId)}function sn(){return{defs:{},instances:{}}}function mo(t,e){return{defs:Object.assign(Object.assign({},t.defs),e.defs),instances:Object.assign(Object.assign({},t.instances),e.instances)}}function ho(t,e){let r=Sr(t.defs,e),i=Sr(t.instances,s=>r[s.defId]);return{defs:r,instances:i}}function NR(t,e){let{defs:r,instances:i}=t,s={},a={};for(let l in r)e.defs[l]||(s[l]=r[l]);for(let l in i)!e.instances[l]&&s[i[l].defId]&&(a[l]=i[l]);return{defs:s,instances:a}}function PR(t,e){return Array.isArray(t)?Ys(t,null,e,!0):typeof t=="object"&&t?Ys([t],null,e,!0):t!=null?String(t):null}function Rc(t){return Array.isArray(t)?t:typeof t=="string"?t.split(/\s+/):[]}const Sl={display:String,editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:Q,overlap:Q,allow:Q,className:Rc,classNames:Rc,color:String,backgroundColor:String,borderColor:String,textColor:String},zR={display:null,startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]};function Us(t,e){let r=PR(t.constraint,e);return{display:t.display||null,startEditable:t.startEditable!=null?t.startEditable:t.editable,durationEditable:t.durationEditable!=null?t.durationEditable:t.editable,constraints:r!=null?[r]:[],overlap:t.overlap!=null?t.overlap:null,allows:t.allow!=null?[t.allow]:[],backgroundColor:t.backgroundColor||t.color||"",borderColor:t.borderColor||t.color||"",textColor:t.textColor||"",classNames:(t.className||[]).concat(t.classNames||[])}}function Nd(t){return t.reduce(OR,zR)}function OR(t,e){return{display:e.display!=null?e.display:t.display,startEditable:e.startEditable!=null?e.startEditable:t.startEditable,durationEditable:e.durationEditable!=null?e.durationEditable:t.durationEditable,constraints:t.constraints.concat(e.constraints),overlap:typeof e.overlap=="boolean"?e.overlap:t.overlap,allows:t.allows.concat(e.allows),backgroundColor:e.backgroundColor||t.backgroundColor,borderColor:e.borderColor||t.borderColor,textColor:e.textColor||t.textColor,classNames:t.classNames.concat(e.classNames)}}const LR={id:String,defaultAllDay:Boolean,url:String,format:String,events:Q,eventDataTransform:Q,success:Q,failure:Q};function Gg(t,e,r=Wg(e)){let i;if(typeof t=="string"?i={url:t}:typeof t=="function"||Array.isArray(t)?i={events:t}:typeof t=="object"&&t&&(i=t),i){let{refined:s,extra:a}=Ji(i,r),l=FR(s,e);if(l)return{_raw:t,isFetching:!1,latestFetchId:"",fetchRange:null,defaultAllDay:s.defaultAllDay,eventDataTransform:s.eventDataTransform,success:s.success,failure:s.failure,publicId:s.id||"",sourceId:mr(),sourceDefId:l.sourceDefId,meta:l.meta,ui:Us(s,e),extendedProps:a}}return null}function Wg(t){return Object.assign(Object.assign(Object.assign({},Sl),LR),t.pluginHooks.eventSourceRefiners)}function FR(t,e){let r=e.pluginHooks.eventSourceDefs;for(let i=r.length-1;i>=0;i-=1){let a=r[i].parseMeta(t);if(a)return{sourceDefId:i,meta:a}}return null}function BR(t,e,r,i,s){switch(e.type){case"RECEIVE_EVENTS":return YR(t,r[e.sourceId],e.fetchId,e.fetchRange,e.rawEvents,s);case"RESET_RAW_EVENTS":return HR(t,r[e.sourceId],e.rawEvents,i.activeRange,s);case"ADD_EVENTS":return UR(t,e.eventStore,i?i.activeRange:null,s);case"RESET_EVENTS":return e.eventStore;case"MERGE_EVENTS":return mo(t,e.eventStore);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return i?xi(t,i.activeRange,s):t;case"REMOVE_EVENTS":return NR(t,e.eventStore);case"REMOVE_EVENT_SOURCE":return Qg(t,e.sourceId);case"REMOVE_ALL_EVENT_SOURCES":return ho(t,a=>!a.sourceId);case"REMOVE_ALL_EVENTS":return sn();default:return t}}function YR(t,e,r,i,s,a){if(e&&r===e.latestFetchId){let l=Ys(Vg(s,e,a),e,a);return i&&(l=xi(l,i,a)),mo(Qg(t,e.sourceId),l)}return t}function HR(t,e,r,i,s){const{defIdMap:a,instanceIdMap:l}=$R(t);let o=Ys(Vg(r,e,s),e,s,!1,a,l);return xi(o,i,s)}function Vg(t,e,r){let i=r.options.eventDataTransform,s=e?e.eventDataTransform:null;return s&&(t=Rh(t,s)),i&&(t=Rh(t,i)),t}function Rh(t,e){let r;if(!e)r=t;else{r=[];for(let i of t){let s=e(i);s?r.push(s):s==null&&r.push(i)}}return r}function UR(t,e,r,i){return r&&(e=xi(e,r,i)),mo(t,e)}function Ih(t,e,r){let{defs:i}=t,s=dn(t.instances,a=>i[a.defId].allDay?a:Object.assign(Object.assign({},a),{range:{start:r.createMarker(e.toDate(a.range.start,a.forcedStartTzo)),end:r.createMarker(e.toDate(a.range.end,a.forcedEndTzo))},forcedStartTzo:r.canComputeOffset?null:a.forcedStartTzo,forcedEndTzo:r.canComputeOffset?null:a.forcedEndTzo}));return{defs:i,instances:s}}function Qg(t,e){return ho(t,r=>r.sourceId!==e)}function qR(t,e){return{defs:t.defs,instances:Sr(t.instances,r=>!e[r.instanceId])}}function $R(t){const{defs:e,instances:r}=t,i={},s={};for(let a in e){const l=e[a],{publicId:o}=l;o&&(i[o]=a)}for(let a in r){const l=r[a],o=e[l.defId],{publicId:c}=o;c&&(s[c]=a)}return{defIdMap:i,instanceIdMap:s}}class ra{constructor(){this.handlers={},this.thisContext=null}setThisContext(e){this.thisContext=e}setOptions(e){this.options=e}on(e,r){KR(this.handlers,e,r)}off(e,r){GR(this.handlers,e,r)}trigger(e,...r){let i=this.handlers[e]||[],s=this.options&&this.options[e],a=[].concat(s||[],i);for(let l of a)l.apply(this.thisContext,r)}hasHandlers(e){return!!(this.handlers[e]&&this.handlers[e].length||this.options&&this.options[e])}}function KR(t,e,r){(t[e]||(t[e]=[])).push(r)}function GR(t,e,r){r?t[e]&&(t[e]=t[e].filter(i=>i!==r)):delete t[e]}const WR={startTime:"09:00",endTime:"17:00",daysOfWeek:[1,2,3,4,5],display:"inverse-background",classNames:"fc-non-business",groupId:"_businessHours"};function Xg(t,e){return Ys(VR(t),null,e)}function VR(t){let e;return t===!0?e=[{}]:Array.isArray(t)?e=t.filter(r=>r.daysOfWeek):typeof t=="object"&&t?e=[t]:e=[],e=e.map(r=>Object.assign(Object.assign({},WR),r)),e}function Zg(t,e,r){r.emitter.trigger("select",Object.assign(Object.assign({},Pd(t,r)),{jsEvent:e?e.origEvent:null,view:r.viewApi||r.calendarApi.view}))}function QR(t,e){e.emitter.trigger("unselect",{jsEvent:t?t.origEvent:null,view:e.viewApi||e.calendarApi.view})}function Pd(t,e){let r={};for(let i of e.pluginHooks.dateSpanTransforms)Object.assign(r,i(t,e));return Object.assign(r,dI(t,e.dateEnv)),r}function Ic(t,e,r){let{dateEnv:i,options:s}=r,a=e;return t?(a=ct(a),a=i.add(a,s.defaultAllDayEventDuration)):a=i.add(a,s.defaultTimedEventDuration),a}function zd(t,e,r,i){let s=El(t.defs,e),a=sn();for(let l in t.defs){let o=t.defs[l];a.defs[l]=XR(o,s[l],r,i)}for(let l in t.instances){let o=t.instances[l],c=a.defs[o.defId];a.instances[l]=ZR(o,c,s[o.defId],r,i)}return a}function XR(t,e,r,i){let s=r.standardProps||{};s.hasEnd==null&&e.durationEditable&&(r.startDelta||r.endDelta)&&(s.hasEnd=!0);let a=Object.assign(Object.assign(Object.assign({},t),s),{ui:Object.assign(Object.assign({},t.ui),s.ui)});r.extendedProps&&(a.extendedProps=Object.assign(Object.assign({},a.extendedProps),r.extendedProps));for(let l of i.pluginHooks.eventDefMutationAppliers)l(a,r,i);return!a.hasEnd&&i.options.forceEventDuration&&(a.hasEnd=!0),a}function ZR(t,e,r,i,s){let{dateEnv:a}=s,l=i.standardProps&&i.standardProps.allDay===!0,o=i.standardProps&&i.standardProps.hasEnd===!1,c=Object.assign({},t);return l&&(c.range=Ug(c.range)),i.datesDelta&&r.startEditable&&(c.range={start:a.add(c.range.start,i.datesDelta),end:a.add(c.range.end,i.datesDelta)}),i.startDelta&&r.durationEditable&&(c.range={start:a.add(c.range.start,i.startDelta),end:c.range.end}),i.endDelta&&r.durationEditable&&(c.range={start:c.range.start,end:a.add(c.range.end,i.endDelta)}),o&&(c.range={start:c.range.start,end:Ic(e.allDay,c.range.start,s)}),e.allDay&&(c.range={start:ct(c.range.start),end:ct(c.range.end)}),c.range.end<c.range.start&&(c.range.end=Ic(e.allDay,c.range.start,s)),c}class Ti{constructor(e,r){this.context=e,this.internalEventSource=r}remove(){this.context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:this.internalEventSource.sourceId})}refetch(){this.context.dispatch({type:"FETCH_EVENT_SOURCES",sourceIds:[this.internalEventSource.sourceId],isRefetch:!0})}get id(){return this.internalEventSource.publicId}get url(){return this.internalEventSource.meta.url}get format(){return this.internalEventSource.meta.format}}class pt{constructor(e,r,i){this._context=e,this._def=r,this._instance=i||null}setProp(e,r){if(e in $g)console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");else if(e==="id")r=Wa[e](r),this.mutate({standardProps:{publicId:r}});else if(e in Wa)r=Wa[e](r),this.mutate({standardProps:{[e]:r}});else if(e in Sl){let i=Sl[e](r);e==="color"?i={backgroundColor:r,borderColor:r}:e==="editable"?i={startEditable:r,durationEditable:r}:i={[e]:r},this.mutate({standardProps:{ui:i}})}else console.warn(`Could not set prop '${e}'. Use setExtendedProp instead.`)}setExtendedProp(e,r){this.mutate({extendedProps:{[e]:r}})}setStart(e,r={}){let{dateEnv:i}=this._context,s=i.createMarker(e);if(s&&this._instance){let a=this._instance.range,l=Ni(a.start,s,i,r.granularity);r.maintainDuration?this.mutate({datesDelta:l}):this.mutate({startDelta:l})}}setEnd(e,r={}){let{dateEnv:i}=this._context,s;if(!(e!=null&&(s=i.createMarker(e),!s))&&this._instance)if(s){let a=Ni(this._instance.range.end,s,i,r.granularity);this.mutate({endDelta:a})}else this.mutate({standardProps:{hasEnd:!1}})}setDates(e,r,i={}){let{dateEnv:s}=this._context,a={allDay:i.allDay},l=s.createMarker(e),o;if(l&&!(r!=null&&(o=s.createMarker(r),!o))&&this._instance){let c=this._instance.range;i.allDay===!0&&(c=Ug(c));let d=Ni(c.start,l,s,i.granularity);if(o){let u=Ni(c.end,o,s,i.granularity);wD(d,u)?this.mutate({datesDelta:d,standardProps:a}):this.mutate({startDelta:d,endDelta:u,standardProps:a})}else a.hasEnd=!1,this.mutate({datesDelta:d,standardProps:a})}}moveStart(e){let r=Ge(e);r&&this.mutate({startDelta:r})}moveEnd(e){let r=Ge(e);r&&this.mutate({endDelta:r})}moveDates(e){let r=Ge(e);r&&this.mutate({datesDelta:r})}setAllDay(e,r={}){let i={allDay:e},{maintainDuration:s}=r;s==null&&(s=this._context.options.allDayMaintainDuration),this._def.allDay!==e&&(i.hasEnd=s),this.mutate({standardProps:i})}formatRange(e){let{dateEnv:r}=this._context,i=this._instance,s=bt(e);return this._def.hasEnd?r.formatRange(i.range.start,i.range.end,s,{forcedStartTzo:i.forcedStartTzo,forcedEndTzo:i.forcedEndTzo}):r.format(i.range.start,s,{forcedTzo:i.forcedStartTzo})}mutate(e){let r=this._instance;if(r){let i=this._def,s=this._context,{eventStore:a}=s.getCurrentData(),l=Md(a,r.instanceId);l=zd(l,{"":{display:"",startEditable:!0,durationEditable:!0,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]}},e,s);let c=new pt(s,i,r);this._def=l.defs[i.defId],this._instance=l.instances[r.instanceId],s.dispatch({type:"MERGE_EVENTS",eventStore:l}),s.emitter.trigger("eventChange",{oldEvent:c,event:this,relatedEvents:hi(l,s,r),revert(){s.dispatch({type:"RESET_EVENTS",eventStore:a})}})}}remove(){let e=this._context,r=Jg(this);e.dispatch({type:"REMOVE_EVENTS",eventStore:r}),e.emitter.trigger("eventRemove",{event:this,relatedEvents:[],revert(){e.dispatch({type:"MERGE_EVENTS",eventStore:r})}})}get source(){let{sourceId:e}=this._def;return e?new Ti(this._context,this._context.getCurrentData().eventSources[e]):null}get start(){return this._instance?this._context.dateEnv.toDate(this._instance.range.start):null}get end(){return this._instance&&this._def.hasEnd?this._context.dateEnv.toDate(this._instance.range.end):null}get startStr(){let e=this._instance;return e?this._context.dateEnv.formatIso(e.range.start,{omitTime:this._def.allDay,forcedTzo:e.forcedStartTzo}):""}get endStr(){let e=this._instance;return e&&this._def.hasEnd?this._context.dateEnv.formatIso(e.range.end,{omitTime:this._def.allDay,forcedTzo:e.forcedEndTzo}):""}get id(){return this._def.publicId}get groupId(){return this._def.groupId}get allDay(){return this._def.allDay}get title(){return this._def.title}get url(){return this._def.url}get display(){return this._def.ui.display||"auto"}get startEditable(){return this._def.ui.startEditable}get durationEditable(){return this._def.ui.durationEditable}get constraint(){return this._def.ui.constraints[0]||null}get overlap(){return this._def.ui.overlap}get allow(){return this._def.ui.allows[0]||null}get backgroundColor(){return this._def.ui.backgroundColor}get borderColor(){return this._def.ui.borderColor}get textColor(){return this._def.ui.textColor}get classNames(){return this._def.ui.classNames}get extendedProps(){return this._def.extendedProps}toPlainObject(e={}){let r=this._def,{ui:i}=r,{startStr:s,endStr:a}=this,l={allDay:r.allDay};return r.title&&(l.title=r.title),s&&(l.start=s),a&&(l.end=a),r.publicId&&(l.id=r.publicId),r.groupId&&(l.groupId=r.groupId),r.url&&(l.url=r.url),i.display&&i.display!=="auto"&&(l.display=i.display),e.collapseColor&&i.backgroundColor&&i.backgroundColor===i.borderColor?l.color=i.backgroundColor:(i.backgroundColor&&(l.backgroundColor=i.backgroundColor),i.borderColor&&(l.borderColor=i.borderColor)),i.textColor&&(l.textColor=i.textColor),i.classNames.length&&(l.classNames=i.classNames),Object.keys(r.extendedProps).length&&(e.collapseExtendedProps?Object.assign(l,r.extendedProps):l.extendedProps=r.extendedProps),l}toJSON(){return this.toPlainObject()}}function Jg(t){let e=t._def,r=t._instance;return{defs:{[e.defId]:e},instances:r?{[r.instanceId]:r}:{}}}function hi(t,e,r){let{defs:i,instances:s}=t,a=[],l=r?r.instanceId:"";for(let o in s){let c=s[o],d=i[c.defId];c.instanceId!==l&&a.push(new pt(e,d,c))}return a}function Th(t,e,r,i){let s={},a={},l={},o=[],c=[],d=El(t.defs,e);for(let u in t.defs){let m=t.defs[u];d[m.defId].display==="inverse-background"&&(m.groupId?(s[m.groupId]=[],l[m.groupId]||(l[m.groupId]=m)):a[u]=[])}for(let u in t.instances){let m=t.instances[u],h=t.defs[m.defId],p=d[h.defId],y=m.range,f=!h.allDay&&i?Id(y,i):y,g=Ur(f,r);g&&(p.display==="inverse-background"?h.groupId?s[h.groupId].push(g):a[m.defId].push(g):p.display!=="none"&&(p.display==="background"?o:c).push({def:h,ui:p,instance:m,range:g,isStart:f.start&&f.start.valueOf()===g.start.valueOf(),isEnd:f.end&&f.end.valueOf()===g.end.valueOf()}))}for(let u in s){let m=s[u],h=Dh(m,r);for(let p of h){let y=l[u],f=d[y.defId];o.push({def:y,ui:f,instance:null,range:p,isStart:!1,isEnd:!1})}}for(let u in a){let m=a[u],h=Dh(m,r);for(let p of h)o.push({def:t.defs[u],ui:d[u],instance:null,range:p,isStart:!1,isEnd:!1})}return{bg:o,fg:c}}function JR(t){return t.ui.display==="background"||t.ui.display==="inverse-background"}function Ah(t,e){t.fcSeg=e}function qi(t){return t.fcSeg||t.parentNode.fcSeg||null}function El(t,e){return dn(t,r=>ey(r,e))}function ey(t,e){let r=[];return e[""]&&r.push(e[""]),e[t.defId]&&r.push(e[t.defId]),r.push(t.ui),Nd(r)}function Od(t,e){let r=t.map(eI);return r.sort((i,s)=>Ig(i,s,e)),r.map(i=>i._seg)}function eI(t){let{eventRange:e}=t,r=e.def,i=e.instance?e.instance.range:e.range,s=i.start?i.start.valueOf():0,a=i.end?i.end.valueOf():0;return Object.assign(Object.assign(Object.assign({},r.extendedProps),r),{id:r.publicId,start:s,end:a,duration:a-s,allDay:Number(r.allDay),_seg:t})}function tI(t,e){let{pluginHooks:r}=e,i=r.isDraggableTransformers,{def:s,ui:a}=t.eventRange,l=a.startEditable;for(let o of i)l=o(l,s,a,e);return l}function nI(t,e){return t.isStart&&t.eventRange.ui.durationEditable&&e.options.eventResizableFromStart}function rI(t,e){return t.isEnd&&t.eventRange.ui.durationEditable}function ty(t,e,r,i,s,a,l){let{dateEnv:o,options:c}=r,{displayEventTime:d,displayEventEnd:u}=c,m=t.eventRange.def,h=t.eventRange.instance;d==null&&(d=i!==!1),u==null&&(u=s!==!1);let p=h.range.start,y=h.range.end,f=t.start||t.eventRange.range.start,g=t.end||t.eventRange.range.end,v=ct(p).valueOf()===ct(f).valueOf(),S=ct(kr(y,-1)).valueOf()===ct(kr(g,-1)).valueOf();return d&&!m.allDay&&(v||S)?(f=v?p:f,g=S?y:g,u&&m.hasEnd?o.formatRange(f,g,e,{forcedStartTzo:h.forcedStartTzo,forcedEndTzo:h.forcedEndTzo}):o.format(f,e,{forcedTzo:h.forcedStartTzo})):""}function Zn(t,e,r){let i=t.eventRange.range;return{isPast:i.end<=(r||e.start),isFuture:i.start>=(r||e.end),isToday:e&&dr(e,i.start)}}function iI(t){let e=["fc-event"];return t.isMirror&&e.push("fc-event-mirror"),t.isDraggable&&e.push("fc-event-draggable"),(t.isStartResizable||t.isEndResizable)&&e.push("fc-event-resizable"),t.isDragging&&e.push("fc-event-dragging"),t.isResizing&&e.push("fc-event-resizing"),t.isSelected&&e.push("fc-event-selected"),t.isStart&&e.push("fc-event-start"),t.isEnd&&e.push("fc-event-end"),t.isPast&&e.push("fc-event-past"),t.isToday&&e.push("fc-event-today"),t.isFuture&&e.push("fc-event-future"),e}function Ld(t){return t.instance?t.instance.instanceId:`${t.def.defId}:${t.range.start.toISOString()}`}function ny(t,e){let{def:r,instance:i}=t.eventRange,{url:s}=r;if(s)return{href:s};let{emitter:a,options:l}=e,{eventInteractive:o}=l;return o==null&&(o=r.interactive,o==null&&(o=!!a.hasHandlers("eventClick"))),o?Rg(c=>{a.trigger("eventClick",{el:c.target,event:new pt(e,r,i),jsEvent:c,view:e.viewApi})}):{}}const sI={start:Q,end:Q,allDay:Boolean};function aI(t,e,r){let i=lI(t,e),{range:s}=i;if(!s.start)return null;if(!s.end){if(r==null)return null;s.end=e.add(s.start,r)}return i}function lI(t,e){let{refined:r,extra:i}=Ji(t,sI),s=r.start?e.createMarkerMeta(r.start):null,a=r.end?e.createMarkerMeta(r.end):null,{allDay:l}=r;return l==null&&(l=s&&s.isTimeUnspecified&&(!a||a.isTimeUnspecified)),Object.assign({range:{start:s?s.marker:null,end:a?a.marker:null},allDay:l},i)}function oI(t,e){return Hg(t.range,e.range)&&t.allDay===e.allDay&&cI(t,e)}function cI(t,e){for(let r in e)if(r!=="range"&&r!=="allDay"&&t[r]!==e[r])return!1;for(let r in t)if(!(r in e))return!1;return!0}function dI(t,e){return Object.assign(Object.assign({},iy(t.range,e,t.allDay)),{allDay:t.allDay})}function ry(t,e,r){return Object.assign(Object.assign({},iy(t,e,r)),{timeZone:e.timeZone})}function iy(t,e,r){return{start:e.toDate(t.start),end:e.toDate(t.end),startStr:e.formatIso(t.start,{omitTime:r}),endStr:e.formatIso(t.end,{omitTime:r})}}function uI(t,e,r){let i=Td({editable:!1},r),s=kl(i.refined,i.extra,"",t.allDay,!0,r);return{def:s,ui:ey(s,e),instance:uo(s.defId,t.range),range:t.range,isStart:!0,isEnd:!0}}function sy(t,e,r){let i=!1,s=function(o){i||(i=!0,e(o))},a=function(o){i||(i=!0,r(o))},l=t(s,a);l&&typeof l.then=="function"&&l.then(s,a)}class Mh extends Error{constructor(e,r){super(e),this.response=r}}function ay(t,e,r){t=t.toUpperCase();const i={method:t};return t==="GET"?e+=(e.indexOf("?")===-1?"?":"&")+new URLSearchParams(r):(i.body=new URLSearchParams(r),i.headers={"Content-Type":"application/x-www-form-urlencoded"}),fetch(e,i).then(s=>{if(s.ok)return s.json().then(a=>[a,s],()=>{throw new Mh("Failure parsing JSON",s)});throw new Mh("Request failed",s)})}let Bo;function Fd(){return Bo==null&&(Bo=mI()),Bo}function mI(){if(typeof document>"u")return!0;let t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.innerHTML="<table><tr><td><div></div></td></tr></table>",t.querySelector("table").style.height="100px",t.querySelector("div").style.height="100%",document.body.appendChild(t);let r=t.querySelector("div").offsetHeight>0;return document.body.removeChild(t),r}class hI extends Ne{constructor(){super(...arguments),this.state={forPrint:!1},this.handleBeforePrint=()=>{jl(()=>{this.setState({forPrint:!0})})},this.handleAfterPrint=()=>{jl(()=>{this.setState({forPrint:!1})})}}render(){let{props:e}=this,{options:r}=e,{forPrint:i}=this.state,s=i||r.height==="auto"||r.contentHeight==="auto",a=!s&&r.height!=null?r.height:"",l=["fc",i?"fc-media-print":"fc-media-screen",`fc-direction-${r.direction}`,e.theme.getClass("root")];return Fd()||l.push("fc-liquid-hack"),e.children(l,a,s,i)}componentDidMount(){let{emitter:e}=this.props;e.on("_beforeprint",this.handleBeforePrint),e.on("_afterprint",this.handleAfterPrint)}componentWillUnmount(){let{emitter:e}=this.props;e.off("_beforeprint",this.handleBeforePrint),e.off("_afterprint",this.handleAfterPrint)}}class es{constructor(e){this.component=e.component,this.isHitComboAllowed=e.isHitComboAllowed||null}destroy(){}}function pI(t,e){return{component:t,el:e.el,useEventCenter:e.useEventCenter!=null?e.useEventCenter:!0,isHitComboAllowed:e.isHitComboAllowed||null}}function Bd(t){return{[t.component.uid]:t}}const wl={};class Rr extends Rn{constructor(e,r){super(e,r),this.handleRefresh=()=>{let i=this.computeTiming();i.state.nowDate.valueOf()!==this.state.nowDate.valueOf()&&this.setState(i.state),this.clearTimeout(),this.setTimeout(i.waitMs)},this.handleVisibilityChange=()=>{document.hidden||this.handleRefresh()},this.state=this.computeTiming().state}render(){let{props:e,state:r}=this;return e.children(r.nowDate,r.todayRange)}componentDidMount(){this.setTimeout(),this.context.nowManager.addResetListener(this.handleRefresh),document.addEventListener("visibilitychange",this.handleVisibilityChange)}componentDidUpdate(e){e.unit!==this.props.unit&&(this.clearTimeout(),this.setTimeout())}componentWillUnmount(){this.clearTimeout(),this.context.nowManager.removeResetListener(this.handleRefresh),document.removeEventListener("visibilitychange",this.handleVisibilityChange)}computeTiming(){let{props:e,context:r}=this,i=r.nowManager.getDateMarker(),{nowIndicatorSnap:s}=r.options;s==="auto"&&(s=/year|month|week|day/.test(e.unit)||(e.unitValue||1)===1);let a,l;return s?(a=r.dateEnv.startOf(i,e.unit),l=r.dateEnv.add(a,Ge(1,e.unit)).valueOf()-i.valueOf()):(a=i,l=1e3*60),l=Math.min(1e3*60*60*24,l),{state:{nowDate:a,todayRange:fI(a)},waitMs:l}}setTimeout(e=this.computeTiming().waitMs){this.timeoutId=setTimeout(()=>{const r=this.computeTiming();this.setState(r.state,()=>{this.setTimeout(r.waitMs)})},e)}clearTimeout(){this.timeoutId&&clearTimeout(this.timeoutId)}}Rr.contextType=Dr;function fI(t){let e=ct(t),r=Mt(e,1);return{start:e,end:r}}class ts{getCurrentData(){return this.currentDataManager.getCurrentData()}dispatch(e){this.currentDataManager.dispatch(e)}get view(){return this.getCurrentData().viewApi}batchRendering(e){e()}updateSize(){this.trigger("_resize",!0)}setOption(e,r){this.dispatch({type:"SET_OPTION",optionName:e,rawOptionValue:r})}getOption(e){return this.currentDataManager.currentCalendarOptionsInput[e]}getAvailableLocaleCodes(){return Object.keys(this.getCurrentData().availableRawLocales)}on(e,r){let{currentDataManager:i}=this;i.currentCalendarOptionsRefiners[e]?i.emitter.on(e,r):console.warn(`Unknown listener name '${e}'`)}off(e,r){this.currentDataManager.emitter.off(e,r)}trigger(e,...r){this.currentDataManager.emitter.trigger(e,...r)}changeView(e,r){this.batchRendering(()=>{if(this.unselect(),r)if(r.start&&r.end)this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e}),this.dispatch({type:"SET_OPTION",optionName:"visibleRange",rawOptionValue:r});else{let{dateEnv:i}=this.getCurrentData();this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e,dateMarker:i.createMarker(r)})}else this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e})})}zoomTo(e,r){let i=this.getCurrentData(),s;r=r||"day",s=i.viewSpecs[r]||this.getUnitViewSpec(r),this.unselect(),s?this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:s.type,dateMarker:e}):this.dispatch({type:"CHANGE_DATE",dateMarker:e})}getUnitViewSpec(e){let{viewSpecs:r,toolbarConfig:i}=this.getCurrentData(),s=[].concat(i.header?i.header.viewsWithButtons:[],i.footer?i.footer.viewsWithButtons:[]),a,l;for(let o in r)s.push(o);for(a=0;a<s.length;a+=1)if(l=r[s[a]],l&&l.singleUnit===e)return l;return null}prev(){this.unselect(),this.dispatch({type:"PREV"})}next(){this.unselect(),this.dispatch({type:"NEXT"})}prevYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,-1)})}nextYear(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,1)})}today(){let e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.nowManager.getDateMarker()})}gotoDate(e){let r=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:r.dateEnv.createMarker(e)})}incrementDate(e){let r=this.getCurrentData(),i=Ge(e);i&&(this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:r.dateEnv.add(r.currentDate,i)}))}getDate(){let e=this.getCurrentData();return e.dateEnv.toDate(e.currentDate)}formatDate(e,r){let{dateEnv:i}=this.getCurrentData();return i.format(i.createMarker(e),bt(r))}formatRange(e,r,i){let{dateEnv:s}=this.getCurrentData();return s.formatRange(s.createMarker(e),s.createMarker(r),bt(i),i)}formatIso(e,r){let{dateEnv:i}=this.getCurrentData();return i.formatIso(i.createMarker(e),{omitTime:r})}select(e,r){let i;r==null?e.start!=null?i=e:i={start:e,end:null}:i={start:e,end:r};let s=this.getCurrentData(),a=aI(i,s.dateEnv,Ge({days:1}));a&&(this.dispatch({type:"SELECT_DATES",selection:a}),Zg(a,null,s))}unselect(e){let r=this.getCurrentData();r.dateSelection&&(this.dispatch({type:"UNSELECT_DATES"}),QR(e,r))}addEvent(e,r){if(e instanceof pt){let l=e._def,o=e._instance;return this.getCurrentData().eventStore.defs[l.defId]||(this.dispatch({type:"ADD_EVENTS",eventStore:Hs({def:l,instance:o})}),this.triggerEventAdd(e)),e}let i=this.getCurrentData(),s;if(r instanceof Ti)s=r.internalEventSource;else if(typeof r=="boolean")r&&([s]=Dd(i.eventSources));else if(r!=null){let l=this.getEventSourceById(r);if(!l)return console.warn(`Could not find an event source with ID "${r}"`),null;s=l.internalEventSource}let a=Kg(e,s,i,!1);if(a){let l=new pt(i,a.def,a.def.recurringDef?null:a.instance);return this.dispatch({type:"ADD_EVENTS",eventStore:Hs(a)}),this.triggerEventAdd(l),l}return null}triggerEventAdd(e){let{emitter:r}=this.getCurrentData();r.trigger("eventAdd",{event:e,relatedEvents:[],revert:()=>{this.dispatch({type:"REMOVE_EVENTS",eventStore:Jg(e)})}})}getEventById(e){let r=this.getCurrentData(),{defs:i,instances:s}=r.eventStore;e=String(e);for(let a in i){let l=i[a];if(l.publicId===e){if(l.recurringDef)return new pt(r,l,null);for(let o in s){let c=s[o];if(c.defId===l.defId)return new pt(r,l,c)}}}return null}getEvents(){let e=this.getCurrentData();return hi(e.eventStore,e)}removeAllEvents(){this.dispatch({type:"REMOVE_ALL_EVENTS"})}getEventSources(){let e=this.getCurrentData(),r=e.eventSources,i=[];for(let s in r)i.push(new Ti(e,r[s]));return i}getEventSourceById(e){let r=this.getCurrentData(),i=r.eventSources;e=String(e);for(let s in i)if(i[s].publicId===e)return new Ti(r,i[s]);return null}addEventSource(e){let r=this.getCurrentData();if(e instanceof Ti)return r.eventSources[e.internalEventSource.sourceId]||this.dispatch({type:"ADD_EVENT_SOURCES",sources:[e.internalEventSource]}),e;let i=Gg(e,r);return i?(this.dispatch({type:"ADD_EVENT_SOURCES",sources:[i]}),new Ti(r,i)):null}removeAllEventSources(){this.dispatch({type:"REMOVE_ALL_EVENT_SOURCES"})}refetchEvents(){this.dispatch({type:"FETCH_EVENT_SOURCES",isRefetch:!0})}scrollToTime(e){let r=Ge(e);r&&this.trigger("_scrollRequest",{time:r})}}function gI(t,e){return t.left>=e.left&&t.left<e.right&&t.top>=e.top&&t.top<e.bottom}function ly(t,e){let r={left:Math.max(t.left,e.left),right:Math.min(t.right,e.right),top:Math.max(t.top,e.top),bottom:Math.min(t.bottom,e.bottom)};return r.left<r.right&&r.top<r.bottom?r:!1}function Nh(t,e,r){return{left:t.left+e,right:t.right+e,top:t.top+r,bottom:t.bottom+r}}function yI(t,e){return{left:Math.min(Math.max(t.left,e.left),e.right),top:Math.min(Math.max(t.top,e.top),e.bottom)}}function xI(t){return{left:(t.left+t.right)/2,top:(t.top+t.bottom)/2}}function vI(t,e){return{left:t.left-e.left,top:t.top-e.top}}const Yo=sn();class oy{constructor(){this.getKeysForEventDefs=Te(this._getKeysForEventDefs),this.splitDateSelection=Te(this._splitDateSpan),this.splitEventStore=Te(this._splitEventStore),this.splitIndividualUi=Te(this._splitIndividualUi),this.splitEventDrag=Te(this._splitInteraction),this.splitEventResize=Te(this._splitInteraction),this.eventUiBuilders={}}splitProps(e){let r=this.getKeyInfo(e),i=this.getKeysForEventDefs(e.eventStore),s=this.splitDateSelection(e.dateSelection),a=this.splitIndividualUi(e.eventUiBases,i),l=this.splitEventStore(e.eventStore,i),o=this.splitEventDrag(e.eventDrag),c=this.splitEventResize(e.eventResize),d={};this.eventUiBuilders=dn(r,(u,m)=>this.eventUiBuilders[m]||Te(bI));for(let u in r){let m=r[u],h=l[u]||Yo,p=this.eventUiBuilders[u];d[u]={businessHours:m.businessHours||e.businessHours,dateSelection:s[u]||null,eventStore:h,eventUiBases:p(e.eventUiBases[""],m.ui,a[u]),eventSelection:h.instances[e.eventSelection]?e.eventSelection:"",eventDrag:o[u]||null,eventResize:c[u]||null}}return d}_splitDateSpan(e){let r={};if(e){let i=this.getKeysForDateSpan(e);for(let s of i)r[s]=e}return r}_getKeysForEventDefs(e){return dn(e.defs,r=>this.getKeysForEventDef(r))}_splitEventStore(e,r){let{defs:i,instances:s}=e,a={};for(let l in i)for(let o of r[l])a[o]||(a[o]=sn()),a[o].defs[l]=i[l];for(let l in s){let o=s[l];for(let c of r[o.defId])a[c]&&(a[c].instances[l]=o)}return a}_splitIndividualUi(e,r){let i={};for(let s in e)if(s)for(let a of r[s])i[a]||(i[a]={}),i[a][s]=e[s];return i}_splitInteraction(e){let r={};if(e){let i=this._splitEventStore(e.affectedEvents,this._getKeysForEventDefs(e.affectedEvents)),s=this._getKeysForEventDefs(e.mutatedEvents),a=this._splitEventStore(e.mutatedEvents,s),l=o=>{r[o]||(r[o]={affectedEvents:i[o]||Yo,mutatedEvents:a[o]||Yo,isEvent:e.isEvent})};for(let o in i)l(o);for(let o in a)l(o)}return r}}function bI(t,e,r){let i=[];t&&i.push(t),e&&i.push(e);let s={"":Nd(i)};return r&&Object.assign(s,r),s}function po(t,e,r,i){return{dow:t.getUTCDay(),isDisabled:!!(i&&(!i.activeRange||!dr(i.activeRange,t))),isOther:!!(i&&!dr(i.currentRange,t)),isToday:!!(e&&dr(e,t)),isPast:!!(r?t<r:e&&t<e.start),isFuture:!!(r?t>r:e&&t>=e.end)}}function ia(t,e){let r=["fc-day",`fc-day-${Ng[t.dow]}`];return t.isDisabled?r.push("fc-day-disabled"):(t.isToday&&(r.push("fc-day-today"),r.push(e.getClass("today"))),t.isPast&&r.push("fc-day-past"),t.isFuture&&r.push("fc-day-future"),t.isOther&&r.push("fc-day-other")),r}function cy(t,e){let r=["fc-slot",`fc-slot-${Ng[t.dow]}`];return t.isDisabled?r.push("fc-slot-disabled"):(t.isToday&&(r.push("fc-slot-today"),r.push(e.getClass("today"))),t.isPast&&r.push("fc-slot-past"),t.isFuture&&r.push("fc-slot-future")),r}const _I=bt({year:"numeric",month:"long",day:"numeric"}),jI=bt({week:"long"});function qs(t,e,r="day",i=!0){const{dateEnv:s,options:a,calendarApi:l}=t;let o=s.format(e,r==="week"?jI:_I);if(a.navLinks){let c=s.toDate(e);const d=u=>{let m=r==="day"?a.navLinkDayClick:r==="week"?a.navLinkWeekClick:null;typeof m=="function"?m.call(l,s.toDate(e),u):(typeof m=="string"&&(r=m),l.zoomTo(e,r))};return Object.assign({title:js(a.navLinkHint,[o,c],o),"data-navlink":""},i?Dg(d):{onClick:d})}return{"aria-label":o}}let Ho=null;function Cl(){return Ho===null&&(Ho=kI()),Ho}function kI(){let t=document.createElement("div");Oi(t,{position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}),t.innerHTML="<div></div>",document.body.appendChild(t);let r=t.firstChild.getBoundingClientRect().left>t.getBoundingClientRect().left;return no(t),r}let Uo;function dy(){return Uo||(Uo=SI()),Uo}function SI(){let t=document.createElement("div");t.style.overflow="scroll",t.style.position="absolute",t.style.top="-9999px",t.style.left="-9999px",document.body.appendChild(t);let e=uy(t);return document.body.removeChild(t),e}function uy(t){return{x:t.offsetHeight-t.clientHeight,y:t.offsetWidth-t.clientWidth}}function my(t,e=!1){let r=window.getComputedStyle(t),i=parseInt(r.borderLeftWidth,10)||0,s=parseInt(r.borderRightWidth,10)||0,a=parseInt(r.borderTopWidth,10)||0,l=parseInt(r.borderBottomWidth,10)||0,o=uy(t),c=o.y-i-s,d=o.x-a-l,u={borderLeft:i,borderRight:s,borderTop:a,borderBottom:l,scrollbarBottom:d,scrollbarLeft:0,scrollbarRight:0};return Cl()&&r.direction==="rtl"?u.scrollbarLeft=c:u.scrollbarRight=c,e&&(u.paddingLeft=parseInt(r.paddingLeft,10)||0,u.paddingRight=parseInt(r.paddingRight,10)||0,u.paddingTop=parseInt(r.paddingTop,10)||0,u.paddingBottom=parseInt(r.paddingBottom,10)||0),u}function hy(t,e=!1,r){let i=r?t.getBoundingClientRect():Yd(t),s=my(t,e),a={left:i.left+s.borderLeft+s.scrollbarLeft,right:i.right-s.borderRight-s.scrollbarRight,top:i.top+s.borderTop,bottom:i.bottom-s.borderBottom-s.scrollbarBottom};return e&&(a.left+=s.paddingLeft,a.right-=s.paddingRight,a.top+=s.paddingTop,a.bottom-=s.paddingBottom),a}function Yd(t){let e=t.getBoundingClientRect();return{left:e.left+window.scrollX,top:e.top+window.scrollY,right:e.right+window.scrollX,bottom:e.bottom+window.scrollY}}function EI(t){let e=py(t),r=t.getBoundingClientRect();for(let i of e){let s=ly(r,i.getBoundingClientRect());if(s)r=s;else return null}return r}function py(t){let e=[];for(;t instanceof HTMLElement;){let r=window.getComputedStyle(t);if(r.position==="fixed")break;/(auto|scroll)/.test(r.overflow+r.overflowY+r.overflowX)&&e.push(t),t=t.parentNode}return e}class Er{constructor(e,r,i,s){this.els=r;let a=this.originClientRect=e.getBoundingClientRect();i&&this.buildElHorizontals(a.left),s&&this.buildElVerticals(a.top)}buildElHorizontals(e){let r=[],i=[];for(let s of this.els){let a=s.getBoundingClientRect();r.push(a.left-e),i.push(a.right-e)}this.lefts=r,this.rights=i}buildElVerticals(e){let r=[],i=[];for(let s of this.els){let a=s.getBoundingClientRect();r.push(a.top-e),i.push(a.bottom-e)}this.tops=r,this.bottoms=i}leftToIndex(e){let{lefts:r,rights:i}=this,s=r.length,a;for(a=0;a<s;a+=1)if(e>=r[a]&&e<i[a])return a}topToIndex(e){let{tops:r,bottoms:i}=this,s=r.length,a;for(a=0;a<s;a+=1)if(e>=r[a]&&e<i[a])return a}getWidth(e){return this.rights[e]-this.lefts[e]}getHeight(e){return this.bottoms[e]-this.tops[e]}similarTo(e){return Ia(this.tops||[],e.tops||[])&&Ia(this.bottoms||[],e.bottoms||[])&&Ia(this.lefts||[],e.lefts||[])&&Ia(this.rights||[],e.rights||[])}}function Ia(t,e){const r=t.length;if(r!==e.length)return!1;for(let i=0;i<r;i++)if(Math.round(t[i])!==Math.round(e[i]))return!1;return!0}class Hd{getMaxScrollTop(){return this.getScrollHeight()-this.getClientHeight()}getMaxScrollLeft(){return this.getScrollWidth()-this.getClientWidth()}canScrollVertically(){return this.getMaxScrollTop()>0}canScrollHorizontally(){return this.getMaxScrollLeft()>0}canScrollUp(){return this.getScrollTop()>0}canScrollDown(){return this.getScrollTop()<this.getMaxScrollTop()}canScrollLeft(){return this.getScrollLeft()>0}canScrollRight(){return this.getScrollLeft()<this.getMaxScrollLeft()}}class wI extends Hd{constructor(e){super(),this.el=e}getScrollTop(){return this.el.scrollTop}getScrollLeft(){return this.el.scrollLeft}setScrollTop(e){this.el.scrollTop=e}setScrollLeft(e){this.el.scrollLeft=e}getScrollWidth(){return this.el.scrollWidth}getScrollHeight(){return this.el.scrollHeight}getClientHeight(){return this.el.clientHeight}getClientWidth(){return this.el.clientWidth}}class CI extends Hd{getScrollTop(){return window.scrollY}getScrollLeft(){return window.scrollX}setScrollTop(e){window.scroll(window.scrollX,e)}setScrollLeft(e){window.scroll(e,window.scrollY)}getScrollWidth(){return document.documentElement.scrollWidth}getScrollHeight(){return document.documentElement.scrollHeight}getClientHeight(){return document.documentElement.clientHeight}getClientWidth(){return document.documentElement.clientWidth}}class Pn extends Ne{constructor(){super(...arguments),this.uid=mr()}prepareHits(){}queryHit(e,r,i,s){return null}isValidSegDownEl(e){return!this.props.eventDrag&&!this.props.eventResize&&!Ut(e,".fc-event-mirror")}isValidDateDownEl(e){return!Ut(e,".fc-event:not(.fc-bg-event)")&&!Ut(e,".fc-more-link")&&!Ut(e,"a[data-navlink]")&&!Ut(e,".fc-popover")}}class Ud{constructor(e=r=>r.thickness||1){this.getEntryThickness=e,this.strictOrder=!1,this.allowReslicing=!1,this.maxCoord=-1,this.maxStackCnt=-1,this.levelCoords=[],this.entriesByLevel=[],this.stackCnts={}}addSegs(e){let r=[];for(let i of e)this.insertEntry(i,r);return r}insertEntry(e,r){let i=this.findInsertion(e);this.isInsertionValid(i,e)?this.insertEntryAt(e,i):this.handleInvalidInsertion(i,e,r)}isInsertionValid(e,r){return(this.maxCoord===-1||e.levelCoord+this.getEntryThickness(r)<=this.maxCoord)&&(this.maxStackCnt===-1||e.stackCnt<this.maxStackCnt)}handleInvalidInsertion(e,r,i){if(this.allowReslicing&&e.touchingEntry){const s=Object.assign(Object.assign({},r),{span:qd(r.span,e.touchingEntry.span)});i.push(s),this.splitEntry(r,e.touchingEntry,i)}else i.push(r)}splitEntry(e,r,i){let s=e.span,a=r.span;s.start<a.start&&this.insertEntry({index:e.index,thickness:e.thickness,span:{start:s.start,end:a.start}},i),s.end>a.end&&this.insertEntry({index:e.index,thickness:e.thickness,span:{start:a.end,end:s.end}},i)}insertEntryAt(e,r){let{entriesByLevel:i,levelCoords:s}=this;r.lateral===-1?(qo(s,r.level,r.levelCoord),qo(i,r.level,[e])):qo(i[r.level],r.lateral,e),this.stackCnts[pi(e)]=r.stackCnt}findInsertion(e){let{levelCoords:r,entriesByLevel:i,strictOrder:s,stackCnts:a}=this,l=r.length,o=0,c=-1,d=-1,u=null,m=0;for(let y=0;y<l;y+=1){const f=r[y];if(!s&&f>=o+this.getEntryThickness(e))break;let g=i[y],v,S=Ac(g,e.span.start,Tc),R=S[0]+S[1];for(;(v=g[R])&&v.span.start<e.span.end;){let z=f+this.getEntryThickness(v);z>o&&(o=z,u=v,c=y,d=R),z===o&&(m=Math.max(m,a[pi(v)]+1)),R+=1}}let h=0;if(u)for(h=c+1;h<l&&r[h]<o;)h+=1;let p=-1;return h<l&&r[h]===o&&(p=Ac(i[h],e.span.end,Tc)[0]),{touchingLevel:c,touchingLateral:d,touchingEntry:u,stackCnt:m,levelCoord:o,level:h,lateral:p}}toRects(){let{entriesByLevel:e,levelCoords:r}=this,i=e.length,s=[];for(let a=0;a<i;a+=1){let l=e[a],o=r[a];for(let c of l)s.push(Object.assign(Object.assign({},c),{thickness:this.getEntryThickness(c),levelCoord:o}))}return s}}function Tc(t){return t.span.end}function pi(t){return t.index+":"+t.span.start}function fy(t){let e=[];for(let r of t){let i=[],s={span:r.span,entries:[r]};for(let a of e)qd(a.span,s.span)?s={entries:a.entries.concat(s.entries),span:DI(a.span,s.span)}:i.push(a);i.push(s),e=i}return e}function DI(t,e){return{start:Math.min(t.start,e.start),end:Math.max(t.end,e.end)}}function qd(t,e){let r=Math.max(t.start,e.start),i=Math.min(t.end,e.end);return r<i?{start:r,end:i}:null}function qo(t,e,r){t.splice(e,0,r)}function Ac(t,e,r){let i=0,s=t.length;if(!s||e<r(t[i]))return[0,0];if(e>r(t[s-1]))return[s,0];for(;i<s;){let a=Math.floor(i+(s-i)/2),l=r(t[a]);if(e<l)s=a;else if(e>l)i=a+1;else return[a,1]}return[i,0]}class RI{constructor(e,r){this.emitter=new ra}destroy(){}setMirrorIsVisible(e){}setMirrorNeedsRevert(e){}setAutoScrollEnabled(e){}}const er={},II={startTime:Ge,duration:Ge,create:Boolean,sourceId:String};function Mc(t){let{refined:e,extra:r}=Ji(t,II);return{startTime:e.startTime||null,duration:e.duration||null,create:e.create!=null?e.create:!0,sourceId:e.sourceId,leftoverProps:r}}function TI(t,e){return!t||e>10?bt({weekday:"short"}):e>1?bt({weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}):bt({weekday:"long"})}const gy="fc-col-header-cell";function yy(t){return t.text}class AI extends Ne{render(){let{dateEnv:e,options:r,theme:i,viewApi:s}=this.context,{props:a}=this,{date:l,dateProfile:o}=a,c=po(l,a.todayRange,null,o),d=[gy].concat(ia(c,i)),u=e.format(l,a.dayHeaderFormat),m=!c.isDisabled&&a.colCnt>1?qs(this.context,l):{},h=e.toDate(l);e.namedTimeZoneImpl&&(h=kr(h,36e5));let p=Object.assign(Object.assign(Object.assign({date:h,view:s},a.extraRenderProps),{text:u}),c);return E(Dt,{elTag:"th",elClasses:d,elAttrs:Object.assign({role:"columnheader",colSpan:a.colSpan,"data-date":c.isDisabled?void 0:Ed(l)},a.extraDataAttrs),renderProps:p,generatorName:"dayHeaderContent",customGenerator:r.dayHeaderContent,defaultGenerator:yy,classNameGenerator:r.dayHeaderClassNames,didMount:r.dayHeaderDidMount,willUnmount:r.dayHeaderWillUnmount},y=>E("div",{className:"fc-scrollgrid-sync-inner"},!c.isDisabled&&E(y,{elTag:"a",elAttrs:m,elClasses:["fc-col-header-cell-cushion",a.isSticky&&"fc-sticky"]})))}}const MI=bt({weekday:"long"});class NI extends Ne{render(){let{props:e}=this,{dateEnv:r,theme:i,viewApi:s,options:a}=this.context,l=Mt(new Date(2592e5),e.dow),o={dow:e.dow,isDisabled:!1,isFuture:!1,isPast:!1,isToday:!1,isOther:!1},c=r.format(l,e.dayHeaderFormat),d=Object.assign(Object.assign(Object.assign(Object.assign({date:l},o),{view:s}),e.extraRenderProps),{text:c});return E(Dt,{elTag:"th",elClasses:[gy,...ia(o,i),...e.extraClassNames||[]],elAttrs:Object.assign({role:"columnheader",colSpan:e.colSpan},e.extraDataAttrs),renderProps:d,generatorName:"dayHeaderContent",customGenerator:a.dayHeaderContent,defaultGenerator:yy,classNameGenerator:a.dayHeaderClassNames,didMount:a.dayHeaderDidMount,willUnmount:a.dayHeaderWillUnmount},u=>E("div",{className:"fc-scrollgrid-sync-inner"},E(u,{elTag:"a",elClasses:["fc-col-header-cell-cushion",e.isSticky&&"fc-sticky"],elAttrs:{"aria-label":r.format(l,MI)}})))}}class xy extends Ne{constructor(){super(...arguments),this.createDayHeaderFormatter=Te(PI)}render(){let{context:e}=this,{dates:r,dateProfile:i,datesRepDistinctDays:s,renderIntro:a}=this.props,l=this.createDayHeaderFormatter(e.options.dayHeaderFormat,s,r.length);return E(Rr,{unit:"day"},(o,c)=>E("tr",{role:"row"},a&&a("day"),r.map(d=>s?E(AI,{key:d.toISOString(),date:d,dateProfile:i,todayRange:c,colCnt:r.length,dayHeaderFormat:l}):E(NI,{key:d.getUTCDay(),dow:d.getUTCDay(),dayHeaderFormat:l}))))}}function PI(t,e,r){return t||TI(e,r)}class vy{constructor(e,r){let i=e.start,{end:s}=e,a=[],l=[],o=-1;for(;i<s;)r.isHiddenDay(i)?a.push(o+.5):(o+=1,a.push(o),l.push(i)),i=Mt(i,1);this.dates=l,this.indices=a,this.cnt=l.length}sliceRange(e){let r=this.getDateDayIndex(e.start),i=this.getDateDayIndex(Mt(e.end,-1)),s=Math.max(0,r),a=Math.min(this.cnt-1,i);return s=Math.ceil(s),a=Math.floor(a),s<=a?{firstIndex:s,lastIndex:a,isStart:r===s,isEnd:i===a}:null}getDateDayIndex(e){let{indices:r}=this,i=Math.floor(ji(this.dates[0],e));return i<0?r[0]-1:i>=r.length?r[r.length-1]+1:r[i]}}class by{constructor(e,r){let{dates:i}=e,s,a,l;if(r){for(a=i[0].getUTCDay(),s=1;s<i.length&&i[s].getUTCDay()!==a;s+=1);l=Math.ceil(i.length/s)}else l=1,s=i.length;this.rowCnt=l,this.colCnt=s,this.daySeries=e,this.cells=this.buildCells(),this.headerDates=this.buildHeaderDates()}buildCells(){let e=[];for(let r=0;r<this.rowCnt;r+=1){let i=[];for(let s=0;s<this.colCnt;s+=1)i.push(this.buildCell(r,s));e.push(i)}return e}buildCell(e,r){let i=this.daySeries.dates[e*this.colCnt+r];return{key:i.toISOString(),date:i}}buildHeaderDates(){let e=[];for(let r=0;r<this.colCnt;r+=1)e.push(this.cells[0][r].date);return e}sliceRange(e){let{colCnt:r}=this,i=this.daySeries.sliceRange(e),s=[];if(i){let{firstIndex:a,lastIndex:l}=i,o=a;for(;o<=l;){let c=Math.floor(o/r),d=Math.min((c+1)*r,l+1);s.push({row:c,firstCol:o%r,lastCol:(d-1)%r,isStart:i.isStart&&o===a,isEnd:i.isEnd&&d-1===l}),o=d}}return s}}class $d{constructor(){this.sliceBusinessHours=Te(this._sliceBusinessHours),this.sliceDateSelection=Te(this._sliceDateSpan),this.sliceEventStore=Te(this._sliceEventStore),this.sliceEventDrag=Te(this._sliceInteraction),this.sliceEventResize=Te(this._sliceInteraction),this.forceDayIfListItem=!1}sliceProps(e,r,i,s,...a){let{eventUiBases:l}=e,o=this.sliceEventStore(e.eventStore,l,r,i,...a);return{dateSelectionSegs:this.sliceDateSelection(e.dateSelection,r,i,l,s,...a),businessHourSegs:this.sliceBusinessHours(e.businessHours,r,i,s,...a),fgEventSegs:o.fg,bgEventSegs:o.bg,eventDrag:this.sliceEventDrag(e.eventDrag,l,r,i,...a),eventResize:this.sliceEventResize(e.eventResize,l,r,i,...a),eventSelection:e.eventSelection}}sliceNowDate(e,r,i,s,...a){return this._sliceDateSpan({range:{start:e,end:kr(e,1)},allDay:!1},r,i,{},s,...a)}_sliceBusinessHours(e,r,i,s,...a){return e?this._sliceEventStore(xi(e,Ta(r,!!i),s),{},r,i,...a).bg:[]}_sliceEventStore(e,r,i,s,...a){if(e){let l=Th(e,r,Ta(i,!!s),s);return{bg:this.sliceEventRanges(l.bg,a),fg:this.sliceEventRanges(l.fg,a)}}return{bg:[],fg:[]}}_sliceInteraction(e,r,i,s,...a){if(!e)return null;let l=Th(e.mutatedEvents,r,Ta(i,!!s),s);return{segs:this.sliceEventRanges(l.fg,a),affectedInstances:e.affectedEvents.instances,isEvent:e.isEvent}}_sliceDateSpan(e,r,i,s,a,...l){if(!e)return[];let o=Ta(r,!!i),c=Ur(e.range,o);if(c){e=Object.assign(Object.assign({},e),{range:c});let d=uI(e,s,a),u=this.sliceRange(e.range,...l);for(let m of u)m.eventRange=d;return u}return[]}sliceEventRanges(e,r){let i=[];for(let s of e)i.push(...this.sliceEventRange(s,r));return i}sliceEventRange(e,r){let i=e.range;this.forceDayIfListItem&&e.ui.display==="list-item"&&(i={start:i.start,end:Mt(i.start,1)});let s=this.sliceRange(i,...r);for(let a of s)a.eventRange=e,a.isStart=e.isStart&&a.isStart,a.isEnd=e.isEnd&&a.isEnd;return s}}function Ta(t,e){let r=t.activeRange;return e?r:{start:kr(r.start,t.slotMinTime.milliseconds),end:kr(r.end,t.slotMaxTime.milliseconds-864e5)}}function Kd(t,e,r){let{instances:i}=t.mutatedEvents;for(let s in i)if(!co(e.validRange,i[s].range))return!1;return _y({eventDrag:t},r)}function zI(t,e,r){return co(e.validRange,t.range)?_y({dateSelection:t},r):!1}function _y(t,e){let r=e.getCurrentData(),i=Object.assign({businessHours:r.businessHours,dateSelection:"",eventStore:r.eventStore,eventUiBases:r.eventUiBases,eventSelection:"",eventDrag:null,eventResize:null},t);return(e.pluginHooks.isPropsValid||jy)(i,e)}function jy(t,e,r={},i){return!(t.eventDrag&&!OI(t,e,r,i)||t.dateSelection&&!LI(t,e,r,i))}function OI(t,e,r,i){let s=e.getCurrentData(),a=t.eventDrag,l=a.mutatedEvents,o=l.defs,c=l.instances,d=El(o,a.isEvent?t.eventUiBases:{"":s.selectionConfig});i&&(d=dn(d,i));let u=qR(t.eventStore,a.affectedEvents.instances),m=u.defs,h=u.instances,p=El(m,t.eventUiBases);for(let y in c){let f=c[y],g=f.range,v=d[f.defId],S=o[f.defId];if(!ky(v.constraints,g,u,t.businessHours,e))return!1;let{eventOverlap:R}=e.options,z=typeof R=="function"?R:null;for(let U in h){let A=h[U];if(oo(g,A.range)&&(p[A.defId].overlap===!1&&a.isEvent||v.overlap===!1||z&&!z(new pt(e,m[A.defId],A),new pt(e,S,f))))return!1}let P=s.eventStore;for(let U of v.allows){let A=Object.assign(Object.assign({},r),{range:f.range,allDay:S.allDay}),w=P.defs[S.defId],Y=P.instances[y],D;if(w?D=new pt(e,w,Y):D=new pt(e,S),!U(Pd(A,e),D))return!1}}return!0}function LI(t,e,r,i){let s=t.eventStore,a=s.defs,l=s.instances,o=t.dateSelection,c=o.range,{selectionConfig:d}=e.getCurrentData();if(i&&(d=i(d)),!ky(d.constraints,c,s,t.businessHours,e))return!1;let{selectOverlap:u}=e.options,m=typeof u=="function"?u:null;for(let h in l){let p=l[h];if(oo(c,p.range)&&(d.overlap===!1||m&&!m(new pt(e,a[p.defId],p),null)))return!1}for(let h of d.allows){let p=Object.assign(Object.assign({},r),o);if(!h(Pd(p,e),null))return!1}return!0}function ky(t,e,r,i,s){for(let a of t)if(!BI(FI(a,e,r,i,s),e))return!1;return!0}function FI(t,e,r,i,s){return t==="businessHours"?$o(xi(i,e,s)):typeof t=="string"?$o(ho(r,a=>a.groupId===t)):typeof t=="object"&&t?$o(xi(t,e,s)):[]}function $o(t){let{instances:e}=t,r=[];for(let i in e)r.push(e[i].range);return r}function BI(t,e){for(let r of t)if(co(r,e))return!0;return!1}const Aa=/^(visible|hidden)$/;class Sy extends Ne{constructor(){super(...arguments),this.handleEl=e=>{this.el=e,Nn(this.props.elRef,e)}}render(){let{props:e}=this,{liquid:r,liquidIsAbsolute:i}=e,s=r&&i,a=["fc-scroller"];return r&&(i?a.push("fc-scroller-liquid-absolute"):a.push("fc-scroller-liquid")),E("div",{ref:this.handleEl,className:a.join(" "),style:{overflowX:e.overflowX,overflowY:e.overflowY,left:s&&-(e.overcomeLeft||0)||"",right:s&&-(e.overcomeRight||0)||"",bottom:s&&-(e.overcomeBottom||0)||"",marginLeft:!s&&-(e.overcomeLeft||0)||"",marginRight:!s&&-(e.overcomeRight||0)||"",marginBottom:!s&&-(e.overcomeBottom||0)||"",maxHeight:e.maxHeight||""}},e.children)}needsXScrolling(){if(Aa.test(this.props.overflowX))return!1;let{el:e}=this,r=this.el.getBoundingClientRect().width-this.getYScrollbarWidth(),{children:i}=e;for(let s=0;s<i.length;s+=1)if(i[s].getBoundingClientRect().width>r)return!0;return!1}needsYScrolling(){if(Aa.test(this.props.overflowY))return!1;let{el:e}=this,r=this.el.getBoundingClientRect().height-this.getXScrollbarWidth(),{children:i}=e;for(let s=0;s<i.length;s+=1)if(i[s].getBoundingClientRect().height>r)return!0;return!1}getXScrollbarWidth(){return Aa.test(this.props.overflowX)?0:this.el.offsetHeight-this.el.clientHeight}getYScrollbarWidth(){return Aa.test(this.props.overflowY)?0:this.el.offsetWidth-this.el.clientWidth}}class Wt{constructor(e){this.masterCallback=e,this.currentMap={},this.depths={},this.callbackMap={},this.handleValue=(r,i)=>{let{depths:s,currentMap:a}=this,l=!1,o=!1;r!==null?(l=i in a,a[i]=r,s[i]=(s[i]||0)+1,o=!0):(s[i]-=1,s[i]||(delete a[i],delete this.callbackMap[i],l=!0)),this.masterCallback&&(l&&this.masterCallback(null,String(i)),o&&this.masterCallback(r,String(i)))}}createRef(e){let r=this.callbackMap[e];return r||(r=this.callbackMap[e]=i=>{this.handleValue(i,String(e))}),r}collect(e,r,i){return zg(this.currentMap,e,r,i)}getAll(){return Dd(this.currentMap)}}function Ey(t){let e=Zi(t,".fc-scrollgrid-shrink"),r=0;for(let i of e)r=Math.max(r,kD(i));return Math.ceil(r)}function Gd(t,e){return t.liquid&&e.liquid}function wy(t,e){return e.maxHeight!=null||Gd(t,e)}function Cy(t,e,r,i){let{expandRows:s}=r;return typeof e.content=="function"?e.content(r):E("table",{role:"presentation",className:[e.tableClassName,t.syncRowHeights?"fc-scrollgrid-sync-table":""].join(" "),style:{minWidth:r.tableMinWidth,width:r.clientWidth,height:s?r.clientHeight:""}},r.tableColGroupNode,E(i?"thead":"tbody",{role:"presentation"},typeof e.rowContent=="function"?e.rowContent(r):e.rowContent))}function Dy(t,e){return Mn(t,e,Qt)}function Ry(t,e){let r=[];for(let i of t){let s=i.span||1;for(let a=0;a<s;a+=1)r.push(E("col",{style:{width:i.width==="shrink"?Iy(e):i.width||"",minWidth:i.minWidth||""}}))}return E("colgroup",{},...r)}function Iy(t){return t??4}function Ty(t){for(let e of t)if(e.width==="shrink")return!0;return!1}function Ay(t,e){let r=["fc-scrollgrid",e.theme.getClass("table")];return t&&r.push("fc-scrollgrid-liquid"),r}function My(t,e){let r=["fc-scrollgrid-section",`fc-scrollgrid-section-${t.type}`,t.className];return e&&t.liquid&&t.maxHeight==null&&r.push("fc-scrollgrid-section-liquid"),t.isSticky&&r.push("fc-scrollgrid-section-sticky"),r}function $i(t){return E("div",{className:"fc-scrollgrid-sticky-shim",style:{width:t.clientWidth,minWidth:t.tableMinWidth}})}function Ki(t){let{stickyHeaderDates:e}=t;return(e==null||e==="auto")&&(e=t.height==="auto"||t.viewHeight==="auto"),e}function fo(t){let{stickyFooterScrollbar:e}=t;return(e==null||e==="auto")&&(e=t.height==="auto"||t.viewHeight==="auto"),e}class Wd extends Ne{constructor(){super(...arguments),this.processCols=Te(e=>e,Dy),this.renderMicroColGroup=Te(Ry),this.scrollerRefs=new Wt,this.scrollerElRefs=new Wt(this._handleScrollerEl.bind(this)),this.state={shrinkWidth:null,forceYScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{}},this.handleSizing=()=>{this.safeSetState(Object.assign({shrinkWidth:this.computeShrinkWidth()},this.computeScrollerDims()))}}render(){let{props:e,state:r,context:i}=this,s=e.sections||[],a=this.processCols(e.cols),l=this.renderMicroColGroup(a,r.shrinkWidth),o=Ay(e.liquid,i);e.collapsibleWidth&&o.push("fc-scrollgrid-collapsible");let c=s.length,d=0,u,m=[],h=[],p=[];for(;d<c&&(u=s[d]).type==="header";)m.push(this.renderSection(u,l,!0)),d+=1;for(;d<c&&(u=s[d]).type==="body";)h.push(this.renderSection(u,l,!1)),d+=1;for(;d<c&&(u=s[d]).type==="footer";)p.push(this.renderSection(u,l,!0)),d+=1;let y=!Fd();const f={role:"rowgroup"};return E("table",{role:"grid",className:o.join(" "),style:{height:e.height}},!!(!y&&m.length)&&E("thead",f,...m),!!(!y&&h.length)&&E("tbody",f,...h),!!(!y&&p.length)&&E("tfoot",f,...p),y&&E("tbody",f,...m,...h,...p))}renderSection(e,r,i){return"outerContent"in e?E(Ye,{key:e.key},e.outerContent):E("tr",{key:e.key,role:"presentation",className:My(e,this.props.liquid).join(" ")},this.renderChunkTd(e,r,e.chunk,i))}renderChunkTd(e,r,i,s){if("outerContent"in i)return i.outerContent;let{props:a}=this,{forceYScrollbars:l,scrollerClientWidths:o,scrollerClientHeights:c}=this.state,d=wy(a,e),u=Gd(a,e),m=a.liquid?l?"scroll":d?"auto":"hidden":"visible",h=e.key,p=Cy(e,i,{tableColGroupNode:r,tableMinWidth:"",clientWidth:!a.collapsibleWidth&&o[h]!==void 0?o[h]:null,clientHeight:c[h]!==void 0?c[h]:null,expandRows:e.expandRows,syncRowHeights:!1,rowSyncHeights:[],reportRowHeightChange:()=>{}},s);return E(s?"th":"td",{ref:i.elRef,role:"presentation"},E("div",{className:`fc-scroller-harness${u?" fc-scroller-harness-liquid":""}`},E(Sy,{ref:this.scrollerRefs.createRef(h),elRef:this.scrollerElRefs.createRef(h),overflowY:m,overflowX:a.liquid?"hidden":"visible",maxHeight:e.maxHeight,liquid:u,liquidIsAbsolute:!0},p)))}_handleScrollerEl(e,r){let i=YI(this.props.sections,r);i&&Nn(i.chunk.scrollerElRef,e)}componentDidMount(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)}componentDidUpdate(){this.handleSizing()}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}computeShrinkWidth(){return Ty(this.props.cols)?Ey(this.scrollerElRefs.getAll()):0}computeScrollerDims(){let e=dy(),{scrollerRefs:r,scrollerElRefs:i}=this,s=!1,a={},l={};for(let o in r.currentMap){let c=r.currentMap[o];if(c&&c.needsYScrolling()){s=!0;break}}for(let o of this.props.sections){let c=o.key,d=i.currentMap[c];if(d){let u=d.parentNode;a[c]=Math.floor(u.getBoundingClientRect().width-(s?e.y:0)),l[c]=Math.floor(u.getBoundingClientRect().height)}}return{forceYScrollbars:s,scrollerClientWidths:a,scrollerClientHeights:l}}}Wd.addStateEquality({scrollerClientWidths:Qt,scrollerClientHeights:Qt});function YI(t,e){for(let r of t)if(r.key===e)return r;return null}class Vd extends Ne{constructor(){super(...arguments),this.buildPublicEvent=Te((e,r,i)=>new pt(e,r,i)),this.handleEl=e=>{this.el=e,Nn(this.props.elRef,e),e&&Ah(e,this.props.seg)}}render(){const{props:e,context:r}=this,{options:i}=r,{seg:s}=e,{eventRange:a}=s,{ui:l}=a,o={event:this.buildPublicEvent(r,a.def,a.instance),view:r.viewApi,timeText:e.timeText,textColor:l.textColor,backgroundColor:l.backgroundColor,borderColor:l.borderColor,isDraggable:!e.disableDragging&&tI(s,r),isStartResizable:!e.disableResizing&&nI(s,r),isEndResizable:!e.disableResizing&&rI(s),isMirror:!!(e.isDragging||e.isResizing||e.isDateSelecting),isStart:!!s.isStart,isEnd:!!s.isEnd,isPast:!!e.isPast,isFuture:!!e.isFuture,isToday:!!e.isToday,isSelected:!!e.isSelected,isDragging:!!e.isDragging,isResizing:!!e.isResizing};return E(Dt,{elRef:this.handleEl,elTag:e.elTag,elAttrs:e.elAttrs,elClasses:[...iI(o),...s.eventRange.ui.classNames,...e.elClasses||[]],elStyle:e.elStyle,renderProps:o,generatorName:"eventContent",customGenerator:i.eventContent,defaultGenerator:e.defaultGenerator,classNameGenerator:i.eventClassNames,didMount:i.eventDidMount,willUnmount:i.eventWillUnmount},e.children)}componentDidUpdate(e){this.el&&this.props.seg!==e.seg&&Ah(this.el,this.props.seg)}}class go extends Ne{render(){let{props:e,context:r}=this,{options:i}=r,{seg:s}=e,{ui:a}=s.eventRange,l=i.eventTimeFormat||e.defaultTimeFormat,o=ty(s,l,r,e.defaultDisplayEventTime,e.defaultDisplayEventEnd);return E(Vd,Object.assign({},e,{elTag:"a",elStyle:{borderColor:a.borderColor,backgroundColor:a.backgroundColor},elAttrs:ny(s,r),defaultGenerator:HI,timeText:o}),(c,d)=>E(Ye,null,E(c,{elTag:"div",elClasses:["fc-event-main"],elStyle:{color:d.textColor}}),!!d.isStartResizable&&E("div",{className:"fc-event-resizer fc-event-resizer-start"}),!!d.isEndResizable&&E("div",{className:"fc-event-resizer fc-event-resizer-end"})))}}go.addPropsEquality({seg:Qt});function HI(t){return E("div",{className:"fc-event-main-frame"},t.timeText&&E("div",{className:"fc-event-time"},t.timeText),E("div",{className:"fc-event-title-container"},E("div",{className:"fc-event-title fc-sticky"},t.event.title||E(Ye,null,"Â "))))}const ns=t=>E(Dr.Consumer,null,e=>{let{options:r}=e,i={isAxis:t.isAxis,date:e.dateEnv.toDate(t.date),view:e.viewApi};return E(Dt,{elRef:t.elRef,elTag:t.elTag||"div",elAttrs:t.elAttrs,elClasses:t.elClasses,elStyle:t.elStyle,renderProps:i,generatorName:"nowIndicatorContent",customGenerator:r.nowIndicatorContent,classNameGenerator:r.nowIndicatorClassNames,didMount:r.nowIndicatorDidMount,willUnmount:r.nowIndicatorWillUnmount},t.children)}),UI=bt({day:"numeric"});class Qd extends Ne{constructor(){super(...arguments),this.refineRenderProps=ui(qI)}render(){let{props:e,context:r}=this,{options:i}=r,s=this.refineRenderProps({date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,isMonthStart:e.isMonthStart||!1,showDayNumber:e.showDayNumber,extraRenderProps:e.extraRenderProps,viewApi:r.viewApi,dateEnv:r.dateEnv,monthStartFormat:i.monthStartFormat});return E(Dt,{elRef:e.elRef,elTag:e.elTag,elAttrs:Object.assign(Object.assign({},e.elAttrs),s.isDisabled?{}:{"data-date":Ed(e.date)}),elClasses:[...ia(s,r.theme),...e.elClasses||[]],elStyle:e.elStyle,renderProps:s,generatorName:"dayCellContent",customGenerator:i.dayCellContent,defaultGenerator:e.defaultGenerator,classNameGenerator:s.isDisabled?void 0:i.dayCellClassNames,didMount:i.dayCellDidMount,willUnmount:i.dayCellWillUnmount},e.children)}}function Xd(t){return!!(t.dayCellContent||Dc("dayCellContent",t))}function qI(t){let{date:e,dateEnv:r,dateProfile:i,isMonthStart:s}=t,a=po(e,t.todayRange,null,i),l=t.showDayNumber?r.format(e,s?t.monthStartFormat:UI):"";return Object.assign(Object.assign(Object.assign({date:r.toDate(e),view:t.viewApi},a),{isMonthStart:s,dayNumberText:l}),t.extraRenderProps)}class Zd extends Ne{render(){let{props:e}=this,{seg:r}=e;return E(Vd,{elTag:"div",elClasses:["fc-bg-event"],elStyle:{backgroundColor:r.eventRange.ui.backgroundColor},defaultGenerator:$I,seg:r,timeText:"",isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,disableDragging:!0,disableResizing:!0})}}function $I(t){let{title:e}=t.event;return e&&E("div",{className:"fc-event-title"},t.event.title)}function Jd(t){return E("div",{className:`fc-${t}`})}const Ny=t=>E(Dr.Consumer,null,e=>{let{dateEnv:r,options:i}=e,{date:s}=t,a=i.weekNumberFormat||t.defaultFormat,l=r.computeWeekNumber(s),o=r.format(s,a),c={num:l,text:o,date:s};return E(Dt,{elRef:t.elRef,elTag:t.elTag,elAttrs:t.elAttrs,elClasses:t.elClasses,elStyle:t.elStyle,renderProps:c,generatorName:"weekNumberContent",customGenerator:i.weekNumberContent,defaultGenerator:KI,classNameGenerator:i.weekNumberClassNames,didMount:i.weekNumberDidMount,willUnmount:i.weekNumberWillUnmount},t.children)});function KI(t){return t.text}const Ko=10;class GI extends Ne{constructor(){super(...arguments),this.state={titleId:ro()},this.handleRootEl=e=>{this.rootEl=e,this.props.elRef&&Nn(this.props.elRef,e)},this.handleDocumentMouseDown=e=>{const r=wg(e);this.rootEl.contains(r)||this.handleCloseClick()},this.handleDocumentKeyDown=e=>{e.key==="Escape"&&this.handleCloseClick()},this.handleCloseClick=()=>{let{onClose:e}=this.props;e&&e()}}render(){let{theme:e,options:r}=this.context,{props:i,state:s}=this,a=["fc-popover",e.getClass("popover")].concat(i.extraClassNames||[]);return J0(E("div",Object.assign({},i.extraAttrs,{id:i.id,className:a.join(" "),"aria-labelledby":s.titleId,ref:this.handleRootEl}),E("div",{className:"fc-popover-header "+e.getClass("popoverHeader")},E("span",{className:"fc-popover-title",id:s.titleId},i.title),E("span",{className:"fc-popover-close "+e.getIconClass("close"),title:r.closeHint,onClick:this.handleCloseClick})),E("div",{className:"fc-popover-body "+e.getClass("popoverContent")},i.children)),i.parentEl)}componentDidMount(){document.addEventListener("mousedown",this.handleDocumentMouseDown),document.addEventListener("keydown",this.handleDocumentKeyDown),this.updateSize()}componentWillUnmount(){document.removeEventListener("mousedown",this.handleDocumentMouseDown),document.removeEventListener("keydown",this.handleDocumentKeyDown)}updateSize(){let{isRtl:e}=this.context,{alignmentEl:r,alignGridTop:i}=this.props,{rootEl:s}=this,a=EI(r);if(a){let l=s.getBoundingClientRect(),o=i?Ut(r,".fc-scrollgrid").getBoundingClientRect().top:a.top,c=e?a.right-l.width:a.left;o=Math.max(o,Ko),c=Math.min(c,document.documentElement.clientWidth-Ko-l.width),c=Math.max(c,Ko);let d=s.offsetParent.getBoundingClientRect();Oi(s,{top:o-d.top,left:c-d.left})}}}class WI extends Pn{constructor(){super(...arguments),this.handleRootEl=e=>{this.rootEl=e,e?this.context.registerInteractiveComponent(this,{el:e,useEventCenter:!1}):this.context.unregisterInteractiveComponent(this)}}render(){let{options:e,dateEnv:r}=this.context,{props:i}=this,{startDate:s,todayRange:a,dateProfile:l}=i,o=r.format(s,e.dayPopoverFormat);return E(Qd,{elRef:this.handleRootEl,date:s,dateProfile:l,todayRange:a},(c,d,u)=>E(GI,{elRef:u.ref,id:i.id,title:o,extraClassNames:["fc-more-popover"].concat(u.className||[]),extraAttrs:u,parentEl:i.parentEl,alignmentEl:i.alignmentEl,alignGridTop:i.alignGridTop,onClose:i.onClose},Xd(e)&&E(c,{elTag:"div",elClasses:["fc-more-popover-misc"]}),i.children))}queryHit(e,r,i,s){let{rootEl:a,props:l}=this;return e>=0&&e<i&&r>=0&&r<s?{dateProfile:l.dateProfile,dateSpan:Object.assign({allDay:!l.forceTimed,range:{start:l.startDate,end:l.endDate}},l.extraDateSpan),dayEl:a,rect:{left:0,top:0,right:i,bottom:s},layer:1}:null}}class eu extends Ne{constructor(){super(...arguments),this.state={isPopoverOpen:!1,popoverId:ro()},this.handleLinkEl=e=>{this.linkEl=e,this.props.elRef&&Nn(this.props.elRef,e)},this.handleClick=e=>{let{props:r,context:i}=this,{moreLinkClick:s}=i.options,a=Ph(r).start;function l(o){let{def:c,instance:d,range:u}=o.eventRange;return{event:new pt(i,c,d),start:i.dateEnv.toDate(u.start),end:i.dateEnv.toDate(u.end),isStart:o.isStart,isEnd:o.isEnd}}typeof s=="function"&&(s=s({date:a,allDay:!!r.allDayDate,allSegs:r.allSegs.map(l),hiddenSegs:r.hiddenSegs.map(l),jsEvent:e,view:i.viewApi})),!s||s==="popover"?this.setState({isPopoverOpen:!0}):typeof s=="string"&&i.calendarApi.zoomTo(a,s)},this.handlePopoverClose=()=>{this.setState({isPopoverOpen:!1})}}render(){let{props:e,state:r}=this;return E(Dr.Consumer,null,i=>{let{viewApi:s,options:a,calendarApi:l}=i,{moreLinkText:o}=a,{moreCnt:c}=e,d=Ph(e),u=typeof o=="function"?o.call(l,c):`+${c} ${o}`,m=js(a.moreLinkHint,[c],u),h={num:c,shortText:`+${c}`,text:u,view:s};return E(Ye,null,!!e.moreCnt&&E(Dt,{elTag:e.elTag||"a",elRef:this.handleLinkEl,elClasses:[...e.elClasses||[],"fc-more-link"],elStyle:e.elStyle,elAttrs:Object.assign(Object.assign(Object.assign({},e.elAttrs),Dg(this.handleClick)),{title:m,"aria-expanded":r.isPopoverOpen,"aria-controls":r.isPopoverOpen?r.popoverId:""}),renderProps:h,generatorName:"moreLinkContent",customGenerator:a.moreLinkContent,defaultGenerator:e.defaultGenerator||VI,classNameGenerator:a.moreLinkClassNames,didMount:a.moreLinkDidMount,willUnmount:a.moreLinkWillUnmount},e.children),r.isPopoverOpen&&E(WI,{id:r.popoverId,startDate:d.start,endDate:d.end,dateProfile:e.dateProfile,todayRange:e.todayRange,extraDateSpan:e.extraDateSpan,parentEl:this.parentEl,alignmentEl:e.alignmentElRef?e.alignmentElRef.current:this.linkEl,alignGridTop:e.alignGridTop,forceTimed:e.forceTimed,onClose:this.handlePopoverClose},e.popoverContent()))})}componentDidMount(){this.updateParentEl()}componentDidUpdate(){this.updateParentEl()}updateParentEl(){this.linkEl&&(this.parentEl=Ut(this.linkEl,".fc-view-harness"))}}function VI(t){return t.text}function Ph(t){if(t.allDayDate)return{start:t.allDayDate,end:Mt(t.allDayDate,1)};let{hiddenSegs:e}=t;return{start:yo(e),end:XI(e)}}function yo(t){return t.reduce(QI).eventRange.range.start}function QI(t,e){return t.eventRange.range.start<e.eventRange.range.start?t:e}function XI(t){return t.reduce(ZI).eventRange.range.end}function ZI(t,e){return t.eventRange.range.end>e.eventRange.range.end?t:e}class JI{constructor(){this.handlers=[]}set(e){this.currentValue=e;for(let r of this.handlers)r(e)}subscribe(e){this.handlers.push(e),this.currentValue!==void 0&&e(this.currentValue)}}class eT extends JI{constructor(){super(...arguments),this.map=new Map}handle(e){const{map:r}=this;let i=!1;e.isActive?(r.set(e.id,e),i=!0):r.has(e.id)&&(r.delete(e.id),i=!0),i&&this.set(r)}}const tT=[],Py={code:"en",week:{dow:0,doy:4},direction:"ltr",buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day",list:"list"},weekText:"W",weekTextLong:"Week",closeHint:"Close",timeHint:"Time",eventHint:"Event",allDayText:"all-day",moreLinkText:"more",noEventsText:"No events to display"},zy=Object.assign(Object.assign({},Py),{buttonHints:{prev:"Previous $0",next:"Next $0",today(t,e){return e==="day"?"Today":`This ${t}`}},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint(t){return`Show ${t} more event${t===1?"":"s"}`}});function nT(t){let e=t.length>0?t[0].code:"en",r=tT.concat(t),i={en:zy};for(let s of r)i[s.code]=s;return{map:i,defaultCode:e}}function Oy(t,e){return typeof t=="object"&&!Array.isArray(t)?Ly(t.code,[t.code],t):rT(t,e)}function rT(t,e){let r=[].concat(t||[]),i=iT(r,e)||zy;return Ly(t,r,i)}function iT(t,e){for(let r=0;r<t.length;r+=1){let i=t[r].toLocaleLowerCase().split("-");for(let s=i.length;s>0;s-=1){let a=i.slice(0,s).join("-");if(e[a])return e[a]}}return null}function Ly(t,e,r){let i=Cd([Py,r],["buttonText"]);delete i.code;let{week:s}=i;return delete i.week,{codeArg:t,codes:e,week:s,simpleNumberFormat:new Intl.NumberFormat(t),options:i}}function zn(t){return{id:mr(),name:t.name,premiumReleaseDate:t.premiumReleaseDate?new Date(t.premiumReleaseDate):void 0,deps:t.deps||[],reducers:t.reducers||[],isLoadingFuncs:t.isLoadingFuncs||[],contextInit:[].concat(t.contextInit||[]),eventRefiners:t.eventRefiners||{},eventDefMemberAdders:t.eventDefMemberAdders||[],eventSourceRefiners:t.eventSourceRefiners||{},isDraggableTransformers:t.isDraggableTransformers||[],eventDragMutationMassagers:t.eventDragMutationMassagers||[],eventDefMutationAppliers:t.eventDefMutationAppliers||[],dateSelectionTransformers:t.dateSelectionTransformers||[],datePointTransforms:t.datePointTransforms||[],dateSpanTransforms:t.dateSpanTransforms||[],views:t.views||{},viewPropsTransformers:t.viewPropsTransformers||[],isPropsValid:t.isPropsValid||null,externalDefTransforms:t.externalDefTransforms||[],viewContainerAppends:t.viewContainerAppends||[],eventDropTransformers:t.eventDropTransformers||[],componentInteractions:t.componentInteractions||[],calendarInteractions:t.calendarInteractions||[],themeClasses:t.themeClasses||{},eventSourceDefs:t.eventSourceDefs||[],cmdFormatter:t.cmdFormatter,recurringTypes:t.recurringTypes||[],namedTimeZonedImpl:t.namedTimeZonedImpl,initialView:t.initialView||"",elementDraggingImpl:t.elementDraggingImpl,optionChangeHandlers:t.optionChangeHandlers||{},scrollGridImpl:t.scrollGridImpl||null,listenerRefiners:t.listenerRefiners||{},optionRefiners:t.optionRefiners||{},propSetHandlers:t.propSetHandlers||{}}}function sT(t,e){let r={},i={premiumReleaseDate:void 0,reducers:[],isLoadingFuncs:[],contextInit:[],eventRefiners:{},eventDefMemberAdders:[],eventSourceRefiners:{},isDraggableTransformers:[],eventDragMutationMassagers:[],eventDefMutationAppliers:[],dateSelectionTransformers:[],datePointTransforms:[],dateSpanTransforms:[],views:{},viewPropsTransformers:[],isPropsValid:null,externalDefTransforms:[],viewContainerAppends:[],eventDropTransformers:[],componentInteractions:[],calendarInteractions:[],themeClasses:{},eventSourceDefs:[],cmdFormatter:null,recurringTypes:[],namedTimeZonedImpl:null,initialView:"",elementDraggingImpl:null,optionChangeHandlers:{},scrollGridImpl:null,listenerRefiners:{},optionRefiners:{},propSetHandlers:{}};function s(a){for(let l of a){const o=l.name,c=r[o];c===void 0?(r[o]=l.id,s(l.deps),i=lT(i,l)):c!==l.id&&console.warn(`Duplicate plugin '${o}'`)}}return t&&s(t),s(e),i}function aT(){let t=[],e=[],r;return(i,s)=>((!r||!Mn(i,t)||!Mn(s,e))&&(r=sT(i,s)),t=i,e=s,r)}function lT(t,e){return{premiumReleaseDate:oT(t.premiumReleaseDate,e.premiumReleaseDate),reducers:t.reducers.concat(e.reducers),isLoadingFuncs:t.isLoadingFuncs.concat(e.isLoadingFuncs),contextInit:t.contextInit.concat(e.contextInit),eventRefiners:Object.assign(Object.assign({},t.eventRefiners),e.eventRefiners),eventDefMemberAdders:t.eventDefMemberAdders.concat(e.eventDefMemberAdders),eventSourceRefiners:Object.assign(Object.assign({},t.eventSourceRefiners),e.eventSourceRefiners),isDraggableTransformers:t.isDraggableTransformers.concat(e.isDraggableTransformers),eventDragMutationMassagers:t.eventDragMutationMassagers.concat(e.eventDragMutationMassagers),eventDefMutationAppliers:t.eventDefMutationAppliers.concat(e.eventDefMutationAppliers),dateSelectionTransformers:t.dateSelectionTransformers.concat(e.dateSelectionTransformers),datePointTransforms:t.datePointTransforms.concat(e.datePointTransforms),dateSpanTransforms:t.dateSpanTransforms.concat(e.dateSpanTransforms),views:Object.assign(Object.assign({},t.views),e.views),viewPropsTransformers:t.viewPropsTransformers.concat(e.viewPropsTransformers),isPropsValid:e.isPropsValid||t.isPropsValid,externalDefTransforms:t.externalDefTransforms.concat(e.externalDefTransforms),viewContainerAppends:t.viewContainerAppends.concat(e.viewContainerAppends),eventDropTransformers:t.eventDropTransformers.concat(e.eventDropTransformers),calendarInteractions:t.calendarInteractions.concat(e.calendarInteractions),componentInteractions:t.componentInteractions.concat(e.componentInteractions),themeClasses:Object.assign(Object.assign({},t.themeClasses),e.themeClasses),eventSourceDefs:t.eventSourceDefs.concat(e.eventSourceDefs),cmdFormatter:e.cmdFormatter||t.cmdFormatter,recurringTypes:t.recurringTypes.concat(e.recurringTypes),namedTimeZonedImpl:e.namedTimeZonedImpl||t.namedTimeZonedImpl,initialView:t.initialView||e.initialView,elementDraggingImpl:t.elementDraggingImpl||e.elementDraggingImpl,optionChangeHandlers:Object.assign(Object.assign({},t.optionChangeHandlers),e.optionChangeHandlers),scrollGridImpl:e.scrollGridImpl||t.scrollGridImpl,listenerRefiners:Object.assign(Object.assign({},t.listenerRefiners),e.listenerRefiners),optionRefiners:Object.assign(Object.assign({},t.optionRefiners),e.optionRefiners),propSetHandlers:Object.assign(Object.assign({},t.propSetHandlers),e.propSetHandlers)}}function oT(t,e){return t===void 0?e:e===void 0?t:new Date(Math.max(t.valueOf(),e.valueOf()))}class $r extends na{}$r.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"};$r.prototype.baseIconClass="fc-icon";$r.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"};$r.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"};$r.prototype.iconOverrideOption="buttonIcons";$r.prototype.iconOverrideCustomButtonOption="icon";$r.prototype.iconOverridePrefix="fc-icon-";function cT(t,e){let r={},i;for(i in t)Nc(i,r,t,e);for(i in e)Nc(i,r,t,e);return r}function Nc(t,e,r,i){if(e[t])return e[t];let s=dT(t,e,r,i);return s&&(e[t]=s),s}function dT(t,e,r,i){let s=r[t],a=i[t],l=u=>s&&s[u]!==null?s[u]:a&&a[u]!==null?a[u]:null,o=l("component"),c=l("superType"),d=null;if(c){if(c===t)throw new Error("Can't have a custom view type that references itself");d=Nc(c,e,r,i)}return!o&&d&&(o=d.component),o?{type:t,component:o,defaults:Object.assign(Object.assign({},d?d.defaults:{}),s?s.rawOptions:{}),overrides:Object.assign(Object.assign({},d?d.overrides:{}),a?a.rawOptions:{})}:null}function zh(t){return dn(t,uT)}function uT(t){let e=typeof t=="function"?{component:t}:t,{component:r}=e;return e.content?r=Oh(e):r&&!(r.prototype instanceof Ne)&&(r=Oh(Object.assign(Object.assign({},e),{content:r}))),{superType:e.type,component:r,rawOptions:e}}function Oh(t){return e=>E(Dr.Consumer,null,r=>E(Dt,{elTag:"div",elClasses:Yg(r.viewSpec),renderProps:Object.assign(Object.assign({},e),{nextDayThreshold:r.options.nextDayThreshold}),generatorName:void 0,customGenerator:t.content,classNameGenerator:t.classNames,didMount:t.didMount,willUnmount:t.willUnmount}))}function mT(t,e,r,i){let s=zh(t),a=zh(e.views),l=cT(s,a);return dn(l,o=>hT(o,a,e,r,i))}function hT(t,e,r,i,s){let a=t.overrides.duration||t.defaults.duration||i.duration||r.duration,l=null,o="",c="",d={};if(a&&(l=pT(a),l)){let h=Hr(l);o=h.unit,h.value===1&&(c=o,d=e[o]?e[o].rawOptions:{})}let u=h=>{let p=h.buttonText||{},y=t.defaults.buttonTextKey;return y!=null&&p[y]!=null?p[y]:p[t.type]!=null?p[t.type]:p[c]!=null?p[c]:null},m=h=>{let p=h.buttonHints||{},y=t.defaults.buttonTextKey;return y!=null&&p[y]!=null?p[y]:p[t.type]!=null?p[t.type]:p[c]!=null?p[c]:null};return{type:t.type,component:t.component,duration:l,durationUnit:o,singleUnit:c,optionDefaults:t.defaults,optionOverrides:Object.assign(Object.assign({},d),t.overrides),buttonTextOverride:u(i)||u(r)||t.overrides.buttonText,buttonTextDefault:u(s)||t.defaults.buttonText||u(mi)||t.type,buttonTitleOverride:m(i)||m(r)||t.overrides.buttonHint,buttonTitleDefault:m(s)||t.defaults.buttonHint||m(mi)}}let Lh={};function pT(t){let e=JSON.stringify(t),r=Lh[e];return r===void 0&&(r=Ge(t),Lh[e]=r),r}function fT(t,e){switch(e.type){case"CHANGE_VIEW_TYPE":t=e.viewType}return t}function gT(t,e){switch(e.type){case"CHANGE_DATE":return e.dateMarker;default:return t}}function yT(t,e,r){let i=t.initialDate;return i!=null?e.createMarker(i):r.getDateMarker()}function xT(t,e){switch(e.type){case"SET_OPTION":return Object.assign(Object.assign({},t),{[e.optionName]:e.rawOptionValue});default:return t}}function vT(t,e,r,i){let s;switch(e.type){case"CHANGE_VIEW_TYPE":return i.build(e.dateMarker||r);case"CHANGE_DATE":return i.build(e.dateMarker);case"PREV":if(s=i.buildPrev(t,r),s.isValid)return s;break;case"NEXT":if(s=i.buildNext(t,r),s.isValid)return s;break}return t}function bT(t,e,r){let i=e?e.activeRange:null;return By({},CT(t,r),i,r)}function _T(t,e,r,i){let s=r?r.activeRange:null;switch(e.type){case"ADD_EVENT_SOURCES":return By(t,e.sources,s,i);case"REMOVE_EVENT_SOURCE":return kT(t,e.sourceId);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return r?Yy(t,s,i):t;case"FETCH_EVENT_SOURCES":return tu(t,e.sourceIds?Pg(e.sourceIds):Hy(t,i),s,e.isRefetch||!1,i);case"RECEIVE_EVENTS":case"RECEIVE_EVENT_ERROR":return wT(t,e.sourceId,e.fetchId,e.fetchRange);case"REMOVE_ALL_EVENT_SOURCES":return{};default:return t}}function jT(t,e,r){let i=e?e.activeRange:null;return tu(t,Hy(t,r),i,!0,r)}function Fy(t){for(let e in t)if(t[e].isFetching)return!0;return!1}function By(t,e,r,i){let s={};for(let a of e)s[a.sourceId]=a;return r&&(s=Yy(s,r,i)),Object.assign(Object.assign({},t),s)}function kT(t,e){return Sr(t,r=>r.sourceId!==e)}function Yy(t,e,r){return tu(t,Sr(t,i=>ST(i,e,r)),e,!1,r)}function ST(t,e,r){return Uy(t,r)?!r.options.lazyFetching||!t.fetchRange||t.isFetching||e.start<t.fetchRange.start||e.end>t.fetchRange.end:!t.latestFetchId}function tu(t,e,r,i,s){let a={};for(let l in t){let o=t[l];e[l]?a[l]=ET(o,r,i,s):a[l]=o}return a}function ET(t,e,r,i){let{options:s,calendarApi:a}=i,l=i.pluginHooks.eventSourceDefs[t.sourceDefId],o=mr();return l.fetch({eventSource:t,range:e,isRefetch:r,context:i},c=>{let{rawEvents:d}=c;s.eventSourceSuccess&&(d=s.eventSourceSuccess.call(a,d,c.response)||d),t.success&&(d=t.success.call(a,d,c.response)||d),i.dispatch({type:"RECEIVE_EVENTS",sourceId:t.sourceId,fetchId:o,fetchRange:e,rawEvents:d})},c=>{let d=!1;s.eventSourceFailure&&(s.eventSourceFailure.call(a,c),d=!0),t.failure&&(t.failure(c),d=!0),d||console.warn(c.message,c),i.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:t.sourceId,fetchId:o,fetchRange:e,error:c})}),Object.assign(Object.assign({},t),{isFetching:!0,latestFetchId:o})}function wT(t,e,r,i){let s=t[e];return s&&r===s.latestFetchId?Object.assign(Object.assign({},t),{[e]:Object.assign(Object.assign({},s),{isFetching:!1,fetchRange:i})}):t}function Hy(t,e){return Sr(t,r=>Uy(r,e))}function CT(t,e){let r=Wg(e),i=[].concat(t.eventSources||[]),s=[];t.initialEvents&&i.unshift(t.initialEvents),t.events&&i.unshift(t.events);for(let a of i){let l=Gg(a,e,r);l&&s.push(l)}return s}function Uy(t,e){return!e.pluginHooks.eventSourceDefs[t.sourceDefId].ignoreRange}function DT(t,e){switch(e.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return e.selection;default:return t}}function RT(t,e){switch(e.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return e.eventInstanceId;default:return t}}function IT(t,e){let r;switch(e.type){case"UNSET_EVENT_DRAG":return null;case"SET_EVENT_DRAG":return r=e.state,{affectedEvents:r.affectedEvents,mutatedEvents:r.mutatedEvents,isEvent:r.isEvent};default:return t}}function TT(t,e){let r;switch(e.type){case"UNSET_EVENT_RESIZE":return null;case"SET_EVENT_RESIZE":return r=e.state,{affectedEvents:r.affectedEvents,mutatedEvents:r.mutatedEvents,isEvent:r.isEvent};default:return t}}function AT(t,e,r,i,s){let a=t.headerToolbar?Fh(t.headerToolbar,t,e,r,i,s):null,l=t.footerToolbar?Fh(t.footerToolbar,t,e,r,i,s):null;return{header:a,footer:l}}function Fh(t,e,r,i,s,a){let l={},o=[],c=!1;for(let d in t){let u=t[d],m=MT(u,e,r,i,s,a);l[d]=m.widgets,o.push(...m.viewsWithButtons),c=c||m.hasTitle}return{sectionWidgets:l,viewsWithButtons:o,hasTitle:c}}function MT(t,e,r,i,s,a){let l=e.direction==="rtl",o=e.customButtons||{},c=r.buttonText||{},d=e.buttonText||{},u=r.buttonHints||{},m=e.buttonHints||{},h=t?t.split(" "):[],p=[],y=!1;return{widgets:h.map(g=>g.split(",").map(v=>{if(v==="title")return y=!0,{buttonName:v};let S,R,z,P,U,A;if(S=o[v])z=w=>{S.click&&S.click.call(w.target,w,w.target)},(P=i.getCustomButtonIconClass(S))||(P=i.getIconClass(v,l))||(U=S.text),A=S.hint||S.text;else if(R=s[v]){p.push(v),z=()=>{a.changeView(v)},(U=R.buttonTextOverride)||(P=i.getIconClass(v,l))||(U=R.buttonTextDefault);let w=R.buttonTextOverride||R.buttonTextDefault;A=js(R.buttonTitleOverride||R.buttonTitleDefault||e.viewHint,[w,v],w)}else if(a[v])if(z=()=>{a[v]()},(U=c[v])||(P=i.getIconClass(v,l))||(U=d[v]),v==="prevYear"||v==="nextYear"){let w=v==="prevYear"?"prev":"next";A=js(u[w]||m[w],[d.year||"year","year"],d[v])}else A=w=>js(u[v]||m[v],[d[w]||w,w],d[v]);return{buttonName:v,buttonClick:z,buttonIcon:P,buttonText:U,buttonHint:A}})),viewsWithButtons:p,hasTitle:y}}class NT{constructor(e,r,i){this.type=e,this.getCurrentData=r,this.dateEnv=i}get calendar(){return this.getCurrentData().calendarApi}get title(){return this.getCurrentData().viewTitle}get activeStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)}get activeEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)}get currentStart(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)}get currentEnd(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)}getOption(e){return this.getCurrentData().options[e]}}let PT={ignoreRange:!0,parseMeta(t){return Array.isArray(t.events)?t.events:null},fetch(t,e){e({rawEvents:t.eventSource.meta})}};const zT=zn({name:"array-event-source",eventSourceDefs:[PT]});let OT={parseMeta(t){return typeof t.events=="function"?t.events:null},fetch(t,e,r){const{dateEnv:i}=t.context,s=t.eventSource.meta;sy(s.bind(null,ry(t.range,i)),a=>e({rawEvents:a}),r)}};const LT=zn({name:"func-event-source",eventSourceDefs:[OT]}),FT={method:String,extraParams:Q,startParam:String,endParam:String,timeZoneParam:String};let BT={parseMeta(t){return t.url&&(t.format==="json"||!t.format)?{url:t.url,format:"json",method:(t.method||"GET").toUpperCase(),extraParams:t.extraParams,startParam:t.startParam,endParam:t.endParam,timeZoneParam:t.timeZoneParam}:null},fetch(t,e,r){const{meta:i}=t.eventSource,s=HT(i,t.range,t.context);ay(i.method,i.url,s).then(([a,l])=>{e({rawEvents:a,response:l})},r)}};const YT=zn({name:"json-event-source",eventSourceRefiners:FT,eventSourceDefs:[BT]});function HT(t,e,r){let{dateEnv:i,options:s}=r,a,l,o,c,d={};return a=t.startParam,a==null&&(a=s.startParam),l=t.endParam,l==null&&(l=s.endParam),o=t.timeZoneParam,o==null&&(o=s.timeZoneParam),typeof t.extraParams=="function"?c=t.extraParams():c=t.extraParams||{},Object.assign(d,c),d[a]=i.formatIso(e.start),d[l]=i.formatIso(e.end),i.timeZone!=="local"&&(d[o]=i.timeZone),d}const UT={daysOfWeek:Q,startTime:Ge,endTime:Ge,duration:Ge,startRecur:Q,endRecur:Q};let qT={parse(t,e){if(t.daysOfWeek||t.startTime||t.endTime||t.startRecur||t.endRecur){let r={daysOfWeek:t.daysOfWeek||null,startTime:t.startTime||null,endTime:t.endTime||null,startRecur:t.startRecur?e.createMarker(t.startRecur):null,endRecur:t.endRecur?e.createMarker(t.endRecur):null,dateEnv:e},i;return t.duration&&(i=t.duration),!i&&t.startTime&&t.endTime&&(i=CD(t.endTime,t.startTime)),{allDayGuess:!t.startTime&&!t.endTime,duration:i,typeData:r}}return null},expand(t,e,r){let i=Ur(e,{start:t.startRecur,end:t.endRecur});return i?KT(t.daysOfWeek,t.startTime,t.dateEnv,r,i):[]}};const $T=zn({name:"simple-recurring-event",recurringTypes:[qT],eventRefiners:UT});function KT(t,e,r,i,s){let a=t?Pg(t):null,l=ct(s.start),o=s.end,c=[];for(e&&(e.milliseconds<0?o=Mt(o,1):e.milliseconds>=1e3*60*60*24&&(l=Mt(l,-1)));l<o;){let d;(!a||a[l.getUTCDay()])&&(e?d=i.add(l,e):d=l,c.push(i.createMarker(r.toDate(d)))),l=Mt(l,1)}return c}const GT=zn({name:"change-handler",optionChangeHandlers:{events(t,e){Bh([t],e)},eventSources:Bh}});function Bh(t,e){let r=Dd(e.getCurrentData().eventSources);if(r.length===1&&t.length===1&&Array.isArray(r[0]._raw)&&Array.isArray(t[0])){e.dispatch({type:"RESET_RAW_EVENTS",sourceId:r[0].sourceId,rawEvents:t[0]});return}let i=[];for(let s of t){let a=!1;for(let l=0;l<r.length;l+=1)if(r[l]._raw===s){r.splice(l,1),a=!0;break}a||i.push(s)}for(let s of r)e.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:s.sourceId});for(let s of i)e.calendarApi.addEventSource(s)}function WT(t,e){e.emitter.trigger("datesSet",Object.assign(Object.assign({},ry(t.activeRange,e.dateEnv)),{view:e.viewApi}))}function VT(t,e){let{emitter:r}=e;r.hasHandlers("eventsSet")&&r.trigger("eventsSet",hi(t,e))}const QT=[zT,LT,YT,$T,GT,zn({name:"misc",isLoadingFuncs:[t=>Fy(t.eventSources)],propSetHandlers:{dateProfile:WT,eventStore:VT}})];class XT{constructor(e,r){this.runTaskOption=e,this.drainedOption=r,this.queue=[],this.delayedRunner=new Fs(this.drain.bind(this))}request(e,r){this.queue.push(e),this.delayedRunner.request(r)}pause(e){this.delayedRunner.pause(e)}resume(e,r){this.delayedRunner.resume(e,r)}drain(){let{queue:e}=this;for(;e.length;){let r=[],i;for(;i=e.shift();)this.runTask(i),r.push(i);this.drained(r)}}runTask(e){this.runTaskOption&&this.runTaskOption(e)}drained(e){this.drainedOption&&this.drainedOption(e)}}function ZT(t,e,r){let i;return/^(year|month)$/.test(t.currentRangeUnit)?i=t.currentRange:i=t.activeRange,r.formatRange(i.start,i.end,bt(e.titleFormat||JT(t)),{isEndExclusive:t.isRangeAllDay,defaultSeparator:e.titleRangeSeparator})}function JT(t){let{currentRangeUnit:e}=t;if(e==="year")return{year:"numeric"};if(e==="month")return{year:"numeric",month:"long"};let r=Bs(t.currentRange.start,t.currentRange.end);return r!==null&&r>1?{year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"long",day:"numeric"}}class Yh{constructor(){this.resetListeners=new Set}handleInput(e,r){const i=this.dateEnv;if(e!==i&&(typeof r=="function"?this.nowFn=r:i||(this.nowAnchorDate=e.toDate(r?e.createMarker(r):e.createNowMarker()),this.nowAnchorQueried=Date.now()),this.dateEnv=e,i))for(const s of this.resetListeners.values())s()}getDateMarker(){return this.nowAnchorDate?this.dateEnv.timestampToMarker(this.nowAnchorDate.valueOf()+(Date.now()-this.nowAnchorQueried)):this.dateEnv.createMarker(this.nowFn())}addResetListener(e){this.resetListeners.add(e)}removeResetListener(e){this.resetListeners.delete(e)}}class eA{constructor(e){this.computeCurrentViewData=Te(this._computeCurrentViewData),this.organizeRawLocales=Te(nT),this.buildLocale=Te(Oy),this.buildPluginHooks=aT(),this.buildDateEnv=Te(tA),this.buildTheme=Te(nA),this.parseToolbars=Te(AT),this.buildViewSpecs=Te(mT),this.buildDateProfileGenerator=ui(rA),this.buildViewApi=Te(iA),this.buildViewUiProps=ui(lA),this.buildEventUiBySource=Te(sA,Qt),this.buildEventUiBases=Te(aA),this.parseContextBusinessHours=ui(oA),this.buildTitle=Te(ZT),this.nowManager=new Yh,this.emitter=new ra,this.actionRunner=new XT(this._handleAction.bind(this),this.updateData.bind(this)),this.currentCalendarOptionsInput={},this.currentCalendarOptionsRefined={},this.currentViewOptionsInput={},this.currentViewOptionsRefined={},this.currentCalendarOptionsRefiners={},this.optionsForRefining=[],this.optionsForHandling=[],this.getCurrentData=()=>this.data,this.dispatch=h=>{this.actionRunner.request(h)},this.props=e,this.actionRunner.pause(),this.nowManager=new Yh;let r={},i=this.computeOptionsData(e.optionOverrides,r,e.calendarApi),s=i.calendarOptions.initialView||i.pluginHooks.initialView,a=this.computeCurrentViewData(s,i,e.optionOverrides,r);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(a.options);let l={nowManager:this.nowManager,dateEnv:i.dateEnv,options:i.calendarOptions,pluginHooks:i.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},o=yT(i.calendarOptions,i.dateEnv,this.nowManager),c=a.dateProfileGenerator.build(o);dr(c.activeRange,o)||(o=c.currentRange.start);for(let h of i.pluginHooks.contextInit)h(l);let d=bT(i.calendarOptions,c,l),u={dynamicOptionOverrides:r,currentViewType:s,currentDate:o,dateProfile:c,businessHours:this.parseContextBusinessHours(l),eventSources:d,eventUiBases:{},eventStore:sn(),renderableEventStore:sn(),dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(l).selectionConfig},m=Object.assign(Object.assign({},l),u);for(let h of i.pluginHooks.reducers)Object.assign(u,h(null,null,m));Go(u,l)&&this.emitter.trigger("loading",!0),this.state=u,this.updateData(),this.actionRunner.resume()}resetOptions(e,r){let{props:i}=this;r===void 0?i.optionOverrides=e:(i.optionOverrides=Object.assign(Object.assign({},i.optionOverrides||{}),e),this.optionsForRefining.push(...r)),(r===void 0||r.length)&&this.actionRunner.request({type:"NOTHING"})}_handleAction(e){let{props:r,state:i,emitter:s}=this,a=xT(i.dynamicOptionOverrides,e),l=this.computeOptionsData(r.optionOverrides,a,r.calendarApi),o=fT(i.currentViewType,e),c=this.computeCurrentViewData(o,l,r.optionOverrides,a);r.calendarApi.currentDataManager=this,s.setThisContext(r.calendarApi),s.setOptions(c.options);let d={nowManager:this.nowManager,dateEnv:l.dateEnv,options:l.calendarOptions,pluginHooks:l.pluginHooks,calendarApi:r.calendarApi,dispatch:this.dispatch,emitter:s,getCurrentData:this.getCurrentData},{currentDate:u,dateProfile:m}=i;this.data&&this.data.dateProfileGenerator!==c.dateProfileGenerator&&(m=c.dateProfileGenerator.build(u)),u=gT(u,e),m=vT(m,e,u,c.dateProfileGenerator),(e.type==="PREV"||e.type==="NEXT"||!dr(m.currentRange,u))&&(u=m.currentRange.start);let h=_T(i.eventSources,e,m,d),p=BR(i.eventStore,e,h,m,d),f=Fy(h)&&!c.options.progressiveEventRendering&&i.renderableEventStore||p,{eventUiSingleBase:g,selectionConfig:v}=this.buildViewUiProps(d),S=this.buildEventUiBySource(h),R=this.buildEventUiBases(f.defs,g,S),z={dynamicOptionOverrides:a,currentViewType:o,currentDate:u,dateProfile:m,eventSources:h,eventStore:p,renderableEventStore:f,selectionConfig:v,eventUiBases:R,businessHours:this.parseContextBusinessHours(d),dateSelection:DT(i.dateSelection,e),eventSelection:RT(i.eventSelection,e),eventDrag:IT(i.eventDrag,e),eventResize:TT(i.eventResize,e)},P=Object.assign(Object.assign({},d),z);for(let w of l.pluginHooks.reducers)Object.assign(z,w(i,e,P));let U=Go(i,d),A=Go(z,d);!U&&A?s.trigger("loading",!0):U&&!A&&s.trigger("loading",!1),this.state=z,r.onAction&&r.onAction(e)}updateData(){let{props:e,state:r}=this,i=this.data,s=this.computeOptionsData(e.optionOverrides,r.dynamicOptionOverrides,e.calendarApi),a=this.computeCurrentViewData(r.currentViewType,s,e.optionOverrides,r.dynamicOptionOverrides),l=this.data=Object.assign(Object.assign(Object.assign({nowManager:this.nowManager,viewTitle:this.buildTitle(r.dateProfile,a.options,s.dateEnv),calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},s),a),r),o=s.pluginHooks.optionChangeHandlers,c=i&&i.calendarOptions,d=s.calendarOptions;if(c&&c!==d){c.timeZone!==d.timeZone&&(r.eventSources=l.eventSources=jT(l.eventSources,r.dateProfile,l),r.eventStore=l.eventStore=Ih(l.eventStore,i.dateEnv,l.dateEnv),r.renderableEventStore=l.renderableEventStore=Ih(l.renderableEventStore,i.dateEnv,l.dateEnv));for(let u in o)(this.optionsForHandling.indexOf(u)!==-1||c[u]!==d[u])&&o[u](d[u],l)}this.optionsForHandling=[],e.onData&&e.onData(l)}computeOptionsData(e,r,i){if(!this.optionsForRefining.length&&e===this.stableOptionOverrides&&r===this.stableDynamicOptionOverrides)return this.stableCalendarOptionsData;let{refinedOptions:s,pluginHooks:a,localeDefaults:l,availableLocaleData:o,extra:c}=this.processRawCalendarOptions(e,r);Hh(c);let d=this.buildDateEnv(s.timeZone,s.locale,s.weekNumberCalculation,s.firstDay,s.weekText,a,o,s.defaultRangeSeparator),u=this.buildViewSpecs(a.views,this.stableOptionOverrides,this.stableDynamicOptionOverrides,l),m=this.buildTheme(s,a),h=this.parseToolbars(s,this.stableOptionOverrides,m,u,i);return this.stableCalendarOptionsData={calendarOptions:s,pluginHooks:a,dateEnv:d,viewSpecs:u,theme:m,toolbarConfig:h,localeDefaults:l,availableRawLocales:o.map}}processRawCalendarOptions(e,r){let{locales:i,locale:s}=Fo([mi,e,r]),a=this.organizeRawLocales(i),l=a.map,o=this.buildLocale(s||a.defaultCode,l).options,c=this.buildPluginHooks(e.plugins||[],QT),d=this.currentCalendarOptionsRefiners=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Eh),wh),Ch),c.listenerRefiners),c.optionRefiners),u={},m=Fo([mi,o,e,r]),h={},p=this.currentCalendarOptionsInput,y=this.currentCalendarOptionsRefined,f=!1;for(let g in m)this.optionsForRefining.indexOf(g)===-1&&(m[g]===p[g]||ti[g]&&g in p&&ti[g](p[g],m[g]))?h[g]=y[g]:d[g]?(h[g]=d[g](m[g]),f=!0):u[g]=p[g];return f&&(this.currentCalendarOptionsInput=m,this.currentCalendarOptionsRefined=h,this.stableOptionOverrides=e,this.stableDynamicOptionOverrides=r),this.optionsForHandling.push(...this.optionsForRefining),this.optionsForRefining=[],{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:c,availableLocaleData:a,localeDefaults:o,extra:u}}_computeCurrentViewData(e,r,i,s){let a=r.viewSpecs[e];if(!a)throw new Error(`viewType "${e}" is not available. Please make sure you've loaded all neccessary plugins`);let{refinedOptions:l,extra:o}=this.processRawViewOptions(a,r.pluginHooks,r.localeDefaults,i,s);Hh(o),this.nowManager.handleInput(r.dateEnv,l.now);let c=this.buildDateProfileGenerator({dateProfileGeneratorClass:a.optionDefaults.dateProfileGeneratorClass,nowManager:this.nowManager,duration:a.duration,durationUnit:a.durationUnit,usesMinMaxTime:a.optionDefaults.usesMinMaxTime,dateEnv:r.dateEnv,calendarApi:this.props.calendarApi,slotMinTime:l.slotMinTime,slotMaxTime:l.slotMaxTime,showNonCurrentDates:l.showNonCurrentDates,dayCount:l.dayCount,dateAlignment:l.dateAlignment,dateIncrement:l.dateIncrement,hiddenDays:l.hiddenDays,weekends:l.weekends,validRangeInput:l.validRange,visibleRangeInput:l.visibleRange,fixedWeekCount:l.fixedWeekCount}),d=this.buildViewApi(e,this.getCurrentData,r.dateEnv);return{viewSpec:a,options:l,dateProfileGenerator:c,viewApi:d}}processRawViewOptions(e,r,i,s,a){let l=Fo([mi,e.optionDefaults,i,s,e.optionOverrides,a]),o=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Eh),wh),Ch),aR),r.listenerRefiners),r.optionRefiners),c={},d=this.currentViewOptionsInput,u=this.currentViewOptionsRefined,m=!1,h={};for(let p in l)l[p]===d[p]||ti[p]&&ti[p](l[p],d[p])?c[p]=u[p]:(l[p]===this.currentCalendarOptionsInput[p]||ti[p]&&ti[p](l[p],this.currentCalendarOptionsInput[p])?p in this.currentCalendarOptionsRefined&&(c[p]=this.currentCalendarOptionsRefined[p]):o[p]?c[p]=o[p](l[p]):h[p]=l[p],m=!0);return m&&(this.currentViewOptionsInput=l,this.currentViewOptionsRefined=c),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:h}}}function tA(t,e,r,i,s,a,l,o){let c=Oy(e||l.defaultCode,l.map);return new gR({calendarSystem:"gregory",timeZone:t,namedTimeZoneImpl:a.namedTimeZonedImpl,locale:c,weekNumberCalculation:r,firstDay:i,weekText:s,cmdFormatter:a.cmdFormatter,defaultSeparator:o})}function nA(t,e){let r=e.themeClasses[t.themeSystem]||$r;return new r(t)}function rA(t){let e=t.dateProfileGeneratorClass||qg;return new e(t)}function iA(t,e,r){return new NT(t,e,r)}function sA(t){return dn(t,e=>e.ui)}function aA(t,e,r){let i={"":e};for(let s in t){let a=t[s];a.sourceId&&r[a.sourceId]&&(i[s]=r[a.sourceId])}return i}function lA(t){let{options:e}=t;return{eventUiSingleBase:Us({display:e.eventDisplay,editable:e.editable,startEditable:e.eventStartEditable,durationEditable:e.eventDurationEditable,constraint:e.eventConstraint,overlap:typeof e.eventOverlap=="boolean"?e.eventOverlap:void 0,allow:e.eventAllow,backgroundColor:e.eventBackgroundColor,borderColor:e.eventBorderColor,textColor:e.eventTextColor,color:e.eventColor},t),selectionConfig:Us({constraint:e.selectConstraint,overlap:typeof e.selectOverlap=="boolean"?e.selectOverlap:void 0,allow:e.selectAllow},t)}}function Go(t,e){for(let r of e.pluginHooks.isLoadingFuncs)if(r(t))return!0;return!1}function oA(t){return Xg(t.options.businessHours,t)}function Hh(t,e){for(let r in t)console.warn(`Unknown option '${r}'`)}class cA extends Ne{render(){let e=this.props.widgetGroups.map(r=>this.renderWidgetGroup(r));return E("div",{className:"fc-toolbar-chunk"},...e)}renderWidgetGroup(e){let{props:r}=this,{theme:i}=this.context,s=[],a=!0;for(let l of e){let{buttonName:o,buttonClick:c,buttonText:d,buttonIcon:u,buttonHint:m}=l;if(o==="title")a=!1,s.push(E("h2",{className:"fc-toolbar-title",id:r.titleId},r.title));else{let h=o===r.activeButton,p=!r.isTodayEnabled&&o==="today"||!r.isPrevEnabled&&o==="prev"||!r.isNextEnabled&&o==="next",y=[`fc-${o}-button`,i.getClass("button")];h&&y.push(i.getClass("buttonActive")),s.push(E("button",{type:"button",title:typeof m=="function"?m(r.navUnit):m,disabled:p,"aria-pressed":h,className:y.join(" "),onClick:c},d||(u?E("span",{className:u,role:"img"}):"")))}}if(s.length>1){let l=a&&i.getClass("buttonGroup")||"";return E("div",{className:l},...s)}return s[0]}}class Uh extends Ne{render(){let{model:e,extraClassName:r}=this.props,i=!1,s,a,l=e.sectionWidgets,o=l.center;return l.left?(i=!0,s=l.left):s=l.start,l.right?(i=!0,a=l.right):a=l.end,E("div",{className:[r||"","fc-toolbar",i?"fc-toolbar-ltr":""].join(" ")},this.renderSection("start",s||[]),this.renderSection("center",o||[]),this.renderSection("end",a||[]))}renderSection(e,r){let{props:i}=this;return E(cA,{key:e,widgetGroups:r,title:i.title,navUnit:i.navUnit,activeButton:i.activeButton,isTodayEnabled:i.isTodayEnabled,isPrevEnabled:i.isPrevEnabled,isNextEnabled:i.isNextEnabled,titleId:i.titleId})}}class dA extends Ne{constructor(){super(...arguments),this.state={availableWidth:null},this.handleEl=e=>{this.el=e,Nn(this.props.elRef,e),this.updateAvailableWidth()},this.handleResize=()=>{this.updateAvailableWidth()}}render(){let{props:e,state:r}=this,{aspectRatio:i}=e,s=["fc-view-harness",i||e.liquid||e.height?"fc-view-harness-active":"fc-view-harness-passive"],a="",l="";return i?r.availableWidth!==null?a=r.availableWidth/i:l=`${1/i*100}%`:a=e.height||"",E("div",{"aria-labelledby":e.labeledById,ref:this.handleEl,className:s.join(" "),style:{height:a,paddingBottom:l}},e.children)}componentDidMount(){this.context.addResizeHandler(this.handleResize)}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}updateAvailableWidth(){this.el&&this.props.aspectRatio&&this.setState({availableWidth:this.el.offsetWidth})}}class uA extends es{constructor(e){super(e),this.handleSegClick=(r,i)=>{let{component:s}=this,{context:a}=s,l=qi(i);if(l&&s.isValidSegDownEl(r.target)){let o=Ut(r.target,".fc-event-forced-url"),c=o?o.querySelector("a[href]").href:"";a.emitter.trigger("eventClick",{el:i,event:new pt(s.context,l.eventRange.def,l.eventRange.instance),jsEvent:r,view:a.viewApi}),c&&!r.defaultPrevented&&(window.location.href=c)}},this.destroy=Cg(e.el,"click",".fc-event",this.handleSegClick)}}class mA extends es{constructor(e){super(e),this.handleEventElRemove=r=>{r===this.currentSegEl&&this.handleSegLeave(null,this.currentSegEl)},this.handleSegEnter=(r,i)=>{qi(i)&&(this.currentSegEl=i,this.triggerEvent("eventMouseEnter",r,i))},this.handleSegLeave=(r,i)=>{this.currentSegEl&&(this.currentSegEl=null,this.triggerEvent("eventMouseLeave",r,i))},this.removeHoverListeners=fD(e.el,".fc-event",this.handleSegEnter,this.handleSegLeave)}destroy(){this.removeHoverListeners()}triggerEvent(e,r,i){let{component:s}=this,{context:a}=s,l=qi(i);(!r||s.isValidSegDownEl(r.target))&&a.emitter.trigger(e,{el:i,event:new pt(a,l.eventRange.def,l.eventRange.instance),jsEvent:r,view:a.viewApi})}}class hA extends ki{constructor(){super(...arguments),this.buildViewContext=Te(vR),this.buildViewPropTransformers=Te(fA),this.buildToolbarProps=Te(pA),this.headerRef=ot(),this.footerRef=ot(),this.interactionsStore={},this.state={viewLabelId:ro()},this.registerInteractiveComponent=(e,r)=>{let i=pI(e,r),l=[uA,mA].concat(this.props.pluginHooks.componentInteractions).map(o=>new o(i));this.interactionsStore[e.uid]=l,wl[e.uid]=i},this.unregisterInteractiveComponent=e=>{let r=this.interactionsStore[e.uid];if(r){for(let i of r)i.destroy();delete this.interactionsStore[e.uid]}delete wl[e.uid]},this.resizeRunner=new Fs(()=>{this.props.emitter.trigger("_resize",!0),this.props.emitter.trigger("windowResize",{view:this.props.viewApi})}),this.handleWindowResize=e=>{let{options:r}=this.props;r.handleWindowResize&&e.target===window&&this.resizeRunner.request(r.windowResizeDelay)}}render(){let{props:e}=this,{toolbarConfig:r,options:i}=e,s=!1,a="",l;e.isHeightAuto||e.forPrint?a="":i.height!=null?s=!0:i.contentHeight!=null?a=i.contentHeight:l=Math.max(i.aspectRatio,.5);let o=this.buildViewContext(e.viewSpec,e.viewApi,e.options,e.dateProfileGenerator,e.dateEnv,e.nowManager,e.theme,e.pluginHooks,e.dispatch,e.getCurrentData,e.emitter,e.calendarApi,this.registerInteractiveComponent,this.unregisterInteractiveComponent),c=r.header&&r.header.hasTitle?this.state.viewLabelId:void 0;return E(Dr.Provider,{value:o},E(Rr,{unit:"day"},d=>{let u=this.buildToolbarProps(e.viewSpec,e.dateProfile,e.dateProfileGenerator,e.currentDate,d,e.viewTitle);return E(Ye,null,r.header&&E(Uh,Object.assign({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:r.header,titleId:c},u)),E(dA,{liquid:s,height:a,aspectRatio:l,labeledById:c},this.renderView(e),this.buildAppendContent()),r.footer&&E(Uh,Object.assign({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:r.footer,titleId:""},u)))}))}componentDidMount(){let{props:e}=this;this.calendarInteractions=e.pluginHooks.calendarInteractions.map(i=>new i(e)),window.addEventListener("resize",this.handleWindowResize);let{propSetHandlers:r}=e.pluginHooks;for(let i in r)r[i](e[i],e)}componentDidUpdate(e){let{props:r}=this,{propSetHandlers:i}=r.pluginHooks;for(let s in i)r[s]!==e[s]&&i[s](r[s],r)}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.resizeRunner.clear();for(let e of this.calendarInteractions)e.destroy();this.props.emitter.trigger("_unmount")}buildAppendContent(){let{props:e}=this,r=e.pluginHooks.viewContainerAppends.map(i=>i(e));return E(Ye,{},...r)}renderView(e){let{pluginHooks:r}=e,{viewSpec:i}=e,s={dateProfile:e.dateProfile,businessHours:e.businessHours,eventStore:e.renderableEventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,isHeightAuto:e.isHeightAuto,forPrint:e.forPrint},a=this.buildViewPropTransformers(r.viewPropsTransformers);for(let o of a)Object.assign(s,o.transform(s,e));let l=i.component;return E(l,Object.assign({},s))}}function pA(t,e,r,i,s,a){let l=r.build(s,void 0,!1),o=r.buildPrev(e,i,!1),c=r.buildNext(e,i,!1);return{title:a,activeButton:t.type,navUnit:t.singleUnit,isTodayEnabled:l.isValid&&!dr(e.currentRange,s),isPrevEnabled:o.isValid,isNextEnabled:c.isValid}}function fA(t){return t.map(e=>new e)}class gA extends ts{constructor(e,r={}){super(),this.isRendering=!1,this.isRendered=!1,this.currentClassNames=[],this.customContentRenderId=0,this.handleAction=i=>{switch(i.type){case"SET_EVENT_DRAG":case"SET_EVENT_RESIZE":this.renderRunner.tryDrain()}},this.handleData=i=>{this.currentData=i,this.renderRunner.request(i.calendarOptions.rerenderDelay)},this.handleRenderRequest=()=>{if(this.isRendering){this.isRendered=!0;let{currentData:i}=this;jl(()=>{Ls(E(hI,{options:i.calendarOptions,theme:i.theme,emitter:i.emitter},(s,a,l,o)=>(this.setClassNames(s),this.setHeight(a),E(Bg.Provider,{value:this.customContentRenderId},E(hA,Object.assign({isHeightAuto:l,forPrint:o},i))))),this.el)})}else this.isRendered&&(this.isRendered=!1,Ls(null,this.el),this.setClassNames([]),this.setHeight(""))},lD(e),this.el=e,this.renderRunner=new Fs(this.handleRenderRequest),new eA({optionOverrides:r,calendarApi:this,onAction:this.handleAction,onData:this.handleData})}render(){let e=this.isRendering;e?this.customContentRenderId+=1:this.isRendering=!0,this.renderRunner.request(),e&&this.updateSize()}destroy(){this.isRendering&&(this.isRendering=!1,this.renderRunner.request())}updateSize(){jl(()=>{super.updateSize()})}batchRendering(e){this.renderRunner.pause("batchRendering"),e(),this.renderRunner.resume("batchRendering")}pauseRendering(){this.renderRunner.pause("pauseRendering")}resumeRendering(){this.renderRunner.resume("pauseRendering",!0)}resetOptions(e,r){this.currentDataManager.resetOptions(e,r)}setClassNames(e){if(!Mn(e,this.currentClassNames)){let{classList:r}=this.el;
135for(let i of this.currentClassNames)r.remove(i);for(let i of e)r.add(i);this.currentClassNames=e}}setHeight(e){Eg(this.el,"height",e)}}const yA=parseInt(String(qt.version).split(".")[0]),xA=yA<18;class qy extends k.Component{constructor(){super(...arguments),this.elRef=k.createRef(),this.isUpdating=!1,this.isUnmounting=!1,this.state={customRenderingMap:new Map},this.requestResize=()=>{this.isUnmounting||(this.cancelResize(),this.resizeId=requestAnimationFrame(()=>{this.doResize()}))}}render(){const e=[];for(const r of this.state.customRenderingMap.values())e.push(qt.createElement(vA,{key:r.id,customRendering:r}));return qt.createElement("div",{ref:this.elRef},e)}componentDidMount(){this.isUnmounting=!1;const e=new eT;this.handleCustomRendering=e.handle.bind(e),this.calendar=new gA(this.elRef.current,Object.assign(Object.assign({},this.props),{handleCustomRendering:this.handleCustomRendering})),this.calendar.render(),this.calendar.on("_beforeprint",()=>{ks.flushSync(()=>{})});let r;e.subscribe(i=>{const s=Date.now(),a=!r;(xA||a||this.isUpdating||this.isUnmounting||s-r<100?$y:ks.flushSync)(()=>{this.setState({customRenderingMap:i},()=>{r=s,a?this.doResize():this.requestResize()})})})}componentDidUpdate(){this.isUpdating=!0,this.calendar.resetOptions(Object.assign(Object.assign({},this.props),{handleCustomRendering:this.handleCustomRendering})),this.isUpdating=!1}componentWillUnmount(){this.isUnmounting=!0,this.cancelResize(),this.calendar.destroy()}doResize(){this.calendar.updateSize()}cancelResize(){this.resizeId!==void 0&&(cancelAnimationFrame(this.resizeId),this.resizeId=void 0)}getApi(){return this.calendar}}qy.act=$y;class vA extends k.PureComponent{render(){const{customRendering:e}=this.props,{generatorMeta:r}=e,i=typeof r=="function"?r(e.renderProps):r;return ks.createPortal(i,e.containerEl)}}function $y(t){t()}class bA extends Pn{constructor(){super(...arguments),this.headerElRef=ot()}renderSimpleLayout(e,r){let{props:i,context:s}=this,a=[],l=Ki(s.options);return e&&a.push({type:"header",key:"header",isSticky:l,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),a.push({type:"body",key:"body",liquid:!0,chunk:{content:r}}
vendor: 3,913 bytes, line 135
135),E(Ui,{elClasses:["fc-daygrid"],viewSpec:s.viewSpec},E(Wd,{liquid:!i.isHeightAuto&&!i.forPrint,collapsibleWidth:i.forPrint,cols:[],sections:a}))}renderHScrollLayout(e,r,i,s){let a=this.context.pluginHooks.scrollGridImpl;if(!a)throw new Error("No ScrollGrid implementation");let{props:l,context:o}=this,c=!l.forPrint&&Ki(o.options),d=!l.forPrint&&fo(o.options),u=[];return e&&u.push({type:"header",key:"header",isSticky:c,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),u.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:r}]}),d&&u.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:$i}]}),E(Ui,{elClasses:["fc-daygrid"],viewSpec:o.viewSpec},E(a,{liquid:!l.isHeightAuto&&!l.forPrint,forPrint:l.forPrint,collapsibleWidth:l.forPrint,colGroups:[{cols:[{span:i,minWidth:s}]}],sections:u}))}}function Va(t,e){let r=[];for(let i=0;i<e;i+=1)r[i]=[];for(let i of t)r[i.row].push(i);return r}function Ma(t,e){let r=[];for(let i=0;i<e;i+=1)r[i]=[];for(let i of t)r[i.firstCol].push(i);return r}function qh(t,e){let r=[];if(t){for(let i=0;i<e;i+=1)r[i]={affectedInstances:t.affectedInstances,isEvent:t.isEvent,segs:[]};for(let i of t.segs)r[i.row].segs.push(i)}else for(let i=0;i<e;i+=1)r[i]=null;return r}const Ky=bt({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function Gy(t){let{display:e}=t.eventRange.ui;return e==="list-item"||e==="auto"&&!t.eventRange.def.allDay&&t.firstCol===t.lastCol&&t.isStart&&t.isEnd}class Wy extends Ne{render(){let{props:e}=this;return E(go,Object.assign({},e,{elClasses:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:Ky,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))}}class Vy extends Ne{render(){let{props:e,context:r}=this,{options:i}=r,{seg:s}=e,a=i.eventTimeFormat||Ky,l=ty(s,a,r,!0,e.defaultDisplayEventEnd);return E(Vd,Object.assign({},e,{elTag:"a",elClasses:["fc-daygrid-event","fc-daygrid-dot-event"],elAttrs:ny(e.seg,r),defaultGenerator:_A,timeText:l,isResizing:!1,isDateSelecting:!1}))}}function _A(t){return E(Ye,null,E("div",{className:"fc-daygrid-event-dot",style:{borderColor:t.borderColor||t.backgroundColor}}),t.timeText&&E("div",{className:"fc-event-time"},t.timeText),E("div",{className:"fc-event-title"},t.event.title||E(Ye,null,"Â ")))}class jA extends Ne{constructor(){super(...arguments),this.compileSegs=Te(kA)}render(){let{props:e}=this,{allSegs:r,invisibleSegs:i}=this.compileSegs(e.singlePlacements);return E(eu,{elClasses:["fc-daygrid-more-link"],dateProfile:e.dateProfile,todayRange:e.todayRange,allDayDate:e.allDayDate,moreCnt:e.moreCnt,allSegs:r,hiddenSegs:i,alignmentElRef:e.alignmentElRef,alignGridTop:e.alignGridTop,extraDateSpan:e.extraDateSpan,popoverContent:()=>{let s=(e.eventDrag?e.eventDrag.affectedInstances:null)||(e.eventResize?e.eventResize.affectedInstances:null)||{};return E(Ye,null,r.map(a=>{let l=a.eventRange.instance.instanceId;return E("div",{className:"fc-daygrid-event-harness",key:l,style:{visibility:s[l]?"hidden":""}},Gy(a)?E(Vy,Object.assign({seg:a,isDragging:!1,isSelected:l===e.eventSelection,defaultDisplayEventEnd:!1},Zn(a,e.todayRange))):E(Wy,Object.assign({seg:a,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:l===e.eventSelection,defaultDisplayEventEnd:!1},Zn(a,e.todayRange))))}))}})}}function kA(t){let e=[],r=[];for(let i of t)e.push(i.seg),i.isVisible||r.push(i.seg);return{allSegs:e,invisibleSegs:r}}const SA=bt({week:"narrow"});class EA extends Pn{constructor(){super(...arguments),this.rootElRef=ot(),this.state={dayNumberId:ro()},this.handleRootEl=e=>{Nn(this.rootElRef,e),Nn(this.props.elRef,e)}}render(){let{context:e,props:r,state:i,rootElRef:s}=this,{options:a,dateEnv:l}=e,{date:o,dateProfile:c}=r;const d=r.showDayNumber&&CA(o,c.currentRange,l);return E(Qd,{elTag:"td",elRef:this.handleRootEl,elClasses:["fc-daygri
135d-day",...r.extraClassNames||[]],elAttrs:Object.assign(Object.assign(Object.assign({},r.extraDataAttrs),r.showDayNumber?{"aria-labelledby":i.dayNumberId}:{}),{role:"gridcell"}),defaultGenerator:wA,date:o,dateProfile:c,todayRange:r.todayRange,showDayNumber:r.showDayNumber,isMonthStart:d,extraRenderProps:r.extraRenderProps},(u,m)=>E("div",{ref:r.innerElRef,className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",style:{minHeight:r.minHeight}},r.showWeekNumber&&E(Ny,{elTag:"a",elClasses:["fc-daygrid-week-number"],elAttrs:qs(e,o,"week"),date:o,defaultFormat:SA}),!m.isDisabled&&(r.showDayNumber||Xd(a)||r.forceDayTop)?E("div",{className:"fc-daygrid-day-top"},E(u,{elTag:"a",elClasses:["fc-daygrid-day-number",d&&"fc-daygrid-month-start"],elAttrs:Object.assign(Object.assign({},qs(e,o)),{id:i.dayNumberId})})):r.showDayNumber?E("div",{className:"fc-daygrid-day-top",style:{visibility:"hidden"}},E("a",{className:"fc-daygrid-day-number"},"Â ")):void 0,E("div",{className:"fc-daygrid-day-events",ref:r.fgContentElRef},r.fgContent,E("div",{className:"fc-daygrid-day-bottom",style:{marginTop:r.moreMarginTop}},E(jA,{allDayDate:o,singlePlacements:r.singlePlacements,moreCnt:r.moreCnt,alignmentElRef:s,alignGridTop:!r.showDayNumber,extraDateSpan:r.extraDateSpan,dateProfile:r.dateProfile,eventSelection:r.eventSelection,eventDrag:r.eventDrag,eventResize:r.eventResize,todayRange:r.todayRange}))),E("div",{className:"fc-daygrid-day-bg"},r.bgContent)))}}function wA(t){return t.dayNumberText||E(Ye,null,"Â ")}function CA(t,e,r){const{start:i,end:s}=e,a=kr(s,-1),l=r.getYear(i),o=r.getMonth(i),c=r.getYear(a),d=r.getMonth(a);return!(l===c&&o===d)&&(t.valueOf()===i.valueOf()||r.getDay(t)===1&&t.valueOf()<s.valueOf())}function Qy(t){return t.eventRange.instance.instanceId+":"+t.firstCol}function Xy(t){return Qy(t)+":"+t.lastCol}function DA(t,e,r,i,s,a,l){let o=new TA(v=>{let S=t[v.index].eventRange.instance.instanceId+":"+v.span.start+":"+(v.span.end-1);return s[S]||1});o.allowReslicing=!0,o.strictOrder=i,e===!0||r===!0?(o.maxCoord=a,o.hiddenConsumes=!0):typeof e=="number"?o.maxStackCnt=e:typeof r=="number"&&(o.maxStackCnt=r,o.hiddenConsumes=!0);let c=[],d=[];for(let v=0;v<t.length;v+=1){let S=t[v],R=Xy(S);s[R]!=null?c.push({index:v,span:{start:S.firstCol,end:S.lastCol+1}}):d.push(S)}let u=o.addSegs(c),m=o.toRects(),{singleColPlacements:h,multiColPlacements:p,leftoverMargins:y}=RA(m,t,l),f=[],g=[];for(let v of d){p[v.firstCol].push({seg:v,isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let S=v.firstCol;S<=v.lastCol;S+=1)h[S].push({seg:Fi(v,S,S+1,l),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let v=0;v<l.length;v+=1)f.push(0);for(let v of u){let S=t[v.index],R=v.span;p[R.start].push({seg:Fi(S,R.start,R.end,l),isVisible:!1,isAbsolute:!0,absoluteTop:0,marginTop:0});for(let z=R.start;z<R.end;z+=1)f[z]+=1,h[z].push({seg:Fi(S,z,z+1,l),isVisible:!1,isAbsolute:!1,absoluteTop:0,marginTop:0})}for(let v=0;v<l.length;v+=1)g.push(y[v]);return{singleColPlacements:h,multiColPlacements:p,moreCnts:f,moreMarginTops:g}}function RA(t,e,r){let i=IA(t,r.length),s=[],a=[],l=[];for(let o=0;o<r.length;o+=1){let c=i[o],d=[],u=0,m=0;for(let p of c){let y=e[p.index];d.push({seg:Fi(y,o,o+1,r),isVisible:!0,isAbsolute:!1,absoluteTop:p.levelCoord,marginTop:p.levelCoord-u}),u=p.levelCoord+p.thickness}let h=[];u=0,m=0;for(let p of c){let y=e[p.index],f=p.span.end-p.span.start>1,g=p.span.start===o;m+=p.levelCoord-u,u=p.levelCoord+p.thickness,f?(m+=p.thickness,g&&h.push({seg:Fi(y,p.span.start,p.span.end,r),isVisible:!0,isAbsolute:!0,absoluteTop:p.levelCoord,marginTop:0})):g&&(h.push({seg:Fi(y,p.span.start,p.span.end,r),isVisible:!0,isAbsolute:!1,absoluteTop:p.levelCoord,marginTop:m}),m=0)}s.push(d),a.push(h),l.push(m)}return{singleColPlacements:s,multiColPlacements:a,leftoverMargins:l}}function IA(t,e){let r=[];for(let i=0;i<e;i+=1)r.push([]);for(let i of t)for(let s=i.span.start;s<i.span.end;s+=1)r[s].push(i);return r}function Fi(t,e,r,i){if(t.firstCol===e&&t.lastCol===r-1)return t;let s=t.eventRange,a=s.range,l=Ur(a,{start:i[e].date,end:Mt(i[r-1].date,1)});return Object.assign(Object.assign({}
vendor: 8,484 bytes, line 135
135,t),{firstCol:e,lastCol:r-1,eventRange:{def:s.def,ui:Object.assign(Object.assign({},s.ui),{durationEditable:!1}),instance:s.instance,range:l},isStart:t.isStart&&l.start.valueOf()===a.start.valueOf(),isEnd:t.isEnd&&l.end.valueOf()===a.end.valueOf()})}class TA extends Ud{constructor(){super(...arguments),this.hiddenConsumes=!1,this.forceHidden={}}addSegs(e){const r=super.addSegs(e),{entriesByLevel:i}=this,s=a=>!this.forceHidden[pi(a)];for(let a=0;a<i.length;a+=1)i[a]=i[a].filter(s);return r}handleInvalidInsertion(e,r,i){const{entriesByLevel:s,forceHidden:a}=this,{touchingEntry:l,touchingLevel:o,touchingLateral:c}=e;if(this.hiddenConsumes&&l){const d=pi(l);if(!a[d])if(this.allowReslicing){const u=Object.assign(Object.assign({},l),{span:qd(l.span,r.span)}),m=pi(u);a[m]=!0,s[o][c]=u,i.push(u),this.splitEntry(l,r,i)}else a[d]=!0,i.push(l)}super.handleInvalidInsertion(e,r,i)}}class Zy extends Pn{constructor(){super(...arguments),this.cellElRefs=new Wt,this.frameElRefs=new Wt,this.fgElRefs=new Wt,this.segHarnessRefs=new Wt,this.rootElRef=ot(),this.state={framePositions:null,maxContentHeight:null,segHeights:{}},this.handleResize=e=>{e&&this.updateSizing(!0)}}render(){let{props:e,state:r,context:i}=this,{options:s}=i,a=e.cells.length,l=Ma(e.businessHourSegs,a),o=Ma(e.bgEventSegs,a),c=Ma(this.getHighlightSegs(),a),d=Ma(this.getMirrorSegs(),a),{singleColPlacements:u,multiColPlacements:m,moreCnts:h,moreMarginTops:p}=DA(Od(e.fgEventSegs,s.eventOrder),e.dayMaxEvents,e.dayMaxEventRows,s.eventOrderStrict,r.segHeights,r.maxContentHeight,e.cells),y=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{};return E("tr",{ref:this.rootElRef,role:"row"},e.renderIntro&&e.renderIntro(),e.cells.map((f,g)=>{let v=this.renderFgSegs(g,e.forPrint?u[g]:m[g],e.todayRange,y),S=this.renderFgSegs(g,AA(d[g],m),e.todayRange,{},!!e.eventDrag,!!e.eventResize,!1);return E(EA,{key:f.key,elRef:this.cellElRefs.createRef(f.key),innerElRef:this.frameElRefs.createRef(f.key),dateProfile:e.dateProfile,date:f.date,showDayNumber:e.showDayNumbers,showWeekNumber:e.showWeekNumbers&&g===0,forceDayTop:e.showWeekNumbers,todayRange:e.todayRange,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,extraRenderProps:f.extraRenderProps,extraDataAttrs:f.extraDataAttrs,extraClassNames:f.extraClassNames,extraDateSpan:f.extraDateSpan,moreCnt:h[g],moreMarginTop:p[g],singlePlacements:u[g],fgContentElRef:this.fgElRefs.createRef(f.key),fgContent:E(Ye,null,E(Ye,null,v),E(Ye,null,S)),bgContent:E(Ye,null,this.renderFillSegs(c[g],"highlight"),this.renderFillSegs(l[g],"non-business"),this.renderFillSegs(o[g],"bg-event")),minHeight:e.cellMinHeight})}))}componentDidMount(){this.updateSizing(!0),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,r){let i=this.props;this.updateSizing(!Qt(e,i))}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}getHighlightSegs(){let{props:e}=this;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs}getMirrorSegs(){let{props:e}=this;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]}renderFgSegs(e,r,i,s,a,l,o){let{context:c}=this,{eventSelection:d}=this.props,{framePositions:u}=this.state,m=this.props.cells.length===1,h=a||l||o,p=[];if(u)for(let y of r){let{seg:f}=y,{instanceId:g}=f.eventRange.instance,v=y.isVisible&&!s[g],S=y.isAbsolute,R="",z="";S&&(c.isRtl?(z=0,R=u.lefts[f.lastCol]-u.lefts[f.firstCol]):(R=0,z=u.rights[f.firstCol]-u.rights[f.lastCol])),p.push(E("div",{className:"fc-daygrid-event-harness"+(S?" fc-daygrid-event-harness-abs":""),key:Qy(f),ref:h?null:this.segHarnessRefs.createRef(Xy(f)),style:{visibility:v?"":"hidden",marginTop:S?"":y.marginTop,top:S?y.absoluteTop:"",left:R,right:z}},Gy(f)?E(Vy,Object.assign({seg:f,isDragging:a,isSelected:g===d,defaultDisplayEventEnd:m},Zn(f,i))):E(Wy,Object.assign({seg:f,isDragging:a,isResizing:l,isDateSelecting:o,isSelected:g===d,defaultDisplayEventEnd:m},Zn(f,i)))))}return p}renderFillSegs(e,r){let{isRtl:i}=this.context,{todayRange:s}=this.props,{framePositions:a}=this.state,l=[];if(a)for(let o of e){let c=i?{right:0,left:a.lefts[o.lastCol]-a.lefts[o.firstCol]}:{left:0,right:a.rights[o.firstCol]-a.rights[o.lastCol]};l.push(E("div",{key:Ld(o.eventRange),className:"fc-daygrid-bg-harness",style:c},r==="bg-event"?E(Zd,Object.assign({seg:o},Zn(o,s))):Jd(r)))}return E(Ye,{},...l)}updateSizing(e){let{props:r,state:i,frameElRefs:s}=this;if(!r.forPrint&&r.clientWidth!==null){if(e){let c=r.cells.map(d=>s.currentMap[d.key]);if(c.length){let d=this.rootElRef.current,u=new Er(d,c,!0,!1);(!i.framePositions||!i.framePositions.similarTo(u))&&this.setState({framePositions:new Er(d,c,!0,!1)})}}const a=this.state.segHeights,l=this.querySegHeights(),o=r.dayMaxEvents===!0||r.dayMaxEventRows===!0;this.safeSetState({segHeights:Object.assign(Object.assign({},a),l),maxContentHeight:o?this.computeMaxContentHeight():null})}}querySegHeights(){let e=this.segHarnessRefs.currentMap,r={};for(let i in e){let s=Math.round(e[i].getBoundingClientRect().height);r[i]=Math.max(r[i]||0,s)}return r}computeMaxContentHeight(){let e=this.props.cells[0].key,r=this.cellElRefs.currentMap[e],i=this.fgElRefs.currentMap[e];return r.getBoundingClientRect().bottom-i.getBoundingClientRect().top}getCellEls(){let e=this.cellElRefs.currentMap;return this.props.cells.map(r=>e[r.key])}}Zy.addStateEquality({segHeights:Qt});function AA(t,e){if(!t.length)return[];let r=MA(e);return t.map(i=>({seg:i,isVisible:!0,isAbsolute:!0,absoluteTop:r[i.eventRange.instance.instanceId],marginTop:0}))}function MA(t){let e={};for(let r of t)for(let i of r)e[i.seg.eventRange.instance.instanceId]=i.absoluteTop;return e}class NA extends Pn{constructor(){super(...arguments),this.splitBusinessHourSegs=Te(Va),this.splitBgEventSegs=Te(PA),this.splitFgEventSegs=Te(Va),this.splitDateSelectionSegs=Te(Va),this.splitEventDrag=Te(qh),this.splitEventResize=Te(qh),this.rowRefs=new Wt}render(){let{props:e,context:r}=this,i=e.cells.length,s=this.splitBusinessHourSegs(e.businessHourSegs,i),a=this.splitBgEventSegs(e.bgEventSegs,i),l=this.splitFgEventSegs(e.fgEventSegs,i),o=this.splitDateSelectionSegs(e.dateSelectionSegs,i),c=this.splitEventDrag(e.eventDrag,i),d=this.splitEventResize(e.eventResize,i),u=i>=7&&e.clientWidth?e.clientWidth/r.options.aspectRatio/6:null;return E(Rr,{unit:"day"},(m,h)=>E(Ye,null,e.cells.map((p,y)=>E(Zy,{ref:this.rowRefs.createRef(y),key:p.length?p[0].date.toISOString():y,showDayNumbers:i>1,showWeekNumbers:e.showWeekNumbers,todayRange:h,dateProfile:e.dateProfile,cells:p,renderIntro:e.renderRowIntro,businessHourSegs:s[y],eventSelection:e.eventSelection,bgEventSegs:a[y],fgEventSegs:l[y],dateSelectionSegs:o[y],eventDrag:c[y],eventResize:d[y],dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,clientWidth:e.clientWidth,clientHeight:e.clientHeight,cellMinHeight:u,forPrint:e.forPrint}))))}componentDidMount(){this.registerInteractiveComponent()}componentDidUpdate(){this.registerInteractiveComponent()}registerInteractiveComponent(){if(!this.rootEl){const e=this.rowRefs.currentMap[0].getCellEls()[0],r=e?e.closest(".fc-daygrid-body"):null;r&&(this.rootEl=r,this.context.registerInteractiveComponent(this,{el:r,isHitComboAllowed:this.props.isHitComboAllowed}))}}componentWillUnmount(){this.rootEl&&(this.context.unregisterInteractiveComponent(this),this.rootEl=null)}prepareHits(){this.rowPositions=new Er(this.rootEl,this.rowRefs.collect().map(e=>e.getCellEls()[0]),!1,!0),this.colPositions=new Er(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)}queryHit(e,r){let{colPositions:i,rowPositions:s}=this,a=i.leftToIndex(e),l=s.topToIndex(r);if(l!=null&&a!=null){let o=this.props.cells[l][a];return{dateProfile:this.props.dateProfile,dateSpan:Object.assign({range:this.getCellRange(l,a),allDay:!0},o.extraDateSpan),dayEl:this.getCellEl(l,a),rect:{left:i.lefts[a],right:i.rights[a],top:s.tops[l],bottom:s.bottoms[l]},layer:0}}return null}getCellEl(e,r){return this.rowRefs.currentMap[e].getCellEls()[r]}getCellRange(e,r){let i=this.props.cells[e][r].date,s=Mt(i,1);return{start:i,end:s}}}function PA(t,e){return Va(t.filter(zA),e)}function zA(t){return t.eventRange.def.allDay}class OA extends Pn{constructor(){super(...arguments),this.elRef=ot(),this.needsScrollReset=!1}render(){let{props:e}=this,{dayMaxEventRows:r,dayMaxEvents:i,expandRows:s}=e,a=i===!0||r===!0;a&&!s&&(a=!1,r=null,i=null);
135let l=["fc-daygrid-body",a?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",s?"":"fc-daygrid-body-natural"];return E("div",{ref:this.elRef,className:l.join(" "),style:{width:e.clientWidth,minWidth:e.tableMinWidth}},E("table",{role:"presentation",className:"fc-scrollgrid-sync-table",style:{width:e.clientWidth,minWidth:e.tableMinWidth,height:s?e.clientHeight:""}},e.colGroupNode,E("tbody",{role:"presentation"},E(NA,{dateProfile:e.dateProfile,cells:e.cells,renderRowIntro:e.renderRowIntro,showWeekNumbers:e.showWeekNumbers,clientWidth:e.clientWidth,clientHeight:e.clientHeight,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,dayMaxEvents:i,dayMaxEventRows:r,forPrint:e.forPrint,isHitComboAllowed:e.isHitComboAllowed}))))}componentDidMount(){this.requestScrollReset()}componentDidUpdate(e){e.dateProfile!==this.props.dateProfile?this.requestScrollReset():this.flushScrollReset()}requestScrollReset(){this.needsScrollReset=!0,this.flushScrollReset()}flushScrollReset(){if(this.needsScrollReset&&this.props.clientWidth){const e=LA(this.elRef.current,this.props.dateProfile);if(e){const r=e.closest(".fc-daygrid-body"),i=r.closest(".fc-scroller"),s=e.getBoundingClientRect().top-r.getBoundingClientRect().top;i.scrollTop=s?s+1:0}this.needsScrollReset=!1}}}function LA(t,e){let r;return e.currentRangeUnit.match(/year|month/)&&(r=t.querySelector(`[data-date="${UD(e.currentDate)}-01"]`)),r||(r=t.querySelector(`[data-date="${Ed(e.currentDate)}"]`)),r}class FA extends $d{constructor(){super(...arguments),this.forceDayIfListItem=!0}sliceRange(e,r){return r.sliceRange(e)}}class Jy extends Pn{constructor(){super(...arguments),this.slicer=new FA,this.tableRef=ot()}render(){let{props:e,context:r}=this;return E(OA,Object.assign({ref:this.tableRef},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,r,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))}}class BA extends bA{constructor(){super(...arguments),this.buildDayTableModel=Te(YA),this.headerRef=ot(),this.tableRef=ot()}render(){let{options:e,dateProfileGenerator:r}=this.context,{props:i}=this,s=this.buildDayTableModel(i.dateProfile,r),a=e.dayHeaders&&E(xy,{ref:this.headerRef,dateProfile:i.dateProfile,dates:s.headerDates,datesRepDistinctDays:s.rowCnt===1}),l=o=>E(Jy,{ref:this.tableRef,dateProfile:i.dateProfile,dayTableModel:s,businessHours:i.businessHours,dateSelection:i.dateSelection,eventStore:i.eventStore,eventUiBases:i.eventUiBases,eventSelection:i.eventSelection,eventDrag:i.eventDrag,eventResize:i.eventResize,nextDayThreshold:e.nextDayThreshold,colGroupNode:o.tableColGroupNode,tableMinWidth:o.tableMinWidth,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.weekNumbers,expandRows:!i.isHeightAuto,headerAlignElRef:this.headerElRef,clientWidth:o.clientWidth,clientHeight:o.clientHeight,forPrint:i.forPrint});return e.dayMinWidth?this.renderHScrollLayout(a,l,s.colCnt,e.dayMinWidth):this.renderSimpleLayout(a,l)}}function YA(t,e){let r=new vy(t.renderRange,e);return new by(r,/year|month|week/.test(t.currentRangeUnit))}class HA extends qg{buildRenderRange(e,r,i){let s=super.buildRenderRange(e,r,i),{props:a}=this;return UA({currentRange:s,snapToWeek:/^(year|month)$/.test(r),fixedWeekCount:a.fixedWeekCount,dateEnv:a.dateEnv})}}function UA(t){let{dateEnv:e,currentRange:r}=t,{start:i,end:s}=r,a;if(t.snapToWeek&&(i=e.startOfWeek(i),a=e.startOfWeek(s),a.valueOf()!==s.valueOf()&&(s=vh(a,1))),t.fixedWeekCount){let l=e.startOfWeek(e.startOfMonth(Mt(r.end,-1))),o=Math.ceil(AD(l,s));s=vh(s,6-o)}return{start:i,end:s}}var qA
vendor: 3,524 bytes, line 135
135=':root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:"";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:"";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}';
vendor: 24,724 bytes, line 135
135ta(qA);var $A=zn({name:"@fullcalendar/daygrid",initialView:"dayGridMonth",views:{dayGrid:{component:BA,dateProfileGeneratorClass:HA},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},fixedWeekCount:!0},dayGridYear:{type:"dayGrid",duration:{years:1}}}});class KA extends oy{getKeyInfo(){return{allDay:{},timed:{}}}getKeysForDateSpan(e){return e.allDay?["allDay"]:["timed"]}getKeysForEventDef(e){return e.allDay?JR(e)?["timed","allDay"]:["allDay"]:["timed"]}}const GA=bt({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"});function ex(t){let e=["fc-timegrid-slot","fc-timegrid-slot-label",t.isLabeled?"fc-scrollgrid-shrink":"fc-timegrid-slot-minor"];return E(Dr.Consumer,null,r=>{if(!t.isLabeled)return E("td",{className:e.join(" "),"data-time":t.isoTimeStr});let{dateEnv:i,options:s,viewApi:a}=r,l=s.slotLabelFormat==null?GA:Array.isArray(s.slotLabelFormat)?bt(s.slotLabelFormat[0]):bt(s.slotLabelFormat),o={level:0,time:t.time,date:i.toDate(t.date),view:a,text:i.format(t.date,l)};return E(Dt,{elTag:"td",elClasses:e,elAttrs:{"data-time":t.isoTimeStr},renderProps:o,generatorName:"slotLabelContent",customGenerator:s.slotLabelContent,defaultGenerator:WA,classNameGenerator:s.slotLabelClassNames,didMount:s.slotLabelDidMount,willUnmount:s.slotLabelWillUnmount},c=>E("div",{className:"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame"},E(c,{elTag:"div",elClasses:["fc-timegrid-slot-label-cushion","fc-scrollgrid-shrink-cushion"]})))})}function WA(t){return t.text}class VA extends Ne{render(){return this.props.slatMetas.map(e=>E("tr",{key:e.key},E(ex,Object.assign({},e))))}}const QA=bt({week:"short"}),XA=5;class ZA extends Pn{constructor(){super(...arguments),this.allDaySplitter=new KA,this.headerElRef=ot(),this.rootElRef=ot(),this.scrollerElRef=ot(),this.state={slatCoords:null},this.handleScrollTopRequest=e=>{let r=this.scrollerElRef.current;r&&(r.scrollTop=e)},this.renderHeadAxis=(e,r="")=>{let{options:i}=this.context,{dateProfile:s}=this.props,a=s.renderRange,o=ji(a.start,a.end)===1?qs(this.context,a.start,"week"):{};return i.weekNumbers&&e==="day"?E(Ny,{elTag:"th",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},date:a.start,defaultFormat:QA},c=>E("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame","fc-timegrid-axis-frame-liquid"].join(" "),style:{height:r}},E(c,{elTag:"a",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"],elAttrs:o}))):E("th",{"aria-hidden":!0,className:"fc-timegrid-axis"},E("div",{className:"fc-timegrid-axis-frame",style:{height:r}}))},this.renderTableRowAxis=e=>{let{options:r,viewApi:i}=this.context,s={text:r.allDayText,view:i};return E(Dt,{elTag:"td",elClasses:["fc-timegrid-axis","fc-scrollgrid-shrink"],elAttrs:{"aria-hidden":!0},renderProps:s,generatorName:"allDayContent",customGenerator:r.allDayContent,defaultGenerator:JA,classNameGenerator:r.allDayClassNames,didMount:r.allDayDidMount,willUnmount:r.allDayWillUnmount},a=>E("div",{className:["fc-timegrid-axis-frame","fc-scrollgrid-shrink-frame",e==null?" fc-timegrid-axis-frame-liquid":""].join(" "),style:{height:e}},E(a,{elTag:"span",elClasses:["fc-timegrid-axis-cushion","fc-scrollgrid-shrink-cushion","fc-scrollgrid-sync-inner"]})))},this.handleSlatCoords=e=>{this.setState({slatCoords:e})}}renderSimpleLayout(e,r,i){let{context:s,props:a}=this,l=[],o=Ki(s.options);return e&&l.push({type:"header",key:"header",isSticky:o,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),r&&(l.push({type:"body",key:"all-day",chunk:{content:r}}),l.push({type:"body",key:"all-day-divider",outerContent:E("tr",{role:"presentation",className:"fc-scrollgrid-section"},E("td",{className:"fc-timegrid-divider "+s.theme.getClass("tableCellShaded")}))})),l.push({type:"body",key:"body",liquid:!0,expandRows:!!s.options.expandRows,chunk:{scrollerElRef:this.scrollerElRef,content:i}}),E(Ui,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:s.viewSpec},E(Wd,{liquid:!a.isHeightAuto&&!a.forPrint,collapsibleWidth:a.forPrint,cols:[{width:"shrink"}],sections:l}))}renderHScrollLayout(e,r,i,s,a,l,o){let c=this.context.pluginHooks.scrollGridImpl;if(!c)throw new Error("No ScrollGrid implementation");let{context:d,props:u}=this,m=!u.forPrint&&Ki(d.options),h=!u.forPrint&&fo(d.options),p=[];e&&p.push({type:"header",key:"header",isSticky:m,syncRowHeights:!0,chunks:[{key:"axis",rowContent:f=>E("tr",{role:"presentation"},this.renderHeadAxis("day",f.rowSyncHeights[0]))},{key:"cols",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),r&&(p.push({type:"body",key:"all-day",syncRowHeights:!0,chunks:[{key:"axis",rowContent:f=>E("tr",{role:"presentation"},this.renderTableRowAxis(f.rowSyncHeights[0]))},{key:"cols",content:r}]}),p.push({key:"all-day-divider",type:"body",outerContent:E("tr",{role:"presentation",className:"fc-scrollgrid-section"},E("td",{colSpan:2,className:"fc-timegrid-divider "+d.theme.getClass("tableCellShaded")}))}));let y=d.options.nowIndicator;return p.push({type:"body",key:"body",liquid:!0,expandRows:!!d.options.expandRows,chunks:[{key:"axis",content:f=>E("div",{className:"fc-timegrid-axis-chunk"},E("table",{"aria-hidden":!0,style:{height:f.expandRows?f.clientHeight:""}},f.tableColGroupNode,E("tbody",null,E(VA,{slatMetas:l}))),E("div",{className:"fc-timegrid-now-indicator-container"},E(Rr,{unit:y?"minute":"day"},g=>{let v=y&&o&&o.safeComputeTop(g);return typeof v=="number"?E(ns,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:v},isAxis:!0,date:g}):null})))},{key:"cols",scrollerElRef:this.scrollerElRef,content:i}]}),h&&p.push({key:"footer",type:"footer",isSticky:!0,chunks:[{key:"axis",content:$i},{key:"cols",content:$i}]}),E(Ui,{elRef:this.rootElRef,elClasses:["fc-timegrid"],viewSpec:d.viewSpec},E(c,{liquid:!u.isHeightAuto&&!u.forPrint,forPrint:u.forPrint,collapsibleWidth:!1,colGroups:[{width:"shrink",cols:[{width:"shrink"}]},{cols:[{span:s,minWidth:a}]}],sections:p}))}getAllDayMaxEventProps(){let{dayMaxEvents:e,dayMaxEventRows:r}=this.context.options;return(e===!0||r===!0)&&(e=void 0,r=XA),{dayMaxEvents:e,dayMaxEventRows:r}}}function JA(t){return t.text}class eM{constructor(e,r,i){this.positions=e,this.dateProfile=r,this.slotDuration=i}safeComputeTop(e){let{dateProfile:r}=this;if(dr(r.currentRange,e)){let i=ct(e),s=e.valueOf()-i.valueOf();if(s>=nn(r.slotMinTime)&&s<nn(r.slotMaxTime))return this.computeTimeTop(Ge(s))}return null}computeDateTop(e,r){return r||(r=ct(e)),this.computeTimeTop(Ge(e.valueOf()-r.valueOf()))}computeTimeTop(e){let{positions:r,dateProfile:i}=this,s=r.els.length,a=(e.milliseconds-nn(i.slotMinTime))/nn(this.slotDuration),l,o;return a=Math.max(0,a),a=Math.min(s,a),l=Math.floor(a),l=Math.min(l,s-1),o=a-l,r.tops[l]+r.getHeight(l)*o}}class tM extends Ne{render(){let{props:e,context:r}=this,{options:i}=r,{slatElRefs:s}=e;return E("tbody",null,e.slatMetas.map((a,l)=>{let o={time:a.time,date:r.dateEnv.toDate(a.date),view:r.viewApi};return E("tr",{key:a.key,ref:s.createRef(a.key)},e.axis&&E(ex,Object.assign({},a)),E(Dt,{elTag:"td",elClasses:["fc-timegrid-slot","fc-timegrid-slot-lane",!a.isLabeled&&"fc-timegrid-slot-minor"],elAttrs:{"data-time":a.isoTimeStr},renderProps:o,generatorName:"slotLaneContent",customGenerator:i.slotLaneContent,classNameGenerator:i.slotLaneClassNames,didMount:i.slotLaneDidMount,willUnmount:i.slotLaneWillUnmount}))}))}}class nM extends Ne{constructor(){super(...arguments),this.rootElRef=ot(),this.slatElRefs=new Wt}render(){let{props:e,context:r}=this;return E("div",{ref:this.rootElRef,className:"fc-timegrid-slots"},E("table",{"aria-hidden":!0,className:r.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth,height:e.minHeight}},e.tableColGroupNode,E(tM,{slatElRefs:this.slatElRefs,axis:e.axis,slatMetas:e.slatMetas})))}componentDidMount(){this.updateSizing()}componentDidUpdate(){this.updateSizing()}componentWillUnmount(){this.props.onCoords&&this.props.onCoords(null)}updateSizing(){let{context:e,props:r}=this;r.onCoords&&r.clientWidth!==null&&this.rootElRef.current.offsetHeight&&r.onCoords(new eM(new Er(this.rootElRef.current,rM(this.slatElRefs.currentMap,r.slatMetas),!1,!0),this.props.dateProfile,e.options.slotDuration))}}function rM(t,e){return e.map(r=>t[r.key])}function fs(t,e){let r=[],i;for(i=0;i<e;i+=1)r.push([]);if(t)for(i=0;i<t.length;i+=1)r[t[i].col].push(t[i]);return r}function $h(t,e){let r=[];if(t){for(let i=0;i<e;i+=1)r[i]={affectedInstances:t.affectedInstances,isEvent:t.isEvent,segs:[]};for(let i of t.segs)r[i.col].segs.push(i)}else for(let i=0;i<e;i+=1)r[i]=null;return r}class iM extends Ne{render(){let{props:e}=this;return E(eu,{elClasses:["fc-timegrid-more-link"],elStyle:{top:e.top,bottom:e.bottom},allDayDate:null,moreCnt:e.hiddenSegs.length,allSegs:e.hiddenSegs,hiddenSegs:e.hiddenSegs,extraDateSpan:e.extraDateSpan,dateProfile:e.dateProfile,todayRange:e.todayRange,popoverContent:()=>nx(e.hiddenSegs,e),defaultGenerator:sM,forceTimed:!0},r=>E(r,{elTag:"div",elClasses:["fc-timegrid-more-link-inner","fc-sticky"]}))}}function sM(t){return t.shortText}function aM(t,e,r){let i=new Ud;e!=null&&(i.strictOrder=e),r!=null&&(i.maxStackCnt=r);let s=i.addSegs(t),a=fy(s),l=lM(i);return l=uM(l,1),{segRects:mM(l),hiddenGroups:a}}function lM(t){const{entriesByLevel:e}=t,r=nu((i,s)=>i+":"+s,(i,s)=>{let a=dM(t,i,s),l=Kh(a,r),o=e[i][s];return[Object.assign(Object.assign({},o),{nextLevelNodes:l[0]}),o.thickness+l[1]]});return Kh(e.length?{level:0,lateralStart:0,lateralEnd:e[0].length}:null,r)[0]}function Kh(t,e){if(!t)return[[],0];let{level:r,lateralStart:i,lateralEnd:s}=t,a=i,l=[];for(;a<s;)l.push(e(r,a)),a+=1;return l.sort(oM),[l.map(cM),l[0][1]]}function oM(t,e){return e[1]-t[1]}function cM(t){return t[0]}function dM(t,e,r){let{levelCoords:i,entriesByLevel:s}=t,a=s[e][r],l=i[e]+a.thickness,o=i.length,c=e;for(;c<o&&i[c]<l;c+=1);for(;c<o;c+=1){let d=s[c],u,m=Ac(d,a.span.start,Tc),h=m[0]+m[1],p=h;for(;(u=d[p])&&u.span.start<a.span.end;)p+=1;if(h<p)return{level:c,lateralStart:h,lateralEnd:p}}return null}function uM(t,e){const r=nu((i,s,a)=>pi(i),(i,s,a)=>{let{nextLevelNodes:l,thickness:o}=i,c=o+a,d=o/c,u,m=[];if(!l.length)u=e;else for(let p of l)if(u===void 0){let y=r(p,s,c);u=y[0],m.push(y[1])}else{let y=r(p,u,0);m.push(y[1])}let h=(u-s)*d;return[u-h,Object.assign(Object.assign({},i),{thickness:h,nextLevelNodes:m})]});return t.map(i=>r(i,0,0)[1])}function mM(t){let e=[];const r=nu((s,a,l)=>pi(s),(s,a,l)=>{let o=Object.assign(Object.assign({},s),{levelCoord:a,stackDepth:l,stackForward:0});return e.push(o),o.stackForward=i(s.nextLevelNodes,a+s.thickness,l+1)+1});function i(s,a,l){let o=0;for(let c of s)o=Math.max(r(c,a,l),o);return o}return i(t,0,0),e}function nu(t,e){const r={};return(...i)=>{let s=t(...i);return s in r?r[s]:r[s]=e(...i)}}function Gh(t,e,r=null,i=0){let s=[];if(r)for(let a=0;a<t.length;a+=1){let l=t[a],o=r.computeDateTop(l.start,e),c=Math.max(o+(i||0),r.computeDateTop(l.end,e));s.push({start:Math.round(o),end:Math.round(c)})}return s}function hM(t,e,r,i){let s=[],a=[];for(let d=0;d<t.length;d+=1){let u=e[d];u?s.push({index:d,thickness:1,span:u}):a.push(t[d])}let{segRects:l,hiddenGroups:o}=aM(s,r,i),c=[];for(let d of l)c.push({seg:t[d.index],rect:d});for(let d of a)c.push({seg:d,rect:null});return{segPlacements:c,hiddenGroups:o}}const pM=bt({hour:"numeric",minute:"2-digit",meridiem:!1});class tx extends Ne{render(){return E(go,Object.assign({},this.props,{elClasses:["fc-timegrid-event","fc-v-event",this.props.isShort&&"fc-timegrid-event-short"],defaultTimeFormat:pM}))}}class fM extends Ne{constructor(){super(...arguments),this.sortEventSegs=Te(Od)}render(){let{props:e,context:r}=this,{options:i}=r,s=i.selectMirror,a=e.eventDrag&&e.eventDrag.segs||e.eventResize&&e.eventResize.segs||s&&e.dateSelectionSegs||[],l=e.eventDrag&&e.eventDrag.affectedInstances||e.eventResize&&e.eventResize.affectedInstances||{},o=this.sortEventSegs(e.fgEventSegs,i.eventOrder);return E(Qd,{elTag:"td",elRef:e.elRef,elClasses:["fc-timegrid-col",...e.extraClassNames||[]],elAttrs:Object.assign({role:"gridcell"},e.extraDataAttrs),date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,extraRenderProps:e.extraRenderProps},c=>E("div",{className:"fc-timegrid-col-frame"},E("div",{className:"fc-timegrid-col-bg"},this.renderFillSegs(e.businessHourSegs,"non-business"),this.renderFillSegs(e.bgEventSegs,"bg-event"),this.renderFillSegs(e.dateSelectionSegs,"highlight")),E("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(o,l,!1,!1,!1)),E("div",{className:"fc-timegrid-col-events"},this.renderFgSegs(a,{},!!e.eventDrag,!!e.eventResize,!!s,"mirror")),E("div",{className:"fc-timegrid-now-indicator-container"},this.renderNowIndicator(e.nowIndicatorSegs)),Xd(i)&&E(c,{elTag:"div",elClasses:["fc-timegrid-col-misc"]})))}renderFgSegs(e,r,i,s,a,l){let{props:o}=this;return o.forPrint?nx(e,o):this.renderPositionedFgSegs(e,r,i,s,a,l)}renderPositionedFgSegs(e,r,i,s,a,l){let{eventMaxStack:o,eventShortHeight:c,eventOrderStrict:d,eventMinHeight:u}=this.context.options,{date:m,slatCoords:h,eventSelection:p,todayRange:y,nowDate:f}=this.props,g=i||s||a,v=Gh(e,m,h,u),{segPlacements:S,hiddenGroups:R}=hM(e,v,d,o);return E(Ye,null,this.renderHiddenGroups(R,e),S.map(z=>{let{seg:P,rect:U}=z,A=P.eventRange.instance.instanceId,w=g||!!(!r[A]&&U),Y=Wo(U&&U.span),D=!g&&U?this.computeSegHStyle(U):{left:0,right:0},_=!!U&&U.stackForward>0,M=!!U&&U.span.end-U.span.start<c;return E("div",{className:"fc-timegrid-event-harness"+(_?" fc-timegrid-event-harness-inset":""),key:l||A,style:Object.assign(Object.assign({visibility:w?"":"hidden"},Y),D)},E(tx,Object.assign({seg:P,isDragging:i,isResizing:s,isDateSelecting:a,isSelected:A===p,isShort:M},Zn(P,y,f))))}))}renderHiddenGroups(e,r){let{extraDateSpan:i,dateProfile:s,todayRange:a,nowDate:l,eventSelection:o,eventDrag:c,eventResize:d}=this.props;return E(Ye,null,e.map(u=>{let m=Wo(u.span),h=gM(u.entries,r);return E(iM,{key:lo(yo(h)),hiddenSegs:h,top:m.top,bottom:m.bottom,extraDateSpan:i,dateProfile:s,todayRange:a,nowDate:l,eventSelection:o,eventDrag:c,eventResize:d})}))}renderFillSegs(e,r){let{props:i,context:s}=this,l=Gh(e,i.date,i.slatCoords,s.options.eventMinHeight).map((o,c)=>{let d=e[c];return E("div",{key:Ld(d.eventRange),className:"fc-timegrid-bg-harness",style:Wo(o)},r==="bg-event"?E(Zd,Object.assign({seg:d},Zn(d,i.todayRange,i.nowDate))):Jd(r))});return E(Ye,null,l)}renderNowIndicator(e){let{slatCoords:r,date:i}=this.props;return r?e.map((s,a)=>E(ns,{key:a,elClasses:["fc-timegrid-now-indicator-line"],elStyle:{top:r.computeDateTop(s.start,i)},isAxis:!1,date:i})):null}computeSegHStyle(e){let{isRtl:r,options:i}=this.context,s=i.slotEventOverlap,a=e.levelCoord,l=e.levelCoord+e.thickness,o,c;s&&(l=Math.min(1,a+(l-a)*2)),r?(o=1-l,c=a):(o=a,c=1-l);let d={zIndex:e.stackDepth+1,left:o*100+"%",right:c*100+"%"};return s&&!e.stackForward&&(d[r?"marginLeft":"marginRight"]=10*2),d}}function nx(t,{todayRange:e,nowDate:r,eventSelection:i,eventDrag:s,eventResize:a}){let l=(s?s.affectedInstances:null)||(a?a.affectedInstances:null)||{};return E(Ye,null,t.map(o=>{let c=o.eventRange.instance.instanceId;return E("div",{key:c,style:{visibility:l[c]?"hidden":""}},E(tx,Object.assign({seg:o,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:c===i,isShort:!1},Zn(o,e,r))))}))}function Wo(t){return t?{top:t.start,bottom:-t.end}:{top:"",bottom:""}}function gM(t,e){return t.map(r=>e[r.index])}class yM extends Ne{constructor(){super(...arguments),this.splitFgEventSegs=Te(fs),this.splitBgEventSegs=Te(fs),this.splitBusinessHourSegs=Te(fs),this.splitNowIndicatorSegs=Te(fs),this.splitDateSelectionSegs=Te(fs),this.splitEventDrag=Te($h),this.splitEventResize=Te($h),this.rootElRef=ot(),this.cellElRefs=new Wt}render(){let{props:e,context:r}=this,i=r.options.nowIndicator&&e.slatCoords&&e.slatCoords.safeComputeTop(e.nowDate),s=e.cells.length,a=this.splitFgEventSegs(e.fgEventSegs,s),l=this.splitBgEventSegs(e.bgEventSegs,s),o=this.splitBusinessHourSegs(e.businessHourSegs,s),c=this.splitNowIndicatorSegs(e.nowIndicatorSegs,s),d=this.splitDateSelectionSegs(e.dateSelectionSegs,s),u=this.splitEventDrag(e.eventDrag,s),m=this.splitEventResize(e.eventResize,s);return E("div",{className:"fc-timegrid-cols",ref:this.rootElRef},E("table",{role:"presentation",style:{minWidth:e.tableMinWidth,width:e.clientWidth}},e.tableColGroupNode,E("tbody",{role:"presentation"},E("tr",{role:"row"},e.axis&&E("td",{"aria-hidden":!0,className:"fc-timegrid-col fc-timegrid-axis"},E("div",{className:"fc-timegrid-col-frame"},E("div",{className:"fc-timegrid-now-indicator-container"},typeof i=="number"&&E(ns,{elClasses:["fc-timegrid-now-indicator-arrow"],elStyle:{top:i},isAxis:!0,date:e.nowDate})))),e.cells.map((h,p)=>E(fM,{key:h.key,elRef:this.cellElRefs.createRef(h.key),dateProfile:e.dateProfile,date:h.date,nowDate:e.nowDate,todayRange:e.todayRange,extraRenderProps:h.extraRenderProps,extraDataAttrs:h.extraDataAttrs,extraClassNames:h.extraClassNames,extraDateSpan:h.extraDateSpan,fgEventSegs:a[p],bgEventSegs:l[p],businessHourSegs:o[p],nowIndicatorSegs:c[p],dateSelectionSegs:d[p],eventDrag:u[p],eventResize:m[p],slatCoords:e.slatCoords,eventSelection:e.eventSelection,forPrint:e.forPrint}))))))}componentDidMount(){this.updateCoords()}componentDidUpdate(){this.updateCoords()}updateCoords(){let{props:e}=this;e.onColCoords&&e.clientWidth!==null&&e.onColCoords(new Er(this.rootElRef.current,xM(this.cellElRefs.currentMap,e.cells),!0,!1))}}function xM(t,e){return e.map(r=>t[r.key])}class vM extends Pn{constructor(){super(...arguments),this.processSlotOptions=Te(bM),this.state={slatCoords:null},this.handleRootEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e,isHitComboAllowed:this.props.isHitComboAllowed}):this.context.unregisterInteractiveComponent(this)},this.handleScrollRequest=e=>{let{onScrollTopRequest:r}=this.props,{slatCoords:i}=this.state;if(r&&i){if(e.time){let s=i.computeTimeTop(e.time);s=Math.ceil(s),s&&(s+=1),r(s)}return!0}return!1},this.handleColCoords=e=>{this.colCoords=e},this.handleSlatCoords=e=>{this.setState({slatCoords:e}),this.props.onSlatCoords&&this.props.onSlatCoords(e)}}render(){let{props:e,state:r}=this;return E("div",{className:"fc-timegrid-body",ref:this.handleRootEl,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},E(nM,{axis:e.axis,dateProfile:e.dateProfile,slatMetas:e.slatMetas,clientWidth:e.clientWidth,minHeight:e.expandRows?e.clientHeight:"",tableMinWidth:e.tableMinWidth,tableColGroupNode:e.axis?e.tableColGroupNode:null,onCoords:this.handleSlatCoords}),E(yM,{cells:e.cells,axis:e.axis,dateProfile:e.dateProfile,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,todayRange:e.todayRange,nowDate:e.nowDate,nowIndicatorSegs:e.nowIndicatorSegs,clientWidth:e.clientWidth,tableMinWidth:e.tableMinWidth,tableColGroupNode:e.tableColGroupNode,slatCoords:r.slatCoords,onColCoords:this.handleColCoords,forPrint:e.forPrint}))}componentDidMount(){this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}componentDidUpdate(e){this.scrollResponder.update(e.dateProfile!==this.props.dateProfile)}componentWillUnmount(){this.scrollResponder.detach()}queryHit(e,r){let{dateEnv:i,options:s}=this.context,{colCoords:a}=this,{dateProfile:l}=this.props,{slatCoords:o}=this.state,{snapDuration:c,snapsPerSlot:d}=this.processSlotOptions(this.props.slotDuration,s.snapDuration),u=a.leftToIndex(e),m=o.positions.topToIndex(r);if(u!=null&&m!=null){let h=this.props.cells[u],p=o.positions.tops[m],y=o.positions.getHeight(m),f=(r-p)/y,g=Math.floor(f*d),v=m*d+g,S=this.props.cells[u].date,R=Cc(l.slotMinTime,Mg(c,v)),z=i.add(S,R),P=i.add(z,c);return{dateProfile:l,dateSpan:Object.assign({range:{start:z,end:P},allDay:!1},h.extraDateSpan),dayEl:a.els[u],rect:{left:a.lefts[u],right:a.rights[u],top:p,bottom:p+y},layer:0}}return null}}function bM(t,e){let r=e||t,i=Yr(t,r);return i===null&&(r=t,i=1),{snapDuration:r,snapsPerSlot:i}}class _M extends $d{sliceRange(e,r){let i=[];for(let s=0;s<r.length;s+=1){let a=Ur(e,r[s]);a&&i.push({start:a.start,end:a.end,isStart:a.start.valueOf()===e.start.valueOf(),isEnd:a.end.valueOf()===e.end.valueOf(),col:s})}return i}}class jM extends Pn{constructor(){super(...arguments),this.buildDayRanges=Te(kM),this.slicer=new _M,this.timeColsRef=ot()}render(){let{props:e,context:r}=this,{dateProfile:i,dayTableModel:s}=e,{nowIndicator:a,nextDayThreshold:l}=r.options,o=this.buildDayRanges(s,i,r.dateEnv);return E(Rr,{unit:a?"minute":"day"},(c,d)=>E(vM,Object.assign({ref:this.timeColsRef},this.slicer.sliceProps(e,i,null,r,o),{forPrint:e.forPrint,axis:e.axis,dateProfile:i,slatMetas:e.slatMetas,slotDuration:e.slotDuration,cells:s.cells[0],tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,clientWidth:e.clientWidth,clientHeight:e.clientHeight,expandRows:e.expandRows,nowDate:c,nowIndicatorSegs:a&&this.slicer.sliceNowDate(c,i,l,r,o),todayRange:d,onScrollTopRequest:e.onScrollTopRequest,onSlatCoords:e.onSlatCoords})))}}function kM(t,e,r){let i=[];for(let s of t.headerDates)i.push({start:r.add(s,e.slotMinTime),end:r.add(s,e.slotMaxTime)});return i}const Wh=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}];function SM(t,e,r,i,s){let a=new Date(0),l=t,o=Ge(0),c=r||EM(i),d=[];for(;nn(l)<nn(e);){let u=s.add(a,l),m=Yr(o,c)!==null;d.push({date:u,time:l,key:u.toISOString(),isoTimeStr:qD(u),isLabeled:m}),l=Cc(l,i),o=Cc(o,i)}return d}function EM(t){let e,r,i;for(e=Wh.length-1;e>=0;e-=1)if(r=Ge(Wh[e]),i=Yr(r,t),i!==null&&i>1)return r;return t}class wM extends ZA{constructor(){super(...arguments),this.buildTimeColsModel=Te(CM),this.buildSlatMetas=Te(SM)}render(){let{options:e,dateEnv:r,dateProfileGenerator:i}=this.context,{props:s}=this,{dateProfile:a}=s,l=this.buildTimeColsModel(a,i),o=this.allDaySplitter.splitProps(s),c=this.buildSlatMetas(a.slotMinTime,a.slotMaxTime,e.slotLabelInterval,e.slotDuration,r),{dayMinWidth:d}=e,u=!d,m=d,h=e.dayHeaders&&E(xy,{dates:l.headerDates,dateProfile:a,datesRepDistinctDays:!0,renderIntro:u?this.renderHeadAxis:null}),p=e.allDaySlot!==!1&&(f=>E(Jy,Object.assign({},o.allDay,{dateProfile:a,dayTableModel:l,nextDayThreshold:e.nextDayThreshold,tableMinWidth:f.tableMinWidth,colGroupNode:f.tableColGroupNode,renderRowIntro:u?this.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:this.headerElRef,clientWidth:f.clientWidth,clientHeight:f.clientHeight,forPrint:s.forPrint},this.getAllDayMaxEventProps()))),y=f=>E(jM,Object.assign({},o.timed,{dayTableModel:l,dateProfile:a,axis:u,slotDuration:e.slotDuration,slatMetas:c,forPrint:s.forPrint,tableColGroupNode:f.tableColGroupNode,tableMinWidth:f.tableMinWidth,clientWidth:f.clientWidth,clientHeight:f.clientHeight,onSlatCoords:this.handleSlatCoords,expandRows:f.expandRows,onScrollTopRequest:this.handleScrollTopRequest}));return m?this.renderHScrollLayout(h,p,y,l.colCnt,d,c,this.state.slatCoords):this.renderSimpleLayout(h,p,y)}}function CM(t,e){let r=new vy(t.renderRange,e);return new by(r,!1)}var DM='.fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}
135.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:"\\00a0"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:"\\00a0-\\00a0"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-arrow,.fc .fc-timegrid-now-indicator-line{pointer-events:none}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}';ta(DM);const RM={allDaySlot:Boolean};var IM=zn({name:"@fullcalendar/timegrid",initialView:"timeGridWeek",optionRefiners:RM,views:{timeGrid:{component:wM,usesMinMaxTime:!0,allDaySlot:!0,slotDuration:"00:30:00",slotEventOverlap:!0},timeGridDay:{type:"timeGrid",duration:{days:1}},timeGridWeek:{type:"timeGrid",duration:{weeks:1}}}});er.touchMouseIgnoreWait=500;let Pc=0,Dl=0,zc=!1;class rx{constructor(e){this.subjectEl=null,this.selector="",this.handleSelector="",this.shouldIgnoreMove=!1,this.shouldWatchScroll=!0,this.isDragging=!1,this.isTouchDragging=!1,this.wasTouchScroll=!1,this.handleMouseDown=r=>{if(!this.shouldIgnoreMouse()&&TM(r)&&this.tryStart(r)){let i=this.createEventFromMouse(r,!0);this.emitter.trigger("pointerdown",i),this.initScrollWatch(i),this.shouldIgnoreMove||document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)}},this.handleMouseMove=r=>{let i=this.createEventFromMouse(r);this.recordCoords(i),this.emitter.trigger("pointermove",i)},this.handleMouseUp=r=>{document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),this.emitter.trigger("pointerup",this.createEventFromMouse(r)),this.cleanup()},this.handleTouchStart=r=>{if(this.tryStart(r)){this.isTouchDragging=!0;let i=this.createEventFromTouch(r,!0);this.emitter.trigger("pointerdown",i),this.initScrollWatch(i);let s=r.target;this.shouldIgnoreMove||s.addEventListener("touchmove",this.handleTouchMove),s.addEventListener("touchend",this.handleTouchEnd),s.addEventListener("touchcancel",this.handleTouchEnd),window.addEventListener("scroll",this.handleTouchScroll,!0)}},this.handleTouchMove=r=>{let i=this.createEventFromTouch(r);this.recordCoords(i),this.emitter.trigger("pointermove",i)},this.handleTouchEnd=r=>{if(this.isDragging){let i=r.target;i.removeEventListener("touchmove",this.handleTouchMove),i.removeEventListener("touchend",this.handleTouchEnd),i.removeEventListener("touchcancel",this.handleTouchEnd),window.removeEventListener("scroll",this.handleTouchScroll,!0),this.emitter.trigger("pointerup",this.createEventFromTouch(r)),this.cleanup(),this.isTouchDragging=!1,AM()}},this.handleTouchScroll=()=>{this.wasTouchScroll=!0},this.handleScroll=r=>{if(!this.shouldIgnoreMove){let i=window.scrollX-this.prevScrollX+this.prevPageX,s=window.scrollY-this.prevScrollY+this.prevPageY;this.emitter.trigger("pointermove",{origEvent:r,isTouch:this.isTouchDragging,subjectEl:this.subjectEl,pageX:i,pageY:s,deltaX:i-this.origPageX,deltaY:s-this.origPageY})}},this.containerEl=e,this.emitter=new ra,e.addEventListener("mousedown",this.handleMouseDown),e.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),MM()}destroy(){this.containerEl.removeEventListener("mousedown",this.handleMouseDown),this.containerEl.removeEventListener("touchstart",this.handleTouchStart,{passive:!0}),NM()}
vendor: 26,194 bytes, line 135
135tryStart(e){let r=this.querySubjectEl(e),i=e.target;return r&&(!this.handleSelector||Ut(i,this.handleSelector))?(this.subjectEl=r,this.isDragging=!0,this.wasTouchScroll=!1,!0):!1}cleanup(){zc=!1,this.isDragging=!1,this.subjectEl=null,this.destroyScrollWatch()}querySubjectEl(e){return this.selector?Ut(e.target,this.selector):this.containerEl}shouldIgnoreMouse(){return Pc||this.isTouchDragging}cancelTouchScroll(){this.isDragging&&(zc=!0)}initScrollWatch(e){this.shouldWatchScroll&&(this.recordCoords(e),window.addEventListener("scroll",this.handleScroll,!0))}recordCoords(e){this.shouldWatchScroll&&(this.prevPageX=e.pageX,this.prevPageY=e.pageY,this.prevScrollX=window.scrollX,this.prevScrollY=window.scrollY)}destroyScrollWatch(){this.shouldWatchScroll&&window.removeEventListener("scroll",this.handleScroll,!0)}createEventFromMouse(e,r){let i=0,s=0;return r?(this.origPageX=e.pageX,this.origPageY=e.pageY):(i=e.pageX-this.origPageX,s=e.pageY-this.origPageY),{origEvent:e,isTouch:!1,subjectEl:this.subjectEl,pageX:e.pageX,pageY:e.pageY,deltaX:i,deltaY:s}}createEventFromTouch(e,r){let i=e.touches,s,a,l=0,o=0;return i&&i.length?(s=i[0].pageX,a=i[0].pageY):(s=e.pageX,a=e.pageY),r?(this.origPageX=s,this.origPageY=a):(l=s-this.origPageX,o=a-this.origPageY),{origEvent:e,isTouch:!0,subjectEl:this.subjectEl,pageX:s,pageY:a,deltaX:l,deltaY:o}}}function TM(t){return t.button===0&&!t.ctrlKey}function AM(){Pc+=1,setTimeout(()=>{Pc-=1},er.touchMouseIgnoreWait)}function MM(){Dl+=1,Dl===1&&window.addEventListener("touchmove",ix,{passive:!1})}function NM(){Dl-=1,Dl||window.removeEventListener("touchmove",ix,{passive:!1})}function ix(t){zc&&t.preventDefault()}class PM{constructor(){this.isVisible=!1,this.sourceEl=null,this.mirrorEl=null,this.sourceElRect=null,this.parentNode=document.body,this.zIndex=9999,this.revertDuration=0}start(e,r,i){this.sourceEl=e,this.sourceElRect=this.sourceEl.getBoundingClientRect(),this.origScreenX=r-window.scrollX,this.origScreenY=i-window.scrollY,this.deltaX=0,this.deltaY=0,this.updateElPosition()}handleMove(e,r){this.deltaX=e-window.scrollX-this.origScreenX,this.deltaY=r-window.scrollY-this.origScreenY,this.updateElPosition()}setIsVisible(e){e?this.isVisible||(this.mirrorEl&&(this.mirrorEl.style.display=""),this.isVisible=e,this.updateElPosition()):this.isVisible&&(this.mirrorEl&&(this.mirrorEl.style.display="none"),this.isVisible=e)}stop(e,r){let i=()=>{this.cleanup(),r()};e&&this.mirrorEl&&this.isVisible&&this.revertDuration&&(this.deltaX||this.deltaY)?this.doRevertAnimation(i,this.revertDuration):setTimeout(i,0)}doRevertAnimation(e,r){let i=this.mirrorEl,s=this.sourceEl.getBoundingClientRect();i.style.transition="top "+r+"ms,left "+r+"ms",Oi(i,{left:s.left,top:s.top}),gD(i,()=>{i.style.transition="",e()})}cleanup(){this.mirrorEl&&(no(this.mirrorEl),this.mirrorEl=null),this.sourceEl=null}updateElPosition(){this.sourceEl&&this.isVisible&&Oi(this.getMirrorEl(),{left:this.sourceElRect.left+this.deltaX,top:this.sourceElRect.top+this.deltaY})}getMirrorEl(){let e=this.sourceElRect,r=this.mirrorEl;return r||(r=this.mirrorEl=this.sourceEl.cloneNode(!0),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.pointerEvents="none",r.classList.add("fc-event-dragging"),Oi(r,{position:"fixed",zIndex:this.zIndex,visibility:"",boxSizing:"border-box",width:e.right-e.left,height:e.bottom-e.top,right:"auto",bottom:"auto",margin:0}),this.parentNode.appendChild(r)),r}}class sx extends Hd{constructor(e,r){super(),this.handleScroll=()=>{this.scrollTop=this.scrollController.getScrollTop(),this.scrollLeft=this.scrollController.getScrollLeft(),this.handleScrollChange()},this.scrollController=e,this.doesListening=r,this.scrollTop=this.origScrollTop=e.getScrollTop(),this.scrollLeft=this.origScrollLeft=e.getScrollLeft(),this.scrollWidth=e.getScrollWidth(),this.scrollHeight=e.getScrollHeight(),this.clientWidth=e.getClientWidth(),this.clientHeight=e.getClientHeight(),this.clientRect=this.computeClientRect(),this.doesListening&&this.getEventTarget().addEventListener("scroll",this.handleScroll)}destroy(){this.doesListening&&this.getEventTarget().removeEventListener("scroll",this.handleScroll)}getScrollTop(){return this.scrollTop}getScrollLeft(){return this.scrollLeft}setScrollTop(e){this.scrollController.setScrollTop(e),this.doesListening||(this.scrollTop=Math.max(Math.min(e,this.getMaxScrollTop()),0),this.handleScrollChange())}setScrollLeft(e){this.scrollController.setScrollLeft(e),this.doesListening||(this.scrollLeft=Math.max(Math.min(e,this.getMaxScrollLeft()),0),this.handleScrollChange())}getClientWidth(){return this.clientWidth}getClientHeight(){return this.clientHeight}getScrollWidth(){return this.scrollWidth}getScrollHeight(){return this.scrollHeight}handleScrollChange(){}}class ax extends sx{constructor(e,r){super(new wI(e),r)}getEventTarget(){return this.scrollController.el}computeClientRect(){return hy(this.scrollController.el)}}class zM extends sx{constructor(e){super(new CI,e)}getEventTarget(){return window}computeClientRect(){return{left:this.scrollLeft,right:this.scrollLeft+this.clientWidth,top:this.scrollTop,bottom:this.scrollTop+this.clientHeight}}handleScrollChange(){this.clientRect=this.computeClientRect()}}const Vh=typeof performance=="function"?performance.now:Date.now;class OM{constructor(){this.isEnabled=!0,this.scrollQuery=[window,".fc-scroller"],this.edgeThreshold=50,this.maxVelocity=300,this.pointerScreenX=null,this.pointerScreenY=null,this.isAnimating=!1,this.scrollCaches=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.animate=()=>{if(this.isAnimating){let e=this.computeBestEdge(this.pointerScreenX+window.scrollX,this.pointerScreenY+window.scrollY);if(e){let r=Vh();this.handleSide(e,(r-this.msSinceRequest)/1e3),this.requestAnimation(r)}else this.isAnimating=!1}}}start(e,r,i){this.isEnabled&&(this.scrollCaches=this.buildCaches(i),this.pointerScreenX=null,this.pointerScreenY=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.handleMove(e,r))}handleMove(e,r){if(this.isEnabled){let i=e-window.scrollX,s=r-window.scrollY,a=this.pointerScreenY===null?0:s-this.pointerScreenY,l=this.pointerScreenX===null?0:i-this.pointerScreenX;a<0?this.everMovedUp=!0:a>0&&(this.everMovedDown=!0),l<0?this.everMovedLeft=!0:l>0&&(this.everMovedRight=!0),this.pointerScreenX=i,this.pointerScreenY=s,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(Vh()))}}stop(){if(this.isEnabled){this.isAnimating=!1;for(let e of this.scrollCaches)e.destroy();this.scrollCaches=null}}requestAnimation(e){this.msSinceRequest=e,requestAnimationFrame(this.animate)}handleSide(e,r){let{scrollCache:i}=e,{edgeThreshold:s}=this,a=s-e.distance,l=a*a/(s*s)*this.maxVelocity*r,o=1;switch(e.name){case"left":o=-1;case"right":i.setScrollLeft(i.getScrollLeft()+l*o);break;case"top":o=-1;case"bottom":i.setScrollTop(i.getScrollTop()+l*o);break}}computeBestEdge(e,r){let{edgeThreshold:i}=this,s=null,a=this.scrollCaches||[];for(let l of a){let o=l.clientRect,c=e-o.left,d=o.right-e,u=r-o.top,m=o.bottom-r;c>=0&&d>=0&&u>=0&&m>=0&&(u<=i&&this.everMovedUp&&l.canScrollUp()&&(!s||s.distance>u)&&(s={scrollCache:l,name:"top",distance:u}),m<=i&&this.everMovedDown&&l.canScrollDown()&&(!s||s.distance>m)&&(s={scrollCache:l,name:"bottom",distance:m}),c<=i&&this.everMovedLeft&&l.canScrollLeft()&&(!s||s.distance>c)&&(s={scrollCache:l,name:"left",distance:c}),d<=i&&this.everMovedRight&&l.canScrollRight()&&(!s||s.distance>d)&&(s={scrollCache:l,name:"right",distance:d}))}return s}buildCaches(e){return this.queryScrollEls(e).map(r=>r===window?new zM(!1):new ax(r,!1))}queryScrollEls(e){let r=[];for(let i of this.scrollQuery)typeof i=="object"?r.push(i):r.push(...Array.prototype.slice.call(e.getRootNode().querySelectorAll(i)));return r}}class rs extends RI{constructor(e,r){super(e),this.containerEl=e,this.delay=null,this.minDistance=0,this.touchScrollAllowed=!0,this.mirrorNeedsRevert=!1,this.isInteracting=!1,this.isDragging=!1,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,this.delayTimeoutId=null,this.onPointerDown=s=>{this.isDragging||(this.isInteracting=!0,this.isDelayEnded=!1,this.isDistanceSurpassed=!1,yD(document.body),vD(document.body),s.isTouch||s.origEvent.preventDefault(),this.emitter.trigger("pointerdown",s),this.isInteracting&&!this.pointer.shouldIgnoreMove&&(this.mirror.setIsVisible(!1),this.mirror.start(s.subjectEl,s.pageX,s.pageY),this.startDelay(s),this.minDistance||this.handleDistanceSurpassed(s)))},this.onPointerMove=s=>{if(this.isInteracting){if(this.emitter.trigger("pointermove",s),!this.isDistanceSurpassed){let a=this.minDistance,l,{deltaX:o,deltaY:c}=s;l=o*o+c*c,l>=a*a&&this.handleDistanceSurpassed(s)}this.isDragging&&(s.origEvent.type!=="scroll"&&(this.mirror.handleMove(s.pageX,s.pageY),this.autoScroller.handleMove(s.pageX,s.pageY)),this.emitter.trigger("dragmove",s))}},this.onPointerUp=s=>{this.isInteracting&&(this.isInteracting=!1,xD(document.body),bD(document.body),this.emitter.trigger("pointerup",s),this.isDragging&&(this.autoScroller.stop(),this.tryStopDrag(s)),this.delayTimeoutId&&(clearTimeout(this.delayTimeoutId),this.delayTimeoutId=null))};let i=this.pointer=new rx(e);i.emitter.on("pointerdown",this.onPointerDown),i.emitter.on("pointermove",this.onPointerMove),i.emitter.on("pointerup",this.onPointerUp),r&&(i.selector=r),this.mirror=new PM,this.autoScroller=new OM}destroy(){this.pointer.destroy(),this.onPointerUp({})}startDelay(e){typeof this.delay=="number"?this.delayTimeoutId=setTimeout(()=>{this.delayTimeoutId=null,this.handleDelayEnd(e)},this.delay):this.handleDelayEnd(e)}handleDelayEnd(e){this.isDelayEnded=!0,this.tryStartDrag(e)}handleDistanceSurpassed(e){this.isDistanceSurpassed=!0,this.tryStartDrag(e)}tryStartDrag(e){this.isDelayEnded&&this.isDistanceSurpassed&&(!this.pointer.wasTouchScroll||this.touchScrollAllowed)&&(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(e.pageX,e.pageY,this.containerEl),this.emitter.trigger("dragstart",e),this.touchScrollAllowed===!1&&this.pointer.cancelTouchScroll())}tryStopDrag(e){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,e))}stopDrag(e){this.isDragging=!1,this.emitter.trigger("dragend",e)}setIgnoreMove(e){this.pointer.shouldIgnoreMove=e}setMirrorIsVisible(e){this.mirror.setIsVisible(e)}setMirrorNeedsRevert(e){this.mirrorNeedsRevert=e}setAutoScrollEnabled(e){this.autoScroller.isEnabled=e}}class LM{constructor(e){this.el=e,this.origRect=Yd(e),this.scrollCaches=py(e).map(r=>new ax(r,!0))}destroy(){for(let e of this.scrollCaches)e.destroy()}computeLeft(){let e=this.origRect.left;for(let r of this.scrollCaches)e+=r.origScrollLeft-r.getScrollLeft();return e}computeTop(){let e=this.origRect.top;for(let r of this.scrollCaches)e+=r.origScrollTop-r.getScrollTop();return e}isWithinClipping(e,r){let i={left:e,top:r};for(let s of this.scrollCaches)if(!FM(s.getEventTarget())&&!gI(i,s.clientRect))return!1;return!0}}function FM(t){let e=t.tagName;return e==="HTML"||e==="BODY"}class sa{constructor(e,r){this.useSubjectCenter=!1,this.requireInitial=!0,this.disablePointCheck=!1,this.initialHit=null,this.movingHit=null,this.finalHit=null,this.handlePointerDown=i=>{let{dragging:s}=this;this.initialHit=null,this.movingHit=null,this.finalHit=null,this.prepareHits(),this.processFirstCoord(i),this.initialHit||!this.requireInitial?(s.setIgnoreMove(!1),this.emitter.trigger("pointerdown",i)):s.setIgnoreMove(!0)},this.handleDragStart=i=>{this.emitter.trigger("dragstart",i),this.handleMove(i,!0)},this.handleDragMove=i=>{this.emitter.trigger("dragmove",i),this.handleMove(i)},this.handlePointerUp=i=>{this.releaseHits(),this.emitter.trigger("pointerup",i)},this.handleDragEnd=i=>{this.movingHit&&this.emitter.trigger("hitupdate",null,!0,i),this.finalHit=this.movingHit,this.movingHit=null,this.emitter.trigger("dragend",i)},this.droppableStore=r,e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("dragstart",this.handleDragStart),e.emitter.on("dragmove",this.handleDragMove),e.emitter.on("pointerup",this.handlePointerUp),e.emitter.on("dragend",this.handleDragEnd),this.dragging=e,this.emitter=new ra}processFirstCoord(e){let r={left:e.pageX,top:e.pageY},i=r,s=e.subjectEl,a;s instanceof HTMLElement&&(a=Yd(s),i=yI(i,a));let l=this.initialHit=this.queryHitForOffset(i.left,i.top);if(l){if(this.useSubjectCenter&&a){let o=ly(a,l.rect);o&&(i=xI(o))}this.coordAdjust=vI(i,r)}else this.coordAdjust={left:0,top:0}}handleMove(e,r){let i=this.queryHitForOffset(e.pageX+this.coordAdjust.left,e.pageY+this.coordAdjust.top);(r||!xo(this.movingHit,i))&&(this.movingHit=i,this.emitter.trigger("hitupdate",i,!1,e))}prepareHits(){this.offsetTrackers=dn(this.droppableStore,e=>(e.component.prepareHits(),new LM(e.el)))}releaseHits(){let{offsetTrackers:e}=this;for(let r in e)e[r].destroy();this.offsetTrackers={}}queryHitForOffset(e,r){let{droppableStore:i,offsetTrackers:s}=this,a=null;for(let l in i){let o=i[l].component,c=s[l];if(c&&c.isWithinClipping(e,r)){let d=c.computeLeft(),u=c.computeTop(),m=e-d,h=r-u,{origRect:p}=c,y=p.right-p.left,f=p.bottom-p.top;if(m>=0&&m<y&&h>=0&&h<f){let g=o.queryHit(m,h,y,f);g&&co(g.dateProfile.activeRange,g.dateSpan.range)&&(this.disablePointCheck||c.el.contains(c.el.getRootNode().elementFromPoint(m+d-window.scrollX,h+u-window.scrollY)))&&(!a||g.layer>a.layer)&&(g.componentId=l,g.context=o.context,g.rect.left+=d,g.rect.right+=d,g.rect.top+=u,g.rect.bottom+=u,a=g)}}}return a}}function xo(t,e){return!t&&!e?!0:!!t!=!!e?!1:oI(t.dateSpan,e.dateSpan)}function ru(t,e){let r={};for(let i of e.pluginHooks.datePointTransforms)Object.assign(r,i(t,e));return Object.assign(r,BM(t,e.dateEnv)),r}function BM(t,e){return{date:e.toDate(t.range.start),dateStr:e.formatIso(t.range.start,{omitTime:t.allDay}),allDay:t.allDay}}class YM extends es{constructor(e){super(e),this.handlePointerDown=i=>{let{dragging:s}=this,a=i.origEvent.target;s.setIgnoreMove(!this.component.isValidDateDownEl(a))},this.handleDragEnd=i=>{let{component:s}=this,{pointer:a}=this.dragging;if(!a.wasTouchScroll){let{initialHit:l,finalHit:o}=this.hitDragging;if(l&&o&&xo(l,o)){let{context:c}=s,d=Object.assign(Object.assign({},ru(l.dateSpan,c)),{dayEl:l.dayEl,jsEvent:i.origEvent,view:c.viewApi||c.calendarApi.view});c.emitter.trigger("dateClick",d)}}},this.dragging=new rs(e.el),this.dragging.autoScroller.isEnabled=!1;let r=this.hitDragging=new sa(this.dragging,Bd(e));r.emitter.on("pointerdown",this.handlePointerDown),r.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}}class HM extends es{constructor(e){super(e),this.dragSelection=null,this.handlePointerDown=l=>{let{component:o,dragging:c}=this,{options:d}=o.context,u=d.selectable&&o.isValidDateDownEl(l.origEvent.target);c.setIgnoreMove(!u),c.delay=l.isTouch?UM(o):null},this.handleDragStart=l=>{this.component.context.calendarApi.unselect(l)},this.handleHitUpdate=(l,o)=>{let{context:c}=this.component,d=null,u=!1;if(l){let m=this.hitDragging.initialHit;l.componentId===m.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(m,l)||(d=qM(m,l,c.pluginHooks.dateSelectionTransformers)),(!d||!zI(d,l.dateProfile,c))&&(u=!0,d=null)}d?c.dispatch({type:"SELECT_DATES",selection:d}):o||c.dispatch({type:"UNSELECT_DATES"}),u?so():ao(),o||(this.dragSelection=d)},this.handlePointerUp=l=>{this.dragSelection&&(Zg(this.dragSelection,l,this.component.context),this.dragSelection=null)};let{component:r}=e,{options:i}=r.context,s=this.dragging=new rs(e.el);s.touchScrollAllowed=!1,s.minDistance=i.selectMinDistance||0,s.autoScroller.isEnabled=i.dragScroll;let a=this.hitDragging=new sa(this.dragging,Bd(e));a.emitter.on("pointerdown",this.handlePointerDown),a.emitter.on("dragstart",this.handleDragStart),a.emitter.on("hitupdate",this.handleHitUpdate),a.emitter.on("pointerup",this.handlePointerUp)}destroy(){this.dragging.destroy()}}function UM(t){let{options:e}=t.context,r=e.selectLongPressDelay;return r==null&&(r=e.longPressDelay),r}function qM(t,e,r){let i=t.dateSpan,s=e.dateSpan,a=[i.range.start,i.range.end,s.range.start,s.range.end];a.sort(jD);let l={};for(let o of r){let c=o(t,e);if(c===!1)return null;c&&Object.assign(l,c)}return l.range={start:a[0],end:a[3]},l.allDay=i.allDay,l}class aa extends es{constructor(e){super(e),this.subjectEl=null,this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=l=>{let o=l.origEvent.target,{component:c,dragging:d}=this,{mirror:u}=d,{options:m}=c.context,h=c.context;this.subjectEl=l.subjectEl;let p=this.subjectSeg=qi(l.subjectEl),f=(this.eventRange=p.eventRange).instance.instanceId;this.relevantEvents=Md(h.getCurrentData().eventStore,f),d.minDistance=l.isTouch?0:m.eventDragMinDistance,d.delay=l.isTouch&&f!==c.props.eventSelection?KM(c):null,m.fixedMirrorParent?u.parentNode=m.fixedMirrorParent:u.parentNode=Ut(o,".fc"),u.revertDuration=m.dragRevertDuration;let g=c.isValidSegDownEl(o)&&!Ut(o,".fc-event-resizer");d.setIgnoreMove(!g),this.isDragging=g&&l.subjectEl.classList.contains("fc-event-draggable")},this.handleDragStart=l=>{let o=this.component.context,c=this.eventRange,d=c.instance.instanceId;l.isTouch?d!==this.component.props.eventSelection&&o.dispatch({type:"SELECT_EVENT",eventInstanceId:d}):o.dispatch({type:"UNSELECT_EVENT"}),this.isDragging&&(o.calendarApi.unselect(l),o.emitter.trigger("eventDragStart",{el:this.subjectEl,event:new pt(o,c.def,c.instance),jsEvent:l.origEvent,view:o.viewApi}))},this.handleHitUpdate=(l,o)=>{if(!this.isDragging)return;let c=this.relevantEvents,d=this.hitDragging.initialHit,u=this.component.context,m=null,h=null,p=null,y=!1,f={affectedEvents:c,mutatedEvents:sn(),isEvent:!0};if(l){m=l.context;let g=m.options;u===m||g.editable&&g.droppable?(h=$M(d,l,this.eventRange.instance.range.start,m.getCurrentData().pluginHooks.eventDragMutationMassagers),h&&(p=zd(c,m.getCurrentData().eventUiBases,h,m),f.mutatedEvents=p,Kd(f,l.dateProfile,m)||(y=!0,h=null,p=null,f.mutatedEvents=sn()))):m=null}this.displayDrag(m,f),y?so():ao(),o||(u===m&&xo(d,l)&&(h=null),this.dragging.setMirrorNeedsRevert(!h),this.dragging.setMirrorIsVisible(!l||!this.subjectEl.getRootNode().querySelector(".fc-event-mirror")),this.receivingContext=m,this.validMutation=h,this.mutatedRelevantEvents=p)},this.handlePointerUp=()=>{this.isDragging||this.cleanup()},this.handleDragEnd=l=>{if(this.isDragging){let o=this.component.context,c=o.viewApi,{receivingContext:d,validMutation:u}=this,m=this.eventRange.def,h=this.eventRange.instance,p=new pt(o,m,h),y=this.relevantEvents,f=this.mutatedRelevantEvents,{finalHit:g}=this.hitDragging;if(this.clearDrag(),o.emitter.trigger("eventDragStop",{el:this.subjectEl,event:p,jsEvent:l.origEvent,view:c}),u){if(d===o){let v=new pt(o,f.defs[m.defId],h?f.instances[h.instanceId]:null);o.dispatch({type:"MERGE_EVENTS",eventStore:f});let S={oldEvent:p,event:v,relatedEvents:hi(f,o,h),revert(){o.dispatch({type:"MERGE_EVENTS",eventStore:y})}},R={};for(let z of o.getCurrentData().pluginHooks.eventDropTransformers)Object.assign(R,z(u,o));o.emitter.trigger("eventDrop",Object.assign(Object.assign(Object.assign({},S),R),{el:l.subjectEl,delta:u.datesDelta,jsEvent:l.origEvent,view:c})),o.emitter.trigger("eventChange",S)}else if(d){let v={event:p,relatedEvents:hi(y,o,h),revert(){o.dispatch({type:"MERGE_EVENTS",eventStore:y})}};o.emitter.trigger("eventLeave",Object.assign(Object.assign({},v),{draggedEl:l.subjectEl,view:c})),o.dispatch({type:"REMOVE_EVENTS",eventStore:y}),o.emitter.trigger("eventRemove",v);let S=f.defs[m.defId],R=f.instances[h.instanceId],z=new pt(d,S,R);d.dispatch({type:"MERGE_EVENTS",eventStore:f});let P={event:z,relatedEvents:hi(f,d,R),revert(){d.dispatch({type:"REMOVE_EVENTS",eventStore:f})}};d.emitter.trigger("eventAdd",P),l.isTouch&&d.dispatch({type:"SELECT_EVENT",eventInstanceId:h.instanceId}),d.emitter.trigger("drop",Object.assign(Object.assign({},ru(g.dateSpan,d)),{draggedEl:l.subjectEl,jsEvent:l.origEvent,view:g.context.viewApi})),d.emitter.trigger("eventReceive",Object.assign(Object.assign({},P),{draggedEl:l.subjectEl,view:g.context.viewApi}))}}else o.emitter.trigger("_noEventDrop")}this.cleanup()};let{component:r}=this,{options:i}=r.context,s=this.dragging=new rs(e.el);s.pointer.selector=aa.SELECTOR,s.touchScrollAllowed=!1,s.autoScroller.isEnabled=i.dragScroll;let a=this.hitDragging=new sa(this.dragging,wl);a.useSubjectCenter=e.useEventCenter,a.emitter.on("pointerdown",this.handlePointerDown),a.emitter.on("dragstart",this.handleDragStart),a.emitter.on("hitupdate",this.handleHitUpdate),a.emitter.on("pointerup",this.handlePointerUp),a.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}displayDrag(e,r){let i=this.component.context,s=this.receivingContext;s&&s!==e&&(s===i?s.dispatch({type:"SET_EVENT_DRAG",state:{affectedEvents:r.affectedEvents,mutatedEvents:sn(),isEvent:!0}}):s.dispatch({type:"UNSET_EVENT_DRAG"})),e&&e.dispatch({type:"SET_EVENT_DRAG",state:r})}clearDrag(){let e=this.component.context,{receivingContext:r}=this;r&&r.dispatch({type:"UNSET_EVENT_DRAG"}),e!==r&&e.dispatch({type:"UNSET_EVENT_DRAG"})}cleanup(){this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null}}aa.SELECTOR=".fc-event-draggable, .fc-event-resizable";function $M(t,e,r,i){let s=t.dateSpan,a=e.dateSpan,l=s.range.start,o=a.range.start,c={};s.allDay!==a.allDay&&(c.allDay=a.allDay,c.hasEnd=e.context.options.allDayMaintainDuration,a.allDay?l=ct(r):l=r);let d=Ni(l,o,t.context.dateEnv,t.componentId===e.componentId?t.largeUnit:null);d.milliseconds&&(c.allDay=!1);let u={datesDelta:d,standardProps:c};for(let m of i)m(u,t,e);return u}function KM(t){let{options:e}=t.context,r=e.eventLongPressDelay;return r==null&&(r=e.longPressDelay),r}class GM extends es{constructor(e){super(e),this.draggingSegEl=null,this.draggingSeg=null,this.eventRange=null,this.relevantEvents=null,this.validMutation=null,this.mutatedRelevantEvents=null,this.handlePointerDown=a=>{let{component:l}=this,o=this.querySegEl(a),c=qi(o),d=this.eventRange=c.eventRange;this.dragging.minDistance=l.context.options.eventDragMinDistance,this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(a.origEvent.target)||a.isTouch&&this.component.props.eventSelection!==d.instance.instanceId)},this.handleDragStart=a=>{let{context:l}=this.component,o=this.eventRange;this.relevantEvents=Md(l.getCurrentData().eventStore,this.eventRange.instance.instanceId);let c=this.querySegEl(a);this.draggingSegEl=c,this.draggingSeg=qi(c),l.calendarApi.unselect(),l.emitter.trigger("eventResizeStart",{el:c,event:new pt(l,o.def,o.instance),jsEvent:a.origEvent,view:l.viewApi})},this.handleHitUpdate=(a,l,o)=>{let{context:c}=this.component,d=this.relevantEvents,u=this.hitDragging.initialHit,m=this.eventRange.instance,h=null,p=null,y=!1,f={affectedEvents:d,mutatedEvents:sn(),isEvent:!0};a&&(a.componentId===u.componentId&&this.isHitComboAllowed&&!this.isHitComboAllowed(u,a)||(h=WM(u,a,o.subjectEl.classList.contains("fc-event-resizer-start"),m.range))),h&&(p=zd(d,c.getCurrentData().eventUiBases,h,c),f.mutatedEvents=p,Kd(f,a.dateProfile,c)||(y=!0,h=null,p=null,f.mutatedEvents=null)),p?c.dispatch({type:"SET_EVENT_RESIZE",state:f}):c.dispatch({type:"UNSET_EVENT_RESIZE"}),y?so():ao(),l||(h&&xo(u,a)&&(h=null),this.validMutation=h,this.mutatedRelevantEvents=p)},this.handleDragEnd=a=>{let{context:l}=this.component,o=this.eventRange.def,c=this.eventRange.instance,d=new pt(l,o,c),u=this.relevantEvents,m=this.mutatedRelevantEvents;if(l.emitter.trigger("eventResizeStop",{el:this.draggingSegEl,event:d,jsEvent:a.origEvent,view:l.viewApi}),this.validMutation){let h=new pt(l,m.defs[o.defId],c?m.instances[c.instanceId]:null);l.dispatch({type:"MERGE_EVENTS",eventStore:m});let p={oldEvent:d,event:h,relatedEvents:hi(m,l,c),revert(){l.dispatch({type:"MERGE_EVENTS",eventStore:u})}};l.emitter.trigger("eventResize",Object.assign(Object.assign({},p),{el:this.draggingSegEl,startDelta:this.validMutation.startDelta||Ge(0),endDelta:this.validMutation.endDelta||Ge(0),jsEvent:a.origEvent,view:l.viewApi})),l.emitter.trigger("eventChange",p)}else l.emitter.trigger("_noEventResize");this.draggingSeg=null,this.relevantEvents=null,this.validMutation=null};let{component:r}=e,i=this.dragging=new rs(e.el);i.pointer.selector=".fc-event-resizer",i.touchScrollAllowed=!1,i.autoScroller.isEnabled=r.context.options.dragScroll;let s=this.hitDragging=new sa(this.dragging,Bd(e));s.emitter.on("pointerdown",this.handlePointerDown),s.emitter.on("dragstart",this.handleDragStart),s.emitter.on("hitupdate",this.handleHitUpdate),s.emitter.on("dragend",this.handleDragEnd)}destroy(){this.dragging.destroy()}querySegEl(e){return Ut(e.subjectEl,".fc-event")}}function WM(t,e,r,i){let s=t.context.dateEnv,a=t.dateSpan.range.start,l=e.dateSpan.range.start,o=Ni(a,l,s,t.largeUnit);if(r){if(s.add(i.start,o)<i.end)return{startDelta:o}}else if(s.add(i.end,o)>i.start)return{endDelta:o};return null}class VM{constructor(e){this.context=e,this.isRecentPointerDateSelect=!1,this.matchesCancel=!1,this.matchesEvent=!1,this.onSelect=i=>{i.jsEvent&&(this.isRecentPointerDateSelect=!0)},this.onDocumentPointerDown=i=>{let s=this.context.options.unselectCancel,a=wg(i.origEvent);this.matchesCancel=!!Ut(a,s),this.matchesEvent=!!Ut(a,aa.SELECTOR)},this.onDocumentPointerUp=i=>{let{context:s}=this,{documentPointer:a}=this,l=s.getCurrentData();if(!a.wasTouchScroll){if(l.dateSelection&&!this.isRecentPointerDateSelect){let o=s.options.unselectAuto;o&&(!o||!this.matchesCancel)&&s.calendarApi.unselect(i)}l.eventSelection&&!this.matchesEvent&&s.dispatch({type:"UNSELECT_EVENT"})}this.isRecentPointerDateSelect=!1};let r=this.documentPointer=new rx(document);r.shouldIgnoreMove=!0,r.shouldWatchScroll=!1,r.emitter.on("pointerdown",this.onDocumentPointerDown),r.emitter.on("pointerup",this.onDocumentPointerUp),e.emitter.on("select",this.onSelect)}destroy(){this.context.emitter.off("select",this.onSelect),this.documentPointer.destroy()}}const QM={fixedMirrorParent:Q},XM={dateClick:Q,eventDragStart:Q,eventDragStop:Q,eventDrop:Q,eventResizeStart:Q,eventResizeStop:
135Q,eventResize:Q,drop:Q,eventReceive:Q,eventLeave:Q};class ZM{constructor(e,r){this.receivingContext=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=s=>{this.dragMeta=this.buildDragMeta(s.subjectEl)},this.handleHitUpdate=(s,a,l)=>{let{dragging:o}=this.hitDragging,c=null,d=null,u=!1,m={affectedEvents:sn(),mutatedEvents:sn(),isEvent:this.dragMeta.create};s&&(c=s.context,this.canDropElOnCalendar(l.subjectEl,c)&&(d=JM(s.dateSpan,this.dragMeta,c),m.mutatedEvents=Hs(d),u=!Kd(m,s.dateProfile,c),u&&(m.mutatedEvents=sn(),d=null))),this.displayDrag(c,m),o.setMirrorIsVisible(a||!d||!document.querySelector(".fc-event-mirror")),u?so():ao(),a||(o.setMirrorNeedsRevert(!d),this.receivingContext=c,this.droppableEvent=d)},this.handleDragEnd=s=>{let{receivingContext:a,droppableEvent:l}=this;if(this.clearDrag(),a&&l){let o=this.hitDragging.finalHit,c=o.context.viewApi,d=this.dragMeta;if(a.emitter.trigger("drop",Object.assign(Object.assign({},ru(o.dateSpan,a)),{draggedEl:s.subjectEl,jsEvent:s.origEvent,view:c})),d.create){let u=Hs(l);a.dispatch({type:"MERGE_EVENTS",eventStore:u}),s.isTouch&&a.dispatch({type:"SELECT_EVENT",eventInstanceId:l.instance.instanceId}),a.emitter.trigger("eventReceive",{event:new pt(a,l.def,l.instance),relatedEvents:[],revert(){a.dispatch({type:"REMOVE_EVENTS",eventStore:u})},draggedEl:s.subjectEl,view:c})}}this.receivingContext=null,this.droppableEvent=null};let i=this.hitDragging=new sa(e,wl);i.requireInitial=!1,i.emitter.on("dragstart",this.handleDragStart),i.emitter.on("hitupdate",this.handleHitUpdate),i.emitter.on("dragend",this.handleDragEnd),this.suppliedDragMeta=r}buildDragMeta(e){return typeof this.suppliedDragMeta=="object"?Mc(this.suppliedDragMeta):typeof this.suppliedDragMeta=="function"?Mc(this.suppliedDragMeta(e)):e1(e)}displayDrag(e,r){let i=this.receivingContext;i&&i!==e&&i.dispatch({type:"UNSET_EVENT_DRAG"}),e&&e.dispatch({type:"SET_EVENT_DRAG",state:r})}clearDrag(){this.receivingContext&&this.receivingContext.dispatch({type:"UNSET_EVENT_DRAG"})}canDropElOnCalendar(e,r){let i=r.options.dropAccept;return typeof i=="function"?i.call(r.calendarApi,e):typeof i=="string"&&i?!!jd(e,i):!0}}function JM(t,e,r){let i=Object.assign({},e.leftoverProps);for(let u of r.pluginHooks.externalDefTransforms)Object.assign(i,u(t,e));let{refined:s,extra:a}=Td(i,r),l=kl(s,a,e.sourceId,t.allDay,r.options.forceEventDuration||!!e.duration,r),o=t.range.start;t.allDay&&e.startTime&&(o=r.dateEnv.add(o,e.startTime));let c=e.duration?r.dateEnv.add(o,e.duration):Ic(t.allDay,o,r),d=uo(l.defId,{start:o,end:c});return{def:l,instance:d}}function e1(t){let e=t1(t,"event"),r=e?JSON.parse(e):{create:!1};return Mc(r)}er.dataAttrPrefix="";function t1(t,e){let r=er.dataAttrPrefix,i=(r?r+"-":"")+e;return t.getAttribute("data-"+i)||""}class n1{constructor(e,r={}){this.handlePointerDown=s=>{let{dragging:a}=this,{minDistance:l,longPressDelay:o}=this.settings;a.minDistance=l??(s.isTouch?0:mi.eventDragMinDistance),a.delay=s.isTouch?o??mi.longPressDelay:0},this.handleDragStart=s=>{s.isTouch&&this.dragging.delay&&s.subjectEl.classList.contains("fc-event")&&this.dragging.mirror.getMirrorEl().classList.add("fc-event-selected")},this.settings=r;let i=this.dragging=new rs(e);i.touchScrollAllowed=!1,r.itemSelector!=null&&(i.pointer.selector=r.itemSelector),r.appendTo!=null&&(i.mirror.parentNode=r.appendTo),i.emitter.on("pointerdown",this.handlePointerDown),i.emitter.on("dragstart",this.handleDragStart),new ZM(i,r.eventData)}destroy(){this.dragging.destroy()}}var r1=zn({name:"@fullcalendar/interaction",componentInteractions:[YM,HM,aa,GM],calendarInteractions:[VM],elementDraggingImpl:rs,optionRefiners:QM,listenerRefiners:XM});const i1="https://fullcalendar.io/docs/schedulerLicenseKey#invalid",s1="https://fullcalendar.io/docs/schedulerLicenseKey#outdated",a1=["GPL-My-Project-Is-Open-Source","CC-Attribution-NonCommercial-NoDerivatives"],l1={position:"absolute",zIndex:99999,bottom:"1px",left:"1px",background:"#eee",borderColor:"#ddd",borderStyle:"solid",borderWidth:"1px 1px 0 0",padding:"2px 4px",fontSize:"12px",borderTopRightRadius:"3px"};function o1(t){let e=t.options.schedulerLicenseKey,r=typeof window<"u"?window.location.href:"";if(!d1(r)){let i=c1(e,t.pluginHooks.premiumReleaseDate);
135if(i!=="valid")return E("div",{className:"fc-license-message",style:l1},i==="outdated"?E(Ye,null,"Your license key is too old to work with this version. ",E("a",{href:s1},"More Info")):E(Ye,null,"Your license key is invalid. ",E("a",{href:i1},"More Info")))}return null}function c1(t,e){if(a1.indexOf(t)!==-1)return"valid";const r=(t||"").match(/^(\d+)-fcs-(\d+)$/);if(r&&r[1].length===10){const i=new Date(parseInt(r[2],10)*1e3),s=er.mockSchedulerReleaseDate||e;if(Sd(s))return Mt(s,-372)<i?"valid":"outdated"}return"invalid"}function d1(t){return/\w+:\/\/fullcalendar\.io\/|\/examples\/[\w-]+\.html$/.test(t)}const u1={schedulerLicenseKey:String};var iu=zn({name:"@fullcalendar/premium-common",premiumReleaseDate:"2025-12-23",optionRefiners:u1,viewContainerAppends:[o1]});function m1(t){let e=t.getBoundingClientRect(),r=my(t);return{left:e.left+r.borderLeft+r.scrollbarLeft-h1(t),top:e.top+r.borderTop-t.scrollTop}}function h1(t){let e=t.scrollLeft;if(window.getComputedStyle(t).direction==="rtl")switch(lx()){case"negative":e*=-1;case"reverse":e=t.scrollWidth-e-t.clientWidth}return e}function p1(t,e){if(window.getComputedStyle(t).direction==="rtl")switch(lx()){case"reverse":e=t.scrollWidth-e;break;case"negative":e=-(t.scrollWidth-e);break}t.scrollLeft=e}let Qh;function lx(){return Qh||(Qh=f1())}function f1(){let t=document.createElement("div");t.style.position="absolute",t.style.top="-1000px",t.style.width="100px",t.style.height="100px",t.style.overflow="scroll",t.style.direction="rtl";let e=document.createElement("div");e.style.width="200px",e.style.height="200px",t.appendChild(e),document.body.appendChild(t);let r;return t.scrollLeft>0?r="positive":(t.scrollLeft=1,t.scrollLeft>0?r="reverse":r="negative"),no(t),r}const g1=".fc-sticky";class y1{constructor(e,r){this.scrollEl=e,this.isRtl=r,this.updateSize=()=>{let{scrollEl:i}=this,s=Zi(i,g1),a=this.queryElGeoms(s),l=i.clientWidth;x1(s,a,l)}}queryElGeoms(e){let{scrollEl:r,isRtl:i}=this,s=m1(r),a=[];for(let l of e){let o=Nh(hy(l.parentNode,!0,!0),-s.left,-s.top),c=l.getBoundingClientRect(),d=window.getComputedStyle(l),u=window.getComputedStyle(l.parentNode).textAlign,m=null;u==="start"?u=i?"right":"left":u==="end"&&(u=i?"left":"right"),d.position!=="sticky"&&(m=Nh(c,-s.left-(parseFloat(d.left)||0),-s.top-(parseFloat(d.top)||0))),a.push({parentBound:o,naturalBound:m,elWidth:c.width,elHeight:c.height,textAlign:u})}return a}}function x1(t,e,r){t.forEach((i,s)=>{let{textAlign:a,elWidth:l,parentBound:o}=e[s],c=o.right-o.left,d;a==="center"&&c>r?d=(r-l)/2:d="",Oi(i,{left:d,right:d,top:0})})}class v1 extends Ne{constructor(){super(...arguments),this.elRef=ot(),this.state={xScrollbarWidth:0,yScrollbarWidth:0},this.handleScroller=e=>{this.scroller=e,Nn(this.props.scrollerRef,e)},this.handleSizing=()=>{let{props:e}=this;e.overflowY==="scroll-hidden"&&this.setState({yScrollbarWidth:this.scroller.getYScrollbarWidth()}),e.overflowX==="scroll-hidden"&&this.setState({xScrollbarWidth:this.scroller.getXScrollbarWidth()})}}render(){let{props:e,state:r,context:i}=this,s=i.isRtl&&Cl(),a=0,l=0,o=0,{overflowX:c,overflowY:d}=e;return e.forPrint&&(c="visible",d="visible"),c==="scroll-hidden"&&(o=r.xScrollbarWidth),d==="scroll-hidden"&&r.yScrollbarWidth!=null&&(s?a=r.yScrollbarWidth:l=r.yScrollbarWidth),E("div",{ref:this.elRef,className:"fc-scroller-harness"+(e.liquid?" fc-scroller-harness-liquid":"")},E(Sy,{ref:this.handleScroller,elRef:this.props.scrollerElRef,overflowX:c==="scroll-hidden"?"scroll":c,overflowY:d==="scroll-hidden"?"scroll":d,overcomeLeft:a,overcomeRight:l,overcomeBottom:o,maxHeight:typeof e.maxHeight=="number"?e.maxHeight+(c==="scroll-hidden"?r.xScrollbarWidth:0):"",liquid:e.liquid,liquidIsAbsolute:!0},e.children))}componentDidMount(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)}getSnapshotBeforeUpdate(e){return this.props.forPrint&&!e.forPrint?{simulateScrollLeft:this.scroller.el.scrollLeft}:{}}componentDidUpdate(e,r,i){const{props:s,scroller:{el:a}}=this;if(Qt(e,s)||this.handleSizing(),i.simulateScrollLeft!==void 0)a.style.left=-i.simulateScrollLeft+"px";
135else if(!s.forPrint&&e.forPrint){const l=-parseInt(a.style.left);a.style.left="",a.scrollLeft=l}}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing)}needsXScrolling(){return this.scroller.needsXScrolling()}needsYScrolling(){return this.scroller.needsYScrolling()}}const Xh="wheel mousewheel DomMouseScroll MozMousePixelScroll".split(" ");class b1{constructor(e){this.el=e,this.emitter=new ra,this.isScrolling=!1,this.isTouching=!1,this.isRecentlyWheeled=!1,this.isRecentlyScrolled=!1,this.wheelWaiter=new Fs(this._handleWheelWaited.bind(this)),this.scrollWaiter=new Fs(this._handleScrollWaited.bind(this)),this.handleScroll=()=>{this.startScroll(),this.emitter.trigger("scroll",this.isRecentlyWheeled,this.isTouching),this.isRecentlyScrolled=!0,this.scrollWaiter.request(500)},this.handleWheel=()=>{this.isRecentlyWheeled=!0,this.wheelWaiter.request(500)},this.handleTouchStart=()=>{this.isTouching=!0},this.handleTouchEnd=()=>{this.isTouching=!1,this.isRecentlyScrolled||this.endScroll()},e.addEventListener("scroll",this.handleScroll),e.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),e.addEventListener("touchend",this.handleTouchEnd);for(let r of Xh)e.addEventListener(r,this.handleWheel)}destroy(){let{el:e}=this;e.removeEventListener("scroll",this.handleScroll),e.removeEventListener("touchstart",this.handleTouchStart,{passive:!0}),e.removeEventListener("touchend",this.handleTouchEnd);for(let r of Xh)e.removeEventListener(r,this.handleWheel)}startScroll(){this.isScrolling||(this.isScrolling=!0,this.emitter.trigger("scrollStart",this.isRecentlyWheeled,this.isTouching))}endScroll(){this.isScrolling&&(this.emitter.trigger("scrollEnd"),this.isScrolling=!1,this.isRecentlyScrolled=!0,this.isRecentlyWheeled=!1,this.scrollWaiter.clear(),this.wheelWaiter.clear())}_handleScrollWaited(){this.isRecentlyScrolled=!1,this.isTouching||this.endScroll()}_handleWheelWaited(){this.isRecentlyWheeled=!1}}class _1{constructor(e,r){this.isVertical=e,this.scrollEls=r,this.isPaused=!1,this.scrollListeners=r.map(i=>this.bindScroller(i))}destroy(){for(let e of this.scrollListeners)e.destroy()}bindScroller(e){let{scrollEls:r,isVertical:i}=this,s=new b1(e);const a=(o,c)=>{if(!this.isPaused&&((!this.masterEl||this.masterEl!==e&&(o||c))&&this.assignMaster(e),this.masterEl===e))for(let d of r)d!==e&&(i?d.scrollTop=e.scrollTop:d.scrollLeft=e.scrollLeft)},l=()=>{this.masterEl===e&&(this.masterEl=null)};return s.emitter.on("scroll",a),s.emitter.on("scrollEnd",l),s}assignMaster(e){this.masterEl=e;for(let r of this.scrollListeners)r.el!==e&&r.endScroll()}forceScrollLeft(e){this.isPaused=!0;for(let r of this.scrollListeners)p1(r.el,e);this.isPaused=!1}forceScrollTop(e){this.isPaused=!0;for(let r of this.scrollListeners)r.el.scrollTop=e;this.isPaused=!1}}er.SCROLLGRID_RESIZE_INTERVAL=500;class su extends Ne{constructor(){super(...arguments),this.compileColGroupStats=Oo(E1,C1),this.renderMicroColGroups=Oo(Ry),this.clippedScrollerRefs=new Wt,this.scrollerElRefs=new Wt(this._handleScrollerEl.bind(this)),this.chunkElRefs=new Wt(this._handleChunkEl.bind(this)),this.scrollSyncersBySection={},this.scrollSyncersByColumn={},this.rowUnstableMap=new Map,this.rowInnerMaxHeightMap=new Map,this.anyRowHeightsChanged=!1,this.recentSizingCnt=0,this.state={shrinkWidths:[],forceYScrollbars:!1,forceXScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{},sectionRowMaxHeights:[]},this.handleSizing=(e,r)=>{if(!this.allowSizing())return;r||(this.anyRowHeightsChanged=!0);let i={};(e||!r&&!this.rowUnstableMap.size)&&(i.sectionRowMaxHeights=this.computeSectionRowMaxHeights()),this.setState(Object.assign(Object.assign({shrinkWidths:this.computeShrinkWidths()},this.computeScrollerDims()),i),()=>{this.rowUnstableMap.size||this.updateStickyScrolling()})},this.handleRowHeightChange=(e,r)=>{let{rowUnstableMap:i,rowInnerMaxHeightMap:s}=this;if(!r)i.set(e,!0);else{i.delete(e);let a=Zh(e);(!s.has(e)||s.get(e)!==a)&&(s.set(e,a),this.anyRowHeightsChanged=!0),!i.size&&this.anyRowHeightsChanged&&(this.anyRowHeightsChanged=!1,this.setState({sectionRowMaxHeights:this.computeSectionRowMaxHeights()}))}}}render(){let{props:e,state:r,context:i}=this,{shrinkWidths:s}=r,a=this.compileColGroupStats(e.colGroups.map(v=>[v])),l=this.renderMicroColGroups(a.map((v,S)=>[v.cols,s[S]])),o=Ay(e.liquid,i);this.getDims();let c=e.sections,d=c.length,u=0,m,h=[],p=[],y=[];for(;u<d&&(m=c[u]).type==="header";)h.push(this.renderSection(m,u,a,l,r.sectionRowMaxHeights,!0)),u+=1;for(;u<d&&(m=c[u]).type==="body";)p.push(this.renderSection(m,u,a,l,r.sectionRowMaxHeights,!1)),u+=1;for(;u<d&&(m=c[u]).type==="footer";)y.push(this.renderSection(m,u,a,l,r.sectionRowMaxHeights,!0)),u+=1;const f=!Fd(),g={role:"rowgroup"};return E("table",{ref:e.elRef,role:"grid",className:o.join(" ")},S1(a,s),!!(!f&&h.length)&&E("thead",g,...h),!!(!f&&p.length)&&E("tbody",g,...p),!!(!f&&y.length)&&E("tfoot",g,...y),f&&E("tbody",g,...h,...p,...y))}renderSection(e,r,i,s,a,l){return"outerContent"in e?E(Ye,{key:e.key},e.outerContent):E("tr",{key:e.key,role:"presentation",className:My(e,this.props.liquid
135).join(" ")},e.chunks.map((o,c)=>this.renderChunk(e,r,i[c],s[c],o,c,(a[r]||[])[c]||[],l)))}renderChunk(e,r,i,s,a,l,o,c){if("outerContent"in a)return E(Ye,{key:a.key},a.outerContent);let{state:d}=this,{scrollerClientWidths:u,scrollerClientHeights:m}=d,[h,p]=this.getDims(),y=r*p+l,f=!this.context.isRtl||Cl()?p-1:0,g=l===f,v=r===h-1,S=v&&d.forceXScrollbars,R=g&&d.forceYScrollbars,z=i&&i.allowXScrolling,P=wy(this.props,e),U=Gd(this.props,e),A=e.expandRows&&U,w=i&&i.totalColMinWidth||"",Y=Cy(e,a,{tableColGroupNode:s,tableMinWidth:w,clientWidth:u[y]!==void 0?u[y]:null,clientHeight:m[y]!==void 0?m[y]:null,expandRows:A,syncRowHeights:!!e.syncRowHeights,rowSyncHeights:o,reportRowHeightChange:this.handleRowHeightChange},c),D=S?v?"scroll":"scroll-hidden":z?v?"auto":"scroll-hidden":"hidden",_=R?g?"scroll":"scroll-hidden":P?g?"auto":"scroll-hidden":"hidden";return Y=E(v1,{ref:this.clippedScrollerRefs.createRef(y),scrollerElRef:this.scrollerElRefs.createRef(y),overflowX:D,overflowY:_,forPrint:this.props.forPrint,liquid:U,maxHeight:e.maxHeight},Y),E(c?"th":"td",{key:a.key,ref:this.chunkElRefs.createRef(y),role:"presentation"},Y)}componentDidMount(){this.getStickyScrolling=Oo(D1),this.getScrollSyncersBySection=jh(ep.bind(this,!0),null,Na),this.getScrollSyncersByColumn=jh(ep.bind(this,!1),null,Na),this.updateScrollSyncers(),this.handleSizing(!1),this.context.addResizeHandler(this.handleSizing)}componentDidUpdate(e,r){this.updateScrollSyncers(),this.handleSizing(!1,r.sectionRowMaxHeights!==this.state.sectionRowMaxHeights)}componentWillUnmount(){this.context.removeResizeHandler(this.handleSizing),this.destroyScrollSyncers()}allowSizing(){let e=new Date;return!this.lastSizingDate||e.valueOf()>this.lastSizingDate.valueOf()+er.SCROLLGRID_RESIZE_INTERVAL?(this.lastSizingDate=e,this.recentSizingCnt=0,!0):(this.recentSizingCnt+=1)<=10}computeShrinkWidths(){let e=this.compileColGroupStats(this.props.colGroups.map(l=>[l])),[r,i]=this.getDims(),s=r*i,a=[];return e.forEach((l,o)=>{if(l.hasShrinkCol){let c=this.chunkElRefs.collect(o,s,i);a[o]=Ey(c)}}),a}computeSectionRowMaxHeights(){let e=new Map,[r,i]=this.getDims(),s=[];for(let a=0;a<r;a+=1){let l=this.props.sections[a],o=[];if(l&&l.syncRowHeights){let c=[];for(let m=0;m<i;m+=1){let h=a*i+m,p=[],y=this.chunkElRefs.currentMap[h];y?p=Zi(y,".fc-scrollgrid-sync-table tr").map(f=>{let g=Zh(f);return e.set(f,g),g}):p=[],c.push(p)}let d=c[0].length,u=!0;for(let m=1;m<i;m+=1)if(!(l.chunks[m]&&l.chunks[m].outerContent!==void 0)&&c[m].length!==d){u=!1;break}if(u){for(let m=0;m<i;m+=1)o.push([]);for(let m=0;m<d;m+=1){let h=[];for(let y=0;y<i;y+=1){let f=c[y][m];f!=null&&h.push(f)}let p=Math.max(...h);for(let y=0;y<i;y+=1)o[y].push(p)}}else{let m=[];for(let p=0;p<i;p+=1)m.push(j1(c[p])+c[p].length);let h=Math.max(...m);for(let p=0;p<i;p+=1){let y=c[p].length,f=h-y,g=Math.floor(f/y),v=f-g*(y-1),S=[],R=0;for(R<y&&(S.push(v),R+=1);R<y;)S.push(g),R+=1;o.push(S)}}}s.push(o)}return this.rowInnerMaxHeightMap=e,s}computeScrollerDims(){let e=dy(),[r,i]=this.getDims(),s=!this.context.isRtl||Cl()?i-1:0,a=r-1,l=this.clippedScrollerRefs.currentMap,o=this.scrollerElRefs.currentMap,c=!1,d=!1,u={},m={};for(let h=0;h<r;h+=1){let p=h*i+s,y=l[p];if(y&&y.needsYScrolling()){c=!0;break}}for(let h=0;h<i;h+=1){let p=a*i+h,y=l[p];if(y&&y.needsXScrolling()){d=!0;break}}for(let h=0;h<r;h+=1)for(let p=0;p<i;p+=1){let y=h*i+p,f=o[y];if(f){let g=f.parentNode;u[y]=Math.floor(g.getBoundingClientRect().width-(p===s&&c?e.y:0)),m[y]=Math.floor(g.getBoundingClientRect().height-(h===a&&d?e.x:0))}}return{forceYScrollbars:c,forceXScrollbars:d,scrollerClientWidths:u,scrollerClientHeights:m}}updateStickyScrolling(){let{isRtl:e}=this.context,r=this.scrollerElRefs.getAll().map(i=>[i,e]);this.getStickyScrolling(r).forEach(i=>i.updateSize())}updateScrollSyncers(){let[e,r]=this.getDims(),i=e*r,s={},a={},l=this.scrollerElRefs.currentMap;for(let o=0;o<e;o+=1){let c=o*r,d=c+r;s[o]=zg(l,c,d,1)}for(let o=0;o<r;o+=1)a[o]=this.scrollerElRefs.collect(o,i,r);this.scrollSyncersBySection=this.getScrollSyncersBySection(s),this.scrollSyncersByColumn=this.getScrollSyncersByColumn(a)}destroyScrollSyncers(){dn(this.scrollSyncersBySection,Na),dn(this.scrollSyncersByColumn,Na)}getChunkConfigByIndex(e){let r=this.getDims()[1],i=Math.floor(e/r),s=e%r,a=this.props.sections[i];return a&&a.chunks[s]}forceScrollLeft(e,r){let i=this.scrollSyncersByColumn[e];i&&i.forceScrollLeft(r)}forceScrollTop(e,r){let i=this.scrollSyncersBySection[e];i&&i.forceScrollTop(r)}_handleChunkEl(e,r){let i=this.getChunkConfigByIndex(parseInt(r,10));i&&Nn(i.elRef,e)}_handleScrollerEl(e,r){let i=this.getChunkConfigByIndex(parseInt(r,10));i&&Nn(i.scrollerElRef,e)}getDims(){let e=this.props.sections.length,r=e?this.props.sections[0].chunks.length:0;return[e,r]}}su.addStateEquality({shrinkWidths:Mn,scrollerClientWidths:Qt,scrollerClientHeights:Qt});function j1(t){let e=0;for(let r of t)e+=r;return e}function Zh(t){let e=Zi(t,".fc-scrollgrid-sync-inner").map(k1);return e.length?Math.max(...e):0}function k1(t){return t.offsetHeight}function S1(t,e){let r=t.map((i,s)=>{let a=i.width;
135return a==="shrink"&&(a=i.totalColWidth+Iy(e[s])+1),E("col",{style:{width:a}})});return E("colgroup",{},...r)}function E1(t){let e=Jh(t.cols,"width"),r=Jh(t.cols,"minWidth"),i=Ty(t.cols),s=t.width!=="shrink"&&!!(e||r||i);return{hasShrinkCol:i,totalColWidth:e,totalColMinWidth:r,allowXScrolling:s,cols:t.cols,width:t.width}}function Jh(t,e){let r=0;for(let i of t){let s=i[e];typeof s=="number"&&(r+=s*(i.span||1))}return r}const w1={cols:Dy};function C1(t,e){return Ga(t,e,w1)}function ep(t,...e){return new _1(t,e)}function Na(t){t.destroy()}function D1(t,e){return new y1(t,e)}const R1=18,Rl=6,I1=200;er.MAX_TIMELINE_SLOTS=1e3;const Oc=[{years:1},{months:1},{days:1},{hours:1},{minutes:30},{minutes:15},{minutes:10},{minutes:5},{minutes:1},{seconds:30},{seconds:15},{seconds:10},{seconds:5},{seconds:1},{milliseconds:500},{milliseconds:100},{milliseconds:10},{milliseconds:1}];function ox(t,e,r,i){let s={labelInterval:r.slotLabelInterval,slotDuration:r.slotDuration};A1(s,t,e),cx(s,t,e),M1(s,t,e);let a=r.slotLabelFormat,l=Array.isArray(a)?a:a!=null?[a]:N1(s,t,e,r);s.headerFormats=l.map(z=>bt(z)),s.isTimeScale=!!s.slotDuration.milliseconds;let o=null;if(!s.isTimeScale){const z=Hr(s.slotDuration).unit;/year|month|week/.test(z)&&(o=z)}s.largeUnit=o,s.emphasizeWeeks=Ag(s.slotDuration)===1&&Ai("weeks",t,e)>=2&&!r.businessHours;let c=r.snapDuration,d,u;c&&(d=Ge(c),u=Yr(s.slotDuration,d)),u==null&&(d=s.slotDuration,u=1),s.snapDuration=d,s.snapsPerSlot=u;let m=nn(t.slotMaxTime)-nn(t.slotMinTime),h=tp(t.renderRange.start,s,e),p=tp(t.renderRange.end,s,e);s.isTimeScale&&(h=e.add(h,t.slotMinTime),p=e.add(Mt(p,-1),t.slotMaxTime)),s.timeWindowMs=m,s.normalizedRange={start:h,end:p};let y=[],f=h;for(;f<p;)Il(f,s,t,i)&&y.push(f),f=e.add(f,s.slotDuration);s.slotDates=y;let g=-1,v=0;const S=[],R=[];for(f=h;f<p;)Il(f,s,t,i)?(g+=1,S.push(g),R.push(v)):S.push(g+.5),f=e.add(f,s.snapDuration),v+=1;return s.snapDiffToIndex=S,s.snapIndexToDiff=R,s.snapCnt=g+1,s.slotCnt=s.snapCnt/s.snapsPerSlot,s.isWeekStarts=P1(s,e),s.cellRows=z1(s,e),s.slotsPerLabel=Yr(s.labelInterval,s.slotDuration),s}function tp(t,e,r){let i=t;return e.isTimeScale||(i=ct(i),e.largeUnit&&(i=r.startOf(i,e.largeUnit))),i}function T1(t,e,r){if(!e.isTimeScale&&(t=Id(t),e.largeUnit)){let i=t;t={start:r.startOf(t.start,e.largeUnit),end:r.startOf(t.end,e.largeUnit)},(t.end.valueOf()!==i.end.valueOf()||t.end<=t.start)&&(t={start:t.start,end:r.add(t.end,e.slotDuration)})}return t}function Il(t,e,r,i){if(i.isHiddenDay(t))return!1;if(e.isTimeScale){let s=ct(t),l=t.valueOf()-s.valueOf()-nn(r.slotMinTime);return l=(l%864e5+864e5)%864e5,l<e.timeWindowMs}return!0}function A1(t,e,r){const{currentRange:i}=e;if(t.labelInterval&&r.countDurationsBetween(i.start,i.end,t.labelInterval)>er.MAX_TIMELINE_SLOTS&&(console.warn("slotLabelInterval results in too many cells"),t.labelInterval=null),t.slotDuration&&r.countDurationsBetween(i.start,i.end,t.slotDuration)>er.MAX_TIMELINE_SLOTS&&(console.warn("slotDuration results in too many cells"),t.slotDuration=null),t.labelInterval&&t.slotDuration){const s=Yr(t.labelInterval,t.slotDuration);(s===null||s<1)&&(console.warn("slotLabelInterval must be a multiple of slotDuration"),t.slotDuration=null)}}function cx(t,e,r){const{currentRange:i}=e;let{labelInterval:s}=t;if(!s){let a;if(t.slotDuration){for(a of Oc){const l=Ge(a),o=Yr(l,t.slotDuration);if(o!==null&&o<=Rl){s=l;break}}s||(s=t.slotDuration)}else for(a of Oc)if(s=Ge(a),r.countDurationsBetween(i.start,i.end,s)>=R1)break;t.labelInterval=s}return s}function M1(t,e,r){const{currentRange:i}=e;let{slotDuration:s}=t;if(!s){const a=cx(t,e,r);for(let l of Oc){const o=Ge(l),c=Yr(a,o);if(c!==null&&c>1&&c<=Rl){s=o;break}}s&&r.countDurationsBetween(i.start,i.end,s)>I1&&(s=null),s||(s=a),t.slotDuration=s}return s}function N1(t,e,r,i){let s,a;const{labelInterval:l}=t;let o=Hr(l).unit;const c=i.weekNumbers;let d=s=a=null;switch(o==="week"&&!c&&(o="day"),o){case"year":d={year:"numeric"};break;case"month":Ai("years",e,r)>1&&(d={year:"numeric"}),s={month:"short"};break;case"week":Ai("years",e,r)>1&&(d={year:"numeric"}),s={week:"narrow"};break;case"day":Ai("years",e,r)>1?d={year:"numeric",month:"long"}:Ai("months",e,r)>1&&(d={month:"long"}),c&&(s={week:"short"}),a={weekday:"narrow",day:"numeric"};break;case"hour":c&&(d={week:"short"}),Ai("days",e,r)>1&&(s={weekday:"short",day:"numeric",month:"numeric",omitCommas:!0}),a={hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"};break;case"minute":ID(l)/60>=Rl?(d={hour:"numeric",meridiem:"short"},s=u=>":"+br(u.date.minute,2)):d={hour:"numeric",minute:"numeric",meridiem:"short"};break;case"second":TD(l)/60>=Rl?(d={hour:"numeric",minute:"2-digit",meridiem:"lowercase"},s=u=>":"+br(u.date.second,2)):d={hour:"numeric",minute:"2-digit",second:"2-digit",meridiem:"lowercase"};break;case"millisecond":d={hour:"numeric",minute:"2-digit",second:"2-digit",meridiem:"lowercase"},s=u=>"."+br(u.millisecond,3);break}return[].concat(d||[],s||[],a||[])}function Ai(t,e,r){let i=e.currentRange,s=null;return t==="years"?s=r.diffWholeYears(i.start,i.end):t==="months"||t==="weeks"?s=r.diffWholeMonths(i.start,i.end):t==="days"&&(s=Bs(i.start,i.end)),s||0}function P1(t,e){let{slotDates:r,emphasizeWeeks:i}=t,s=null,a=[];for(let l of r){let o=e.computeWeekNumber(l),c=i&&s!==null&&s!==o;s=o,a.push(c)}return a}function z1(t,e){let r=t.slotDates,i=t.headerFormats,s=i.map(()=>[]),a=Ag(t.slotDuration),l=a===7?"week":a===1?"day":null,o=i.map(c=>
135c.getSmallestUnit?c.getSmallestUnit():null);for(let c=0;c<r.length;c+=1){let d=r[c],u=t.isWeekStarts[c];for(let m=0;m<i.length;m+=1){let h=i[m],p=s[m],y=p[p.length-1],f=m===i.length-1,g=i.length>1&&!f,v=null,S=o[m]||(f?l:null);if(g){let R=e.format(d,h);!y||y.text!==R?v=np(d,R,S):y.colspan+=1}else if(!y||di(e.countDurationsBetween(t.normalizedRange.start,d,t.labelInterval))){let R=e.format(d,h);v=np(d,R,S)}else y.colspan+=1;v&&(v.weekStart=u,p.push(v))}}return s}function np(t,e,r){return{date:t,text:e,rowUnit:r,colspan:1,isWeekStart:!1}}class O1 extends Ne{constructor(){super(...arguments),this.refineRenderProps=ui(B1),this.buildCellNavLinkAttrs=Te(L1)}render(){let{props:e,context:r}=this,{dateEnv:i,options:s}=r,{cell:a,dateProfile:l,tDateProfile:o}=e,c=po(a.date,e.todayRange,e.nowDate,l),d=this.refineRenderProps({level:e.rowLevel,dateMarker:a.date,text:a.text,dateEnv:r.dateEnv,viewApi:r.viewApi});return E(Dt,{elTag:"th",elClasses:["fc-timeline-slot","fc-timeline-slot-label",a.isWeekStart&&"fc-timeline-slot-em",...a.rowUnit==="time"?cy(c,r.theme):ia(c,r.theme)],elAttrs:{colSpan:a.colspan,"data-date":i.formatIso(a.date,{omitTime:!o.isTimeScale,omitTimeZoneOffset:!0})},renderProps:d,generatorName:"slotLabelContent",customGenerator:s.slotLabelContent,defaultGenerator:F1,classNameGenerator:s.slotLabelClassNames,didMount:s.slotLabelDidMount,willUnmount:s.slotLabelWillUnmount},u=>E("div",{className:"fc-timeline-slot-frame",style:{height:e.rowInnerHeight}},E(u,{elTag:"a",elClasses:["fc-timeline-slot-cushion","fc-scrollgrid-sync-inner",e.isSticky&&"fc-sticky"],elAttrs:this.buildCellNavLinkAttrs(r,a.date,a.rowUnit)})))}}function L1(t,e,r){return r&&r!=="time"?qs(t,e,r):{}}function F1(t){return t.text}function B1(t){return{level:t.level,date:t.dateEnv.toDate(t.dateMarker),view:t.viewApi,text:t.text}}class Y1 extends Ne{render(){let{dateProfile:e,tDateProfile:r,rowInnerHeights:i,todayRange:s,nowDate:a}=this.props,{cellRows:l}=r;return E(Ye,null,l.map((o,c)=>{let d=c===l.length-1,m=["fc-timeline-header-row",r.isTimeScale&&d?"fc-timeline-header-row-chrono":""];return E("tr",{key:c,className:m.join(" ")},o.map(h=>E(O1,{key:h.date.toISOString(),cell:h,rowLevel:c,dateProfile:e,tDateProfile:r,todayRange:s,nowDate:a,rowInnerHeight:i&&i[c],isSticky:!d})))}))}}class H1{constructor(e,r,i,s,a,l){this.slatRootEl=e,this.dateProfile=i,this.tDateProfile=s,this.dateEnv=a,this.isRtl=l,this.outerCoordCache=new Er(e,r,!0,!1),this.innerCoordCache=new Er(e,mD(r,"div"),!0,!1)}isDateInRange(e){return dr(this.dateProfile.currentRange,e)}dateToCoord(e){let{tDateProfile:r}=this,s=this.computeDateSnapCoverage(e)/r.snapsPerSlot,a=Math.floor(s);a=Math.min(a,r.slotCnt-1);let l=s-a,{innerCoordCache:o,outerCoordCache:c}=this;return this.isRtl?c.originClientRect.width-(c.rights[a]-o.getWidth(a)*l):c.lefts[a]+o.getWidth(a)*l}rangeToCoords(e){return{start:this.dateToCoord(e.start),end:this.dateToCoord(e.end)}}durationToCoord(e){let{dateProfile:r,tDateProfile:i,dateEnv:s,isRtl:a}=this,l=0;if(r){let o=s.add(r.activeRange.start,e);i.isTimeScale||(o=ct(o)),l=this.dateToCoord(o),!a&&l&&(l+=1)}return l}coordFromLeft(e){return this.isRtl?this.outerCoordCache.originClientRect.width-e:e}computeDateSnapCoverage(e){return Lc(e,this.tDateProfile,this.dateEnv)}}function Lc(t,e,r){let i=r.countDurationsBetween(e.normalizedRange.start,t,e.snapDuration);if(i<0)return 0;if(i>=e.snapDiffToIndex.length)return e.snapCnt;let s=Math.floor(i),a=e.snapDiffToIndex[s];return di(a)?a+=i-s:a=Math.ceil(a),a}function au(t,e){return t===null?{left:"",right:""}:e?{right:t,left:""}:{left:t,right:""}}function lu(t,e){return t?e?{right:t.start,left:-t.end}:{left:t.start,right:-t.end}:{left:"",right:""}}class dx extends Ne{constructor(){super(...arguments),this.rootElRef=ot()}render(){let{props:e,context:r}=this,{unit:i,value:s}=Hr(e.tDateProfile.slotDuration),a=e.slatCoords&&e.slatCoords.dateProfile===e.dateProfile?e.slatCoords:null;return E(Rr,{unit:i,unitValue:s},(l,o)=>E("div",{className:"fc-timeline-header",ref:this.rootElRef},E("table",{"aria-hidden":!0,className:"fc-scrollgrid-sync-table",style:{minWidth:e.tableMinWidth,width:e.clientWidth}},e.tableColGroupNode,E("tbody",null,E(Y1,{dateProfile:e.dateProfile,tDateProfile:e.tDateProfile,nowDate:l,todayRange:o,rowInnerHeights:e.rowInnerHeights}))),r.options.nowIndicator&&E("div",{className:"fc-timeline-now-indicator-container"},a&&a.isDateInRange(l)&&E(ns,{elClasses:["fc-timeline-now-indicator-arrow"],elStyle:au(a.dateToCoord(l),r.isRtl),isAxis:!0,date:l}))))}componentDidMount(){this.updateSize()}componentDidUpdate(){this.updateSize()}updateSize(){this.props.onMaxCushionWidth&&this.props.onMaxCushionWidth(this.computeMaxCushionWidth())}computeMaxCushionWidth(){return Math.max(...Zi(this.rootElRef.current,".fc-timeline-header-row:last-child .fc-timeline-slot-cushion").map(e=>e.getBoundingClientRect().width))}}class U1 extends Ne{render(){let{props:e,context:r}=this,{dateEnv:i,options:s,theme:a}=r,{date:l,tDateProfile:o,isEm:c}
135=e,d=po(e.date,e.todayRange,e.nowDate,e.dateProfile),u=Object.assign(Object.assign({date:i.toDate(e.date)},d),{view:r.viewApi});return E(Dt,{elTag:"td",elRef:e.elRef,elClasses:["fc-timeline-slot","fc-timeline-slot-lane",c&&"fc-timeline-slot-em",o.isTimeScale?di(i.countDurationsBetween(o.normalizedRange.start,e.date,o.labelInterval))?"fc-timeline-slot-major":"fc-timeline-slot-minor":"",...e.isDay?ia(d,a):cy(d,a)],elAttrs:{"data-date":i.formatIso(l,{omitTimeZoneOffset:!0,omitTime:!o.isTimeScale})},renderProps:u,generatorName:"slotLaneContent",customGenerator:s.slotLaneContent,classNameGenerator:s.slotLaneClassNames,didMount:s.slotLaneDidMount,willUnmount:s.slotLaneWillUnmount},m=>E(m,{elTag:"div"}))}}class q1 extends Ne{render(){let{props:e}=this,{tDateProfile:r,cellElRefs:i}=e,{slotDates:s,isWeekStarts:a}=r,l=!r.isTimeScale&&!r.largeUnit;return E("tbody",null,E("tr",null,s.map((o,c)=>{let d=o.toISOString();return E(U1,{key:d,elRef:i.createRef(d),date:o,dateProfile:e.dateProfile,tDateProfile:r,nowDate:e.nowDate,todayRange:e.todayRange,isEm:a[c],isDay:l})})))}}class ux extends Ne{constructor(){super(...arguments),this.rootElRef=ot(),this.cellElRefs=new Wt,this.handleScrollRequest=e=>{let{onScrollLeftRequest:r}=this.props,{coords:i}=this;if(r&&i){if(e.time){let s=i.coordFromLeft(i.durationToCoord(e.time));r(s)}return!0}return null}}render(){let{props:e,context:r}=this;return E("div",{className:"fc-timeline-slots",ref:this.rootElRef},E("table",{"aria-hidden":!0,className:r.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth}},e.tableColGroupNode,E(q1,{cellElRefs:this.cellElRefs,dateProfile:e.dateProfile,tDateProfile:e.tDateProfile,nowDate:e.nowDate,todayRange:e.todayRange})))}componentDidMount(){this.updateSizing(),this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}componentDidUpdate(e){this.updateSizing(),this.scrollResponder.update(e.dateProfile!==this.props.dateProfile)}componentWillUnmount(){this.scrollResponder.detach(),this.props.onCoords&&this.props.onCoords(null)}updateSizing(){let{props:e,context:r}=this;e.clientWidth!==null&&this.scrollResponder&&this.rootElRef.current.offsetWidth&&(this.coords=new H1(this.rootElRef.current,$1(this.cellElRefs.currentMap,e.tDateProfile.slotDates),e.dateProfile,e.tDateProfile,r.dateEnv,r.isRtl),e.onCoords&&e.onCoords(this.coords),this.scrollResponder.update(!1))}positionToHit(e){let{outerCoordCache:r}=this.coords,{dateEnv:i,isRtl:s}=this.context,{tDateProfile:a}=this.props,l=r.leftToIndex(e);if(l!=null){let o=r.getWidth(l),c=s?(r.rights[l]-e)/o:(e-r.lefts[l])/o,d=Math.floor(c*a.snapsPerSlot),u=i.add(a.slotDates[l],Mg(a.snapDuration,d)),m=i.add(u,a.snapDuration);return{dateSpan:{range:{start:u,end:m},allDay:!this.props.tDateProfile.isTimeScale},dayEl:this.cellElRefs.currentMap[l],left:r.lefts[l],right:r.rights[l]}}return null}}function $1(t,e){return e.map(r=>{let i=r.toISOString();return t[i]})}function mx(t,e,r){let i=[];if(r)for(let s of t){let a=r.rangeToCoords(s),l=Math.round(a.start),o=Math.round(a.end);o-l<e&&(o=l+e),i.push({start:l,end:o})}return i}function K1(t,e,r,i,s,a){let l=[],o=[];for(let S=0;S<t.length;S+=1){let R=t[S],z=R.eventRange.instance.instanceId,P=r[z],U=e[S];P&&U?l.push({index:S,span:U,thickness:P}):o.push({seg:R,hcoords:U,top:null})}let c=new Ud;s!=null&&(c.strictOrder=s),a!=null&&(c.maxStackCnt=a);let d=c.addSegs(l),u=d.map(S=>({seg:t[S.index],hcoords:S.span,top:null})),m=fy(d),h=[],p=[];const y=S=>t[S.index];for(let S=0;S<m.length;S+=1){let R=m[S],z=R.entries.map(y),P=i[lo(yo(z))];P!=null?h.push({index:t.length+S,thickness:P,span:R.span}):p.push({seg:z,hcoords:R.span,top:null})}c.maxStackCnt=-1,c.addSegs(h);let f=c.toRects(),g=[],v=0;for(let S of f){let R=S.index;g.push({seg:R<t.length?t[R]:m[R-t.length].entries.map(y),hcoords:S.span,top:S.levelCoord}),v=Math.max(v,S.levelCoord+S.thickness)}return[g.concat(o,u,p),v]}class hx extends Ne{render(){let{props:e}=this,r=[].concat(e.eventResizeSegs,e.dateSelectionSegs);return e.timelineCoords&&E("div",{className:"fc-timeline-bg"},this.renderSegs(e.businessHourSegs||[],e.timelineCoords,"non-business"),this.renderSegs(e.bgEventSegs||[],e.timelineCoords,"bg-event"),this.renderSegs(r,e.timelineCoords,"highlight"))}
135renderSegs(e,r,i){let{todayRange:s,nowDate:a}=this.props,{isRtl:l}=this.context,o=mx(e,0,r),c=e.map((d,u)=>{let m=o[u],h=lu(m,l);return E("div",{key:Ld(d.eventRange),className:"fc-timeline-bg-harness",style:h},i==="bg-event"?E(Zd,Object.assign({seg:d},Zn(d,s,a))):Jd(i))});return E(Ye,null,c)}}class px extends $d{sliceRange(e,r,i,s,a){let l=T1(e,s,a),o=[];if(Lc(l.start,s,a)<Lc(l.end,s,a)){let c=Ur(l,s.normalizedRange);c&&o.push({start:c.start,end:c.end,isStart:c.start.valueOf()===l.start.valueOf()&&Il(c.start,s,r,i),isEnd:c.end.valueOf()===l.end.valueOf()&&Il(kr(c.end,-1),s,r,i)})}return o}}const G1=bt({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});class fx extends Ne{render(){let{props:e}=this;return E(go,Object.assign({},e,{elClasses:["fc-timeline-event","fc-h-event"],defaultTimeFormat:G1,defaultDisplayEventTime:!e.isTimeScale}))}}class W1 extends Ne{render(){let{props:e,context:r}=this,{hiddenSegs:i,placement:s,resourceId:a}=e,{top:l,hcoords:o}=s,c=o&&l!==null,d=lu(o,r.isRtl),u=a?{resourceId:a}:{};return E(eu,{elRef:e.elRef,elClasses:["fc-timeline-more-link"],elStyle:Object.assign({visibility:c?"":"hidden",top:l||0},d),allDayDate:null,moreCnt:i.length,allSegs:i,hiddenSegs:i,dateProfile:e.dateProfile,todayRange:e.todayRange,extraDateSpan:u,popoverContent:()=>E(Ye,null,i.map(m=>{let h=m.eventRange.instance.instanceId;return E("div",{key:h,style:{visibility:e.isForcedInvisible[h]?"hidden":""}},E(fx,Object.assign({isTimeScale:e.isTimeScale,seg:m,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:h===e.eventSelection},Zn(m,e.todayRange,e.nowDate))))}))},m=>E(m,{elTag:"div",elClasses:["fc-timeline-more-link-inner","fc-sticky"]}))}}class ou extends Ne{constructor(){super(...arguments),this.slicer=new px,this.sortEventSegs=Te(Od),this.harnessElRefs=new Wt,this.moreElRefs=new Wt,this.innerElRef=ot(),this.state={eventInstanceHeights:{},moreLinkHeights:{}},this.handleResize=e=>{e&&this.updateSize()}}render(){let{props:e,state:r,context:i}=this,{options:s}=i,{dateProfile:a,tDateProfile:l}=e,o=this.slicer.sliceProps(e,a,l.isTimeScale?null:e.nextDayThreshold,i,a,i.dateProfileGenerator,l,i.dateEnv),c=(o.eventDrag?o.eventDrag.segs:null)||(o.eventResize?o.eventResize.segs:null)||[],d=this.sortEventSegs(o.fgEventSegs,s.eventOrder),u=mx(d,s.eventMinWidth,e.timelineCoords),[m,h]=K1(d,u,r.eventInstanceHeights,r.moreLinkHeights,s.eventOrderStrict,s.eventMaxStack),p=(o.eventDrag?o.eventDrag.affectedInstances:null)||(o.eventResize?o.eventResize.affectedInstances:null)||{};return E(Ye,null,E(hx,{businessHourSegs:o.businessHourSegs,bgEventSegs:o.bgEventSegs,timelineCoords:e.timelineCoords,eventResizeSegs:o.eventResize?o.eventResize.segs:[],dateSelectionSegs:o.dateSelectionSegs,nowDate:e.nowDate,todayRange:e.todayRange}),E("div",{className:"fc-timeline-events fc-scrollgrid-sync-inner",ref:this.innerElRef,style:{height:h}},this.renderFgSegs(m,p,!1,!1,!1),this.renderFgSegs(V1(c,e.timelineCoords,m),{},!!o.eventDrag,!!o.eventResize,!1)))}componentDidMount(){this.updateSize(),this.context.addResizeHandler(this.handleResize)}componentDidUpdate(e,r){(e.eventStore!==this.props.eventStore||e.timelineCoords!==this.props.timelineCoords||r.moreLinkHeights!==this.state.moreLinkHeights)&&this.updateSize()}componentWillUnmount(){this.context.removeResizeHandler(this.handleResize)}updateSize(){let{props:e}=this,{timelineCoords:r}=e;const i=this.innerElRef.current;e.onHeightChange&&e.onHeightChange(i,!1),r&&this.setState({eventInstanceHeights:dn(this.harnessElRefs.currentMap,s=>Math.round(s.getBoundingClientRect().height)),moreLinkHeights:dn(this.moreElRefs.currentMap,s=>Math.round(s.getBoundingClientRect().height))},()=>{e.onHeightChange&&e.onHeightChange(i,!0)}),e.syncParentMinHeight&&(i.parentElement.style.minHeight=i.style.height)}renderFgSegs(e,r,i,s,a){let{harnessElRefs:l,moreElRefs:o,props:c,context:d}=this,u=i||s||a;return E(Ye,null,e.map(m=>{let{seg:h,hcoords:p,top:y}=m;if(Array.isArray(h)){let S=lo(yo(h));return E(W1,{key:"m:"+S,elRef:o.createRef(S),hiddenSegs:h,placement:m,dateProfile:c.dateProfile,nowDate:c.nowDate,todayRange:c.todayRange,isTimeScale:c.tDateProfile.isTimeScale,eventSelection:c.eventSelection,resourceId:c.resourceId,isForcedInvisible:r})}let f=h.eventRange.instance.instanceId,g=u||!!(!r[f]&&p&&y!==null),v=lu(p,d.isRtl);return E("div",{key:"e:"+f,ref:u?null:l.createRef(f),className:"fc-timeline-event-harness",style:Object.assign({visibility:g?"":"hidden",top:y||0},v)},E(fx,Object.assign({isTimeScale:c.tDateProfile.isTimeScale,seg:h,isDragging:i,isResizing:s,isDateSelecting:a,isSelected:f===c.eventSelection},Zn(h,c.todayRange,c.nowDate))))}))}}ou.addStateEquality({eventInstanceHeights:Qt,moreLinkHeights:Qt});function V1(t,e,r){if(!t.length||!e)return[];let i=Q1(r);return t.map(s=>({seg:s,hcoords:e.rangeToCoords(s),top:i[s.eventRange.instance.instanceId]}))}function Q1(t){let e={};for(let r of t){let{seg:i}=r;Array.isArray(i)||(e[i.eventRange.instance.instanceId]=r.top)}return e}class X1 extends Pn{constructor(){super(...arguments),this.slatsRef=ot(),this.state={coords:null},this.handeEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e}):this.context.unregisterInteractiveComponent(this)},this.handleCoords=e=>{this.setState({coords:e}),this.props.onSlatCoords&&this.props.onSlatCoords(e)}}render(){let{props:e,state:r,context:i}=this,{options:s}=i,{dateProfile:a,tDateProfile:l}=e,{unit:o,value:c}=Hr(l.slotDuration);return E("div",{className:"fc-timeline-body",ref:this.handeEl,style:{minWidth:e.tableMinWidth,height:e.clientHeight,width:e.clientWidth}},E(Rr,{unit:o,unitValue:c},(d,u)=>E(Ye,null,E(ux,{ref:this.slatsRef,dateProfile:a,tDateProfile:l,nowDate:d,todayRange:u,clientWidth:e.clientWidth,tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,onCoords:this.handleCoords,onScrollLeftRequest:e.onScrollLeftRequest}),E(ou,{dateProfile:a,tDateProfile:e.tDateProfile,nowDate:d,todayRange:u,nextDayThreshold:s.nextDayThreshold,businessHours:e.businessHours,eventStore:e.eventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,timelineCoords:r.coords,syncParentMinHeight:!0}),s.nowIndicator&&r.coords&&r.coords.isDateInRange(d)&&E("div",{className:"fc-timeline-now-indicator-container"},E(ns,{elClasses:["fc-timeline-now-indicator-line"],elStyle:au(r.coords.dateToCoord(d),i.isRtl),isAxis:!1,date:d})))))}queryHit(e,r,i,s){let l=this.slatsRef.current.positionToHit(e);return l?{dateProfile:this.props.dateProfile,dateSpan:l.dateSpan,rect:{left:l.left,right:l.right,top:0,bottom:s},dayEl:l.dayEl,layer:0}:null}}class Z1 extends Pn{constructor(){super(...arguments),this.buildTimelineDateProfile=Te(ox),this.scrollGridRef=ot(),this.state={slatCoords:null,slotCushionMaxWidth:null},this.handleSlatCoords=e=>{this.setState({slatCoords:e})},this.handleScrollLeftRequest=e=>{this.scrollGridRef.current.forceScrollLeft(0,e)},this.handleMaxCushionWidth=e=>{this.setState({slotCushionMaxWidth:Math.ceil(e)})}}render(){let{props:e,state:r,context:i}=this,{options:s}=i,a=!e.forPrint&&Ki(s),l=!e.forPrint&&fo(s),o=this.buildTimelineDateProfile(e.dateProfile,i.dateEnv,s,i.dateProfileGenerator),{slotMinWidth:c}=s,d=gx(o,c||this.computeFallbackSlotMinWidth(o)),u=[{type:"header",key:"header",isSticky:a,chunks:[{key:"timeline",content:m=>E(dx,{dateProfile:e.dateProfile,clientWidth:m.clientWidth,clientHeight:m.clientHeight,tableMinWidth:m.tableMinWidth,tableColGroupNode:m.tableColGroupNode,tDateProfile:o,slatCoords:r.slatCoords,onMaxCushionWidth:c?null:this.handleMaxCushionWidth})}]}
135,{type:"body",key:"body",liquid:!0,chunks:[{key:"timeline",content:m=>E(X1,Object.assign({},e,{clientWidth:m.clientWidth,clientHeight:m.clientHeight,tableMinWidth:m.tableMinWidth,tableColGroupNode:m.tableColGroupNode,tDateProfile:o,onSlatCoords:this.handleSlatCoords,onScrollLeftRequest:this.handleScrollLeftRequest}))}]}];return l&&u.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"timeline",content:$i}]}),E(Ui,{elClasses:["fc-timeline",s.eventOverlap===!1?"fc-timeline-overlap-disabled":""],viewSpec:i.viewSpec},E(su,{ref:this.scrollGridRef,liquid:!e.isHeightAuto&&!e.forPrint,forPrint:e.forPrint,collapsibleWidth:!1,colGroups:[{cols:d}],sections:u}))}computeFallbackSlotMinWidth(e){return Math.max(30,(this.state.slotCushionMaxWidth||0)/e.slotsPerLabel)}}function gx(t,e){return[{span:t.slotCnt,minWidth:e||1}]}var J1='.fc .fc-timeline-body{min-height:100%;position:relative;z-index:1}.fc .fc-timeline-slots{bottom:0;position:absolute;top:0;z-index:1}.fc .fc-timeline-slots>table{height:100%}.fc .fc-timeline-slot-minor{border-style:dotted}.fc .fc-timeline-slot-frame{align-items:center;display:flex;justify-content:center}.fc .fc-timeline-header-row-chrono .fc-timeline-slot-frame{justify-content:flex-start}.fc .fc-timeline-header-row:last-child .fc-timeline-slot-frame{overflow:hidden}.fc .fc-timeline-slot-cushion{padding:4px 5px;white-space:nowrap}.fc-direction-ltr .fc-timeline-slot{border-right:0!important}.fc-direction-rtl .fc-timeline-slot{border-left:0!important}.fc .fc-timeline-now-indicator-container{bottom:0;left:0;position:absolute;right:0;top:0;width:0;z-index:4}.fc .fc-timeline-now-indicator-arrow,.fc .fc-timeline-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;pointer-events:none;position:absolute;top:0}.fc .fc-timeline-now-indicator-arrow{border-left-color:transparent;border-right-color:transparent;border-width:6px 5px 0;margin:0 -6px}.fc .fc-timeline-now-indicator-line{border-width:0 0 0 1px;bottom:0;margin:0 -1px}.fc .fc-timeline-events{position:relative;width:0;z-index:3}.fc .fc-timeline-event-harness,.fc .fc-timeline-more-link{position:absolute;top:0}.fc-timeline-event{z-index:1}.fc-timeline-event.fc-event-mirror{z-index:2}.fc-timeline-event{align-items:center;border-radius:0;display:flex;font-size:var(--fc-small-font-size);margin-bottom:1px;padding:2px 1px;position:relative}.fc-timeline-event .fc-event-main{flex-grow:1;flex-shrink:1;min-width:0}.fc-timeline-event .fc-event-time{font-weight:700}.fc-timeline-event .fc-event-time,.fc-timeline-event .fc-event-title{padding:0 2px;white-space:nowrap}.fc-direction-ltr .fc-timeline-event.fc-event-end,.fc-direction-ltr .fc-timeline-more-link{margin-right:1px}.fc-direction-rtl .fc-timeline-event.fc-event-end,.fc-direction-rtl .fc-timeline-more-link{margin-left:1px}.fc-timeline-overlap-disabled .fc-timeline-event{margin-bottom:0;padding-bottom:5px;padding-top:5px}.fc-timeline-event:not(.fc-event-end):after,.fc-timeline-event:not(.fc-event-start):before{border-color:transparent #000;border-style:solid;border-width:5px;content:"";flex-grow:0;flex-shrink:0;height:0;margin:0 1px;opacity:.5;width:0}.fc-direction-ltr .fc-timeline-event:not(.fc-event-start):before,.fc-direction-rtl .fc-timeline-event:not(.fc-event-end):after{border-left:0}.fc-direction-ltr .fc-timeline-event:not(.fc-event-end):after,.fc-direction-rtl .fc-timeline-event:not(.fc-event-start):before{border-right:0}.fc-timeline-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;font-size:var(--fc-small-font-size);padding:1px}.fc-timeline-more-link-inner{display:inline-block;left:0;padding:2px;right:0}.fc .fc-timeline-bg{bottom:0;left:0;position:absolute;right:0;top:0;width:0;z-index:2}.fc .fc-timeline-bg .fc-non-business{z-index:1}.fc .fc-timeline-bg .fc-bg-event{z-index:2}.fc .fc-timeline-bg .fc-highlight{z-index:3}.fc .fc-timeline-bg-harness{bottom:0;position:absolute;top:0}';ta(J1);var eN=zn({name:"@fullcalendar/timeline",premiumReleaseDate:"2025-12-23",deps:[iu],initialView:"timelineDay",views:{timeline:{component:Z1,usesMinMaxTime:!0,eventResizableFromStart:!0},timelineDay:{type:"timeline",duration:{days:1}},timelineWeek:{type:"timeline",duration:{weeks:1}},timelineMonth:{type:"timeline",duration:{months:1}},timelineYear:{type:"timeline",duration:{years:1}}}});const yx="_fc:",tN={id:String,parentId:String,children:Q,title:String,businessHours:Q,extendedProps:Q,eventEditable:Boolean,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventConstraint:Q,eventOverlap:Boolean,eventAllow:Q,eventClassNames:Rc,eventBackgroun
135dColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String};function cu(t,e="",r,i){let{refined:s,extra:a}=Ji(t,tN),l={id:s.id||yx+mr(),parentId:s.parentId||e,title:s.title||"",businessHours:s.businessHours?Xg(s.businessHours,i):null,ui:Us({editable:s.eventEditable,startEditable:s.eventStartEditable,durationEditable:s.eventDurationEditable,constraint:s.eventConstraint,overlap:s.eventOverlap,allow:s.eventAllow,classNames:s.eventClassNames,backgroundColor:s.eventBackgroundColor,borderColor:s.eventBorderColor,textColor:s.eventTextColor,color:s.eventColor},i),extendedProps:Object.assign(Object.assign({},a),s.extendedProps)};if(Object.freeze(l.ui.classNames),Object.freeze(l.extendedProps),!r[l.id]){if(r[l.id]=l,s.children)for(let o of s.children)cu(o,l.id,r,i)}return l}function xx(t){return t.indexOf(yx)===0?"":t}class In{constructor(e,r){this._context=e,this._resource=r}setProp(e,r){let i=this._resource;this._context.dispatch({type:"SET_RESOURCE_PROP",resourceId:i.id,propName:e,propValue:r}),this.sync(i)}setExtendedProp(e,r){let i=this._resource;this._context.dispatch({type:"SET_RESOURCE_EXTENDED_PROP",resourceId:i.id,propName:e,propValue:r}),this.sync(i)}sync(e){let r=this._context,i=e.id;this._resource=r.getCurrentData().resourceStore[i],r.emitter.trigger("resourceChange",{oldResource:new In(r,e),resource:this,revert(){r.dispatch({type:"ADD_RESOURCE",resourceHash:{[i]:e}})}})}remove(){let e=this._context,r=this._resource,i=r.id;e.dispatch({type:"REMOVE_RESOURCE",resourceId:i}),e.emitter.trigger("resourceRemove",{resource:this,revert(){e.dispatch({type:"ADD_RESOURCE",resourceHash:{[i]:r}})}})}getParent(){let e=this._context,r=this._resource.parentId;return r?new In(e,e.getCurrentData().resourceStore[r]):null}getChildren(){let e=this._resource.id,r=this._context,{resourceStore:i}=r.getCurrentData(),s=[];for(let a in i)i[a].parentId===e&&s.push(new In(r,i[a]));return s}getEvents(){let e=this._resource.id,r=this._context,{defs:i,instances:s}=r.getCurrentData().eventStore,a=[];for(let l in s){let o=s[l],c=i[o.defId];c.resourceIds.indexOf(e)!==-1&&a.push(new pt(r,c,o))}return a}get id(){return xx(this._resource.id)}get title(){return this._resource.title}get eventConstraint(){return this._resource.ui.constraints[0]||null}get eventOverlap(){return this._resource.ui.overlap}get eventAllow(){return this._resource.ui.allows[0]||null}get eventBackgroundColor(){return this._resource.ui.backgroundColor}get eventBorderColor(){return this._resource.ui.borderColor}get eventTextColor(){return this._resource.ui.textColor}get eventClassNames(){return this._resource.ui.classNames}get extendedProps(){return this._resource.extendedProps}toPlainObject(e={}){let r=this._resource,{ui:i}=r,s=this.id,a={};return s&&(a.id=s),r.title&&(a.title=r.title),e.collapseEventColor&&i.backgroundColor&&i.backgroundColor===i.borderColor?a.eventColor=i.backgroundColor:(i.backgroundColor&&(a.eventBackgroundColor=i.backgroundColor),i.borderColor&&(a.eventBorderColor=i.borderColor)),i.textColor&&(a.eventTextColor=i.textColor),i.classNames.length&&(a.eventClassNames=i.classNames),Object.keys(r.extendedProps).length&&(e.collapseExtendedProps?Object.assign(a,r.extendedProps):a.extendedProps=r.extendedProps),a}toJSON(){return this.toPlainObject()}}function nN(t,e){let r=[];for(let i in t)r.push(new In(e,t[i]));return r}class vx extends oy{getKeyInfo(e){return Object.assign({"":{}},e.resourceStore)}getKeysForDateSpan(e){return[e.resourceId||""]}getKeysForEventDef(e){let r=e.resourceIds;return r.length?r:[""]}}const rN=kd("id,title");function iN(t,e){let{emitter:r}=e;r.hasHandlers("resourcesSet")&&r.trigger("resourcesSet",nN(t,e))}function sN(t){return{resource:new In(t.context,t.resource)}}function aN(t,e,r,i,s,a){let l=lN(t,i?-1:1,e,r),o=[];return Qa(l,o,i,[],0,s,a),o}function Qa(t,e,r,i,s,a,l){for(let o=0;o<t.length;o+=1){let c=t[o],d=c.group;if(d)if(r){let u=e.length,m=i.length;if(Qa(c.children,e,r,i.concat(0),s,a,l),u<e.length){let h=e[u],p=h.rowSpans=h.rowSpans.slice();p[m]=e.length-u}}else{let u=d.spec.field+":"+d.value,m=a[u]!=null?a[u]:l;e.push({id:u,group:d,isExpanded:m}),m&&Qa(c.children,e,r,i,s+1,a,l)}else if(c.resource){let u=c.resource.id,m=a[u]!=null?a[u]:l;e.push({id:u,rowSpans:i,depth:s,isExpanded:m,hasChildren:!!c.children.length,resource:c.resource,resourceFields:c.resourceFields}),m&&Qa(c.children,e,r,i,s+1,a,l)}}}function lN(t,e,r,i){let s=oN(t,i),a=[];for(let l in s){let o=s[l];o.resource.parentId||bx(o,a,r,0,e,i)}return a}function oN(t,e){let r={};for(let i in t){let s=t[i];r[i]={resource:s,resourceFields:jx(s),children:[]}}for(let i in t){let s=t[i];if(s.parentId){let a=r[s.parentId];a&&_x(r[i],a.children,e)}}return r}function bx(t,e,r,i,s,a){if(r.length&&(s===-1||i<=s)){let l=cN(t,e,r[0]);bx(t,l.children,r.slice(1),i+1,s,a)}else _x(t,e,a)}function cN(t,e,r){let i=t.resourceFields[r.field],s,a;
135if(r.order)for(a=0;a<e.length;a+=1){let l=e[a];if(l.group){let o=Tg(i,l.group.value)*r.order;if(o===0){s=l;break}else if(o<0)break}}else for(a=0;a<e.length;a+=1){let l=e[a];if(l.group&&i===l.group.value){s=l;break}}return s||(s={group:{value:i,spec:r},children:[]},e.splice(a,0,s)),s}function _x(t,e,r){let i;for(i=0;i<e.length&&!(Ig(e[i].resourceFields,t.resourceFields,r)>0);i+=1);e.splice(i,0,t)}function jx(t){let e=Object.assign(Object.assign(Object.assign({},t.extendedProps),t.ui),t);return delete e.ui,delete e.extendedProps,e}function dN(t,e){return t.spec===e.spec&&t.value===e.value}function uN(t,e,r){let i=e.dateSpan.resourceId,s=r.dateSpan.resourceId;i&&s&&i!==s&&(t.resourceMutation={matchResourceId:i,setResourceId:s})}function mN(t,e,r){let i=e.resourceMutation;if(i&&kx(t,r)){let s=t.resourceIds.indexOf(i.matchResourceId);if(s!==-1){let a=t.resourceIds.slice();a.splice(s,1),a.indexOf(i.setResourceId)===-1&&a.push(i.setResourceId),t.resourceIds=a}}}function kx(t,e){let{resourceEditable:r}=t;if(r==null){let i=t.sourceId&&e.getCurrentData().eventSources[t.sourceId];i&&(r=i.extendedProps.resourceEditable),r==null&&(r=e.options.eventResourceEditable,r==null&&(r=e.options.editable))}return r}function hN(t,e){let{resourceMutation:r}=t;if(r){let{calendarApi:i}=e;return{oldResource:i.getResourceById(r.matchResourceId),newResource:i.getResourceById(r.setResourceId)}}return{oldResource:null,newResource:null}}class pN{constructor(){this.filterResources=Te(fN)}transform(e,r){return r.viewSpec.optionDefaults.needsResourceData?{resourceStore:this.filterResources(r.resourceStore,r.options.filterResourcesWithEvents,r.eventStore,r.dateProfile.activeRange),resourceEntityExpansions:r.resourceEntityExpansions}:null}}function fN(t,e,r,i){if(e){let s=gN(r.instances,i),a=yN(s,r.defs);return Object.assign(a,xN(a,t)),Sr(t,(l,o)=>a[o])}return t}function gN(t,e){return Sr(t,r=>
135oo(r.range,e))}function yN(t,e){let r={};for(let i in t){let s=t[i];for(let a of e[s.defId].resourceIds)r[a]=!0}return r}function xN(t,e){let r={};for(let i in t){let s;for(;(s=e[i])&&(i=s.parentId,i);)r[i]=!0}return r}function vN(t,e,r,i){if(!t){let s=i.getCurrentData();if(s.viewSpecs[s.currentViewType].optionDefaults.needsResourceData&&kx(e,i))return!0}return t}class bN{constructor(){this.buildResourceEventUis=Te(_N,Qt),this.injectResourceEventUis=Te(jN)}transform(e,r){return r.viewSpec.optionDefaults.needsResourceData?null:{eventUiBases:this.injectResourceEventUis(e.eventUiBases,e.eventStore.defs,this.buildResourceEventUis(r.resourceStore))}}}function _N(t){return dn(t,e=>e.ui)}function jN(t,e,r){return dn(t,(i,s)=>s?kN(i,e[s],r):i)}function kN(t,e,r){let i=[];for(let s of e.resourceIds)r[s]&&i.unshift(r[s]);return i.unshift(t),Nd(i)}let du=[];function uu(t){du.push(t)}function Sx(t){return du[t]}function SN(){return du}const EN={id:String,resources:Q,url:String,method:String,startParam:String,endParam:String,timeZoneParam:String,extraParams:Q};function wN(t){let e;if(typeof t=="string"?e={url:t}:typeof t=="function"||Array.isArray(t)?e={resources:t}:typeof t=="object"&&t&&(e=t),e){let{refined:r,extra:i}=Ji(e,EN);DN(i);let s=CN(r);if(s)return{_raw:t,sourceId:mr(),sourceDefId:s.sourceDefId,meta:s.meta,publicId:r.id||"",isFetching:!1,latestFetchId:"",fetchRange:null}}return null}function CN(t){let e=SN();for(let r=e.length-1;r>=0;r-=1){let s=e[r].parseMeta(t);if(s)return{meta:s,sourceDefId:r}}return null}function DN(t){for(let e in t)console.warn(`Unknown resource prop '${e}'`)}function RN(t,e,r){let{options:i,dateProfile:s}=r;if(!t||!e)return rp(i.initialResources||i.resources,s.activeRange,i.refetchResourcesOnNavigate,r);switch(e.type){case"RESET_RESOURCE_SOURCE":return rp(e.resourceSourceInput,s.activeRange,i.refetchResourcesOnNavigate,r);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return IN(t,s.activeRange,i.refetchResourcesOnNavigate,r);case"RECEIVE_RESOURCES":case"RECEIVE_RESOURCE_ERROR":return AN(t,e.fetchId,e.fetchRange);case"REFETCH_RESOURCES":return mu(t,s.activeRange,r);default:return t}}function rp(t,e,r,i){if(t){let s=wN(t);return s=mu(s,r?e:null,i),s}return null}function IN(t,e,r,i){return r&&!TN(t)&&(!t.fetchRange||!Hg(t.fetchRange,e))?mu(t,e,i):t}function TN(t){return!!Sx(t.sourceDefId).ignoreRange}function mu(t,e,r){let i=Sx(t.sourceDefId),s=mr();return i.fetch({resourceSource:t,range:e,context:r},a=>
135{r.dispatch({type:"RECEIVE_RESOURCES",fetchId:s,fetchRange:e,rawResources:a.rawResources})},a=>{r.dispatch({type:"RECEIVE_RESOURCE_ERROR",fetchId:s,fetchRange:e,error:a})}),Object.assign(Object.assign({},t),{isFetching:!0,latestFetchId:s})}function AN(t,e,r){return e===t.latestFetchId?Object.assign(Object.assign({},t),{isFetching:!1,fetchRange:r}):t}function MN(t,e,r,i){if(!t||!e)return{};switch(e.type){case"RECEIVE_RESOURCES":return NN(t,e.rawResources,e.fetchId,r,i);case"ADD_RESOURCE":return PN(t,e.resourceHash);case"REMOVE_RESOURCE":return zN(t,e.resourceId);case"SET_RESOURCE_PROP":return ON(t,e.resourceId,e.propName,e.propValue);case"SET_RESOURCE_EXTENDED_PROP":return LN(t,e.resourceId,e.propName,e.propValue);default:return t}}function NN(t,e,r,i,s){if(i.latestFetchId===r){let a={};for(let l of e)cu(l,"",a,s);return a}return t}function PN(t,e){return Object.assign(Object.assign({},t),e)}function zN(t,e){let r=Object.assign({},t);delete r[e];for(let i in r)r[i].parentId===e&&(r[i]=Object.assign(Object.assign({},r[i]),{parentId:""}));return r}function ON(t,e,r,i){let s=t[e];return s?Object.assign(Object.assign({},t),{[e]:Object.assign(Object.assign({},s),{[r]:i})}):t}function LN(t,e,r,i){let s=t[e];return s?Object.assign(Object.assign({},t),{[e]:Object.assign(Object.assign({},s),{extendedProps:Object.assign(Object.assign({},s.extendedProps),{[r]:i})})}):t}function FN(t,e){if(!t||!e)return{};switch(e.type){case"SET_RESOURCE_ENTITY_EXPANDED":return Object.assign(Object.assign({},t),{[e.id]:e.isExpanded});default:return t}}function BN(t,e,r){let i=RN(t&&t.resourceSource,e,r),s=MN(t&&t.resourceStore,e,i,r),a=FN(t&&t.resourceEntityExpansions,e);return{resourceSource:i,resourceStore:s,resourceEntityExpansions:a}}const YN={resourceId:String,resourceIds:Q,resourceEditable:Boolean};function HN(t){return{resourceIds:UN(t.resourceIds).concat(t.resourceId?[t.resourceId]:[]),resourceEditable:t.resourceEditable}}function UN(t){return(t||[]).map(e=>String(e))}function qN(t,e){let r=t.dateSpan.resourceId,i=e.dateSpan.resourceId;return r&&i?{resourceId:r}:null}ts.prototype.addResource=function(t,e=!0){let r=this.getCurrentData(),i,s;t instanceof In?(s=t._resource,i={[s.id]:s}):(i={},s=cu(t,"",i,r)),this.dispatch({type:"ADD_RESOURCE",resourceHash:i}),e&&this.trigger("_scrollRequest",{resourceId:s.id});let a=new In(r,s);return r.emitter.trigger("resourceAdd",{resource:a,revert:()=>{this.dispatch({type:"REMOVE_RESOURCE",resourceId:s.id})}}),a};ts.prototype.getResourceById=function(t){t=String(t);let e=this.getCurrentData();if(e.resourceStore){let r=e.resourceStore[t];if(r)return new In(e,r)}return null};ts.prototype.getResources=function(){let t=this.getCurrentData(),{resourceStore:e}=t,r=[];if(e)for(let i in e)r.push(new In(t,e[i]));return r};ts.prototype.getTopLevelResources=function(){let t=this.getCurrentData(),{resourceStore:e}=t,r=[];if(e)for(let i in e)e[i].parentId||r.push(new In(t,e[i]));return r};ts.prototype.refetchResources=function(){this.dispatch({type:"REFETCH_RESOURCES"})};function $N(t,e){return t.resourceId?{resource:e.calendarApi.getResourceById(t.resourceId)}:{}}function KN(t,e){return t.resourceId?{resource:e.calendarApi.getResourceById(t.resourceId)}:{}}function GN(t,e){let i=new vx().splitProps(Object.assign(Object.assign({},t),{resourceStore:e.getCurrentData().resourceStore}));for(let s in i){let a=i[s];if(s&&i[""]&&(a=Object.assign(Object.assign({},a),{eventStore:mo(i[""].eventStore,a.eventStore),eventUiBases:Object.assign(Object.assign({},i[""].eventUiBases),a.eventUiBases)})),!jy(a,e,{resourceId:s},WN.bind(null,s)))return!1}return!0}function WN(t,e){return Object.assign(Object.assign({},e),{constraints:VN(t,e.constraints)})}function VN(t,e){return e.map(r=>{let i=r.defs;if(i)for(let s in i){let a=i[s].resourceIds;if(a.length&&a.indexOf(t)===-1)return!1}return r})}function QN(t){return t.resourceId?{resourceId:t.resourceId}:{}}const XN={resources:ZN};function ZN(t,e){e.getCurrentData().resourceSource._raw!==t&&e.dispatch({type:"RESET_RESOURCE_SOURCE",resourceSourceInput:t})}const JN={initialResources:Q,resources:Q,eventResourceEditable:Boolean,refetchResourcesOnNavigate:Boolean,resourceOrder:kd,filterResourcesWithEvents:Boolean,resourceGroupField:String,resourceAreaWidth:Q,resourceAreaColumns:Q,resourcesInitiallyExpanded:Boolean,datesAboveResources:Boolean,needsResourceData:Boolean,resourceAreaHeaderClassNames:Q,resourceAreaHeaderContent:Q,resourceAreaHeaderDidMount:Q,resourceAreaHeaderWillUnmount:Q,resourceGroupLabelClassNames:Q,resourceGroupLabelContent:Q,resourceGroupLabelDid
135Mount:Q,resourceGroupLabelWillUnmount:Q,resourceLabelClassNames:Q,resourceLabelContent:Q,resourceLabelDidMount:Q,resourceLabelWillUnmount:Q,resourceLaneClassNames:Q,resourceLaneContent:Q,resourceLaneDidMount:Q,resourceLaneWillUnmount:Q,resourceGroupLaneClassNames:Q,resourceGroupLaneContent:Q,resourceGroupLaneDidMount:Q,resourceGroupLaneWillUnmount:Q},eP={resourcesSet:Q,resourceAdd:Q,resourceChange:Q,resourceRemove:Q};pt.prototype.getResources=function(){let{calendarApi:t}=this._context;return this._def.resourceIds.map(e=>t.getResourceById(e))};pt.prototype.setResources=function(t){let e=[];for(let r of t){let i=null;typeof r=="string"?i=r:typeof r=="number"?i=String(r):r instanceof In?i=r.id:console.warn("unknown resource type: "+r),i&&e.push(i)}this.mutate({standardProps:{resourceIds:e}})};uu({ignoreRange:!0,parseMeta(t){return Array.isArray(t.resources)?t.resources:null},fetch(t,e){e({rawResources:t.resourceSource.meta})}});uu({parseMeta(t){return typeof t.resources=="function"?t.resources:null},fetch(t,e,r){const i=t.context.dateEnv,s=t.resourceSource.meta,a=t.range?{start:i.toDate(t.range.start),end:i.toDate(t.range.end),startStr:i.formatIso(t.range.start),endStr:i.formatIso(t.range.end),timeZone:i.timeZone}:{};sy(s.bind(null,a),l=>e({rawResources:l}),r)}});uu({parseMeta(t){return t.url?{url:t.url,method:(t.method||"GET").toUpperCase(),extraParams:t.extraParams}:null},fetch(t,e,r){const i=t.resourceSource.meta,s=tP(i,t.range,t.context);ay(i.method,i.url,s).then(([a,l])=>{e({rawResources:a,response:l})},r)}});function tP(t,e,r){let{dateEnv:i,options:s}=r,a,l,o,c,d={};return e&&(a=t.startParam,a==null&&(a=s.startParam),l=t.endParam,l==null&&(l=s.endParam),o=t.timeZoneParam,o==null&&(o=s.timeZoneParam),d[a]=i.formatIso(e.start),d[l]=i.formatIso(e.end),i.timeZone!=="local"&&(d[o]=i.timeZone)),typeof t.extraParams=="function"?c=t.extraParams():c=t.extraParams||{},Object.assign(d,c),d}var nP=zn({name:"@fullcalendar/resource",premiumReleaseDate:"2025-12-23",deps:[iu],reducers:[BN],isLoadingFuncs:[t=>t.resourceSource&&t.resourceSource.isFetching],eventRefiners:YN,eventDefMemberAdders:[HN],isDraggableTransformers:[vN],eventDragMutationMassagers:[uN],eventDefMutationAppliers:[mN],dateSelectionTransformers:[qN],datePointTransforms:[$N],dateSpanTransforms:[KN],viewPropsTransformers:[pN,bN],isPropsValid:GN,externalDefTransforms:[QN],eventDropTransformers:[hN],optionChangeHandlers:XN,optionRefiners:JN,listenerRefiners:eP,propSetHandlers:{resourceStore:iN}});function Ex({depth:t,hasChildren:e,isExpanded:r,onExpanderClick:i}){let s=[];for(let l=0;l<t;l+=1)s.push(E("span",{className:"fc-icon"}));let a=["fc-icon"];return e&&(r?a.push("fc-icon-minus-square"):a.push("fc-icon-plus-square")),s.push(E("span",{className:"fc-datagrid-expander"+(e?"":" fc-datagrid-expander-placeholder"),onClick:i},E("span",{className:a.join(" ")}))),E(Ye,{},...s)}class rP extends Ne{constructor(){super(...arguments),this.refineRenderProps=ui(sP),this.onExpanderClick=e=>{let{props:r}=this;r.hasChildren&&this.context.dispatch({type:"SET_RESOURCE_ENTITY_EXPANDED",id:r.resource.id,isExpanded:!r.isExpanded})}}render(){let{props:e,context:r}=this,{colSpec:i}=e,s=this.refineRenderProps({resource:e.resource,fieldValue:e.fieldValue,context:r});return E(Dt,{elTag:"td",elClasses:["fc-datagrid-cell","fc-resource"],elAttrs:{role:"gridcell","data-resource-id":e.resource.id},renderProps:s,generatorName:i.isMain?"resourceLabelContent":void 0,customGenerator:i.cellContent,defaultGenerator:iP,classNameGenerator:i.cellClassNames,didMount:i.cellDidMount,willUnmount:i.cellWillUnmount},a=>E("div",{className:"fc-datagrid-cell-frame",style:{height:e.innerHeight}},E("div",{className:"fc-datagrid-cell-cushion fc-scrollgrid-sync-inner"},i.isMain&&E(Ex,{depth:e.depth,hasChildren:e.hasChildren,isExpanded:e.isExpanded,onExpanderClick:this.onExpanderClick}),E(a,{elTag:"span",elClasses:["fc-datagrid-cell-main"]}))))}}function iP(t){return t.fieldValue||E(Ye,null,"Â ")}function sP(t){return{resource:new In(t.context,t.resource),fieldValue:t.fieldValue,view:t.context.viewApi}}class aP extends Ne{render(){let{props:e,context:r}=this,{colSpec:i}=e,s={groupValue:e.fieldValue,view:r.viewApi};return E(Dt,{elTag:"td",elClasses:["fc-datagrid-cell","fc-resource-group"],elAttrs:{role:"gridcell",rowSpan:e.rowSpan},renderProps:s,generatorName:"resourceGroupLabelContent",customGenerator:i.cellContent,defaultGenerator:lP,classNameGenerator:i.cellClassNames,didMount:i.cellDidMount,willUnmount:i.cellWillUnmount},a=>E("div",{className:"fc-datagrid-cell-frame fc-datagrid-cell-frame-liquid"},E(a,{elTag:"div",elClasses:["fc-datagrid-cell-cushion","fc-sticky"]})))}}function lP(t){return t.groupValue||E(Ye,null,"Â ")}class wx extends Ne{render(){let{props:e}=this,{resource:r,rowSpans:i,depth:s}=e,a=jx(r);return E("tr",{role:"row"},e.colSpecs.map((l,o)=>{let c=i[o];if(c===0)return null;c==null&&(c=1);let d=l.field?a[l.field]:r.title||xx(r.id);return c>1?E(aP,{key:o,colSpec:l,fieldValue:d,rowSpan:c}):E(rP,{key:o,colSpec:l,resource:r,fieldValue:d,depth:s,hasChildren:e.hasChildren,isExpanded:e.isExpanded,innerHeight:e.innerHe
135ight})}))}}wx.addPropsEquality({rowSpans:Mn});class Cx extends Ne{constructor(){super(...arguments),this.innerInnerRef=ot(),this.onExpanderClick=()=>{let{props:e}=this;this.context.dispatch({type:"SET_RESOURCE_ENTITY_EXPANDED",id:e.id,isExpanded:!e.isExpanded})}}render(){let{props:e,context:r}=this,i={groupValue:e.group.value,view:r.viewApi},s=e.group.spec;return E("tr",{role:"row"},E(Dt,{elTag:"th",elClasses:["fc-datagrid-cell","fc-resource-group",r.theme.getClass("tableCellShaded")],elAttrs:{role:"columnheader",scope:"colgroup",colSpan:e.spreadsheetColCnt},renderProps:i,generatorName:"resourceGroupLabelContent",customGenerator:s.labelContent,defaultGenerator:oP,classNameGenerator:s.labelClassNames,didMount:s.labelDidMount,willUnmount:s.labelWillUnmount},a=>E("div",{className:"fc-datagrid-cell-frame",style:{height:e.innerHeight}},E("div",{className:"fc-datagrid-cell-cushion fc-scrollgrid-sync-inner",ref:this.innerInnerRef},E(Ex,{depth:0,hasChildren:!0,isExpanded:e.isExpanded,onExpanderClick:this.onExpanderClick}),E(a,{elTag:"span",elClasses:["fc-datagrid-cell-main"]})))))}}Cx.addPropsEquality({group:dN});function oP(t){return t.groupValue||E(Ye,null,"Â ")}const cP=20;class dP extends Ne{constructor(){super(...arguments),this.resizerElRefs=new Wt(this._handleColResizerEl.bind(this)),this.colDraggings={}}render(){let{colSpecs:e,superHeaderRendering:r,rowInnerHeights:i}=this.props,s={view:this.context.viewApi},a=[];if(i=i.slice(),r){let o=i.shift();a.push(E("tr",{key:"row-super",role:"row"},E(Dt,{elTag:"th",elClasses:["fc-datagrid-cell","fc-datagrid-cell-super"],elAttrs:{role:"columnheader",scope:"colgroup",colSpan:e.length},renderProps:s,generatorName:"resourceAreaHeaderContent",customGenerator:r.headerContent,defaultGenerator:r.headerDefault,classNameGenerator:r.headerClassNames,didMount:r.headerDidMount,willUnmount:r.headerWillUnmount},c=>E("div",{className:"fc-datagrid-cell-frame",style:{height:o}},E(c,{elTag:"div",elClasses:["fc-datagrid-cell-cushion","fc-scrollgrid-sync-inner"]})))))}let l=i.shift();return a.push(E("tr",{key:"row",role:"row"},e.map((o,c)=>{let d=c===e.length-1;return E(Dt,{key:c,elTag:"th",elClasses:["fc-datagrid-cell"],elAttrs:{role:"columnheader"},renderProps:s,generatorName:"resourceAreaHeaderContent",customGenerator:o.headerContent,defaultGenerator:o.headerDefault,classNameGenerator:o.headerClassNames,didMount:o.headerDidMount,willUnmount:o.headerWillUnmount},u=>E("div",{className:"fc-datagrid-cell-frame",style:{height:l}},E("div",{className:"fc-datagrid-cell-cushion fc-scrollgrid-sync-inner"},o.isMain&&E("span",{className:"fc-datagrid-expander fc-datagrid-expander-placeholder"},E("span",{className:"fc-icon"})),E(u,{elTag:"span",elClasses:["fc-datagrid-cell-main"]})),!d&&E("div",{className:"fc-datagrid-cell-resizer",ref:this.resizerElRefs.createRef(c)})))}))),E(Ye,null,a)}_handleColResizerEl(e,r){let{colDraggings:i}=this;if(e){let s=this.initColResizing(e,parseInt(r,10));s&&(i[r]=s)}else{let s=i[r];s&&(s.destroy(),delete i[r])}}initColResizing(e,r){let{pluginHooks:i,isRtl:s}=this.context,{onColWidthChange:a}=this.props,l=i.elementDraggingImpl;if(l){let o=new l(e),c,d;return o.emitter.on("dragstart",()=>{d=Zi(Ut(e,"tr"),"th").map(m=>m.getBoundingClientRect().width),c=d[r]}),o.emitter.on("dragmove",u=>{d[r]=Math.max(c+u.deltaX*(s?-1:1),cP),a&&a(d.slice())}),o.setAutoScrollEnabled(!1),o}return null}}class uP extends Ne{constructor(){super(...arguments),this.refineRenderProps=ui(sN),this.handleHeightChange=(e,r)=>{this.props.onHeightChange&&this.props.onHeightChange(Ut(e,"tr"),r)}}render(){let{props:e,context:r}=this,{options:i}=r,s=this.refineRenderProps({resource:e.resource,context:r});return E("tr",{ref:e.elRef},E(Dt,{elTag:"td",elClasses:["fc-timeline-lane","fc-resource"],elAttrs:{"data-resource-id":e.resource.id},renderProps:s,generatorName:"resourceLaneContent",customGenerator:i.resourceLaneContent,classNameGenerator:i.resourceLaneClassNames,didMount:i.resourceLaneDidMount,willUnmount:i.resourceLaneWillUnmount},a=>E("div",{className:"fc-timeline-lane-frame",style:{height:e.innerHeight}},E(a,{elTag:"div",elClasses:["fc-timeline-lane-misc"]}),E(ou,{dateProfile:e.dateProfile,tDateProfile:e.tDateProfile,nowDate:e.nowDate,todayRange:e.todayRange,nextDayThreshold:e.nextDayThreshold,businessHours:e.businessHours,eventStore:e.eventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,timelineCoords:e.timelineCoords,onHeightChange:this.handleHeightChange,resourceId:e.resource.id}))))}}class mP extends Ne{render(){let{props:e,context:r}=this,{renderHooks:i}=e,s={groupValue:e.groupValue,view:r.viewApi};return E("tr",{ref:e.elRef},E(Dt,{elTag:"td",elRef:e.elRef,elClasses:["fc-timeline-lane","fc-resource-group",r.theme.getClass("tableCellShaded")],renderProps:s,generatorName:"resourceGroupLaneContent",customGenerator:i.laneContent,classNameGenerator:i.laneClassNames,didMount:i.laneDidMount,willUnmount:i.laneWillUnmount},a=>
135E(a,{elTag:"div",elStyle:{height:e.innerHeight}})))}}class hP extends Ne{render(){let{props:e,context:r}=this,{rowElRefs:i,innerHeights:s}=e;return E("tbody",null,e.rowNodes.map((a,l)=>{if(a.group)return E(mP,{key:a.id,elRef:i.createRef(a.id),groupValue:a.group.value,renderHooks:a.group.spec,innerHeight:s[l]||""});if(a.resource){let o=a.resource;return E(uP,Object.assign({key:a.id,elRef:i.createRef(a.id)},e.splitProps[o.id],{resource:o,dateProfile:e.dateProfile,tDateProfile:e.tDateProfile,nowDate:e.nowDate,todayRange:e.todayRange,nextDayThreshold:r.options.nextDayThreshold,businessHours:o.businessHours||e.fallbackBusinessHours,innerHeight:s[l]||"",timelineCoords:e.slatCoords,onHeightChange:e.onRowHeightChange}))}return null}))}}class pP extends Ne{constructor(){super(...arguments),this.rootElRef=ot(),this.rowElRefs=new Wt}render(){let{props:e,context:r}=this;return E("table",{ref:this.rootElRef,"aria-hidden":!0,className:"fc-scrollgrid-sync-table "+r.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth,height:e.minHeight}},E(hP,{rowElRefs:this.rowElRefs,rowNodes:e.rowNodes,dateProfile:e.dateProfile,tDateProfile:e.tDateProfile,nowDate:e.nowDate,todayRange:e.todayRange,splitProps:e.splitProps,fallbackBusinessHours:e.fallbackBusinessHours,slatCoords:e.slatCoords,innerHeights:e.innerHeights,onRowHeightChange:e.onRowHeightChange}))}componentDidMount(){this.updateCoords()}componentDidUpdate(){this.updateCoords()}componentWillUnmount(){this.props.onRowCoords&&this.props.onRowCoords(null)}updateCoords(){let{props:e}=this;e.onRowCoords&&e.clientWidth!==null&&this.props.onRowCoords(new Er(this.rootElRef.current,fP(this.rowElRefs.currentMap,e.rowNodes),!1,!0))}}function fP(t,e){return e.map(r=>t[r.id])}class gP extends Pn{constructor(){super(...arguments),this.computeHasResourceBusinessHours=Te(yP),this.resourceSplitter=new vx,this.bgSlicer=new px,this.slatsRef=ot(),this.state={slatCoords:null},this.handleEl=e=>{e?this.context.registerInteractiveComponent(this,{el:e}):this.context.unregisterInteractiveComponent(this)},this.handleSlatCoords=e=>{this.setState({slatCoords:e}),this.props.onSlatCoords&&this.props.onSlatCoords(e)},this.handleRowCoords=e=>{this.rowCoords=e,this.props.onRowCoords&&this.props.onRowCoords(e)}}render(){let{props:e,state:r,context:i}=this,{dateProfile:s,tDateProfile:a}=e,{unit:l,value:o}=Hr(a.slotDuration),c=this.computeHasResourceBusinessHours(e.rowNodes),d=this.resourceSplitter.splitProps(e),u=d[""],m=this.bgSlicer.sliceProps(u,s,a.isTimeScale?null:e.nextDayThreshold,i,s,i.dateProfileGenerator,a,i.dateEnv),h=r.slatCoords&&r.slatCoords.dateProfile===e.dateProfile?r.slatCoords:null;return E("div",{ref:this.handleEl,className:["fc-timeline-body",e.expandRows?"fc-timeline-body-expandrows":""].join(" "),style:{minWidth:e.tableMinWidth}},E(Rr,{unit:l,unitValue:o},(p,y)=>E(Ye,null,E(ux,{ref:this.slatsRef,dateProfile:s,tDateProfile:a,nowDate:p,todayRange:y,clientWidth:e.clientWidth,tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,onCoords:this.handleSlatCoords,onScrollLeftRequest:e.onScrollLeftRequest}),E(hx,{businessHourSegs:c?null:m.businessHourSegs,bgEventSegs:m.bgEventSegs,timelineCoords:h,eventResizeSegs:m.eventResize?m.eventResize.segs:[],dateSelectionSegs:m.dateSelectionSegs,nowDate:p,todayRange:y}),E(pP,{rowNodes:e.rowNodes,dateProfile:s,tDateProfile:e.tDateProfile,nowDate:p,todayRange:y,splitProps:d,fallbackBusinessHours:c?e.businessHours:null,clientWidth:e.clientWidth,minHeight:e.expandRows?e.clientHeight:"",tableMinWidth:e.tableMinWidth,innerHeights:e.rowInnerHeights,slatCoords:h,onRowCoords:this.handleRowCoords,onRowHeightChange:e.onRowHeightChange}),i.options.nowIndicator&&h&&h.isDateInRange(p)&&E("div",{className:"fc-timeline-now-indicator-container"},E(ns,{elClasses:["fc-timeline-now-indicator-line"],elStyle:au(h.dateToCoord(p),i.isRtl),isAxis:!1,date:p})))))}queryHit(e,r){let i=this.rowCoords,s=i.topToIndex(r);if(s!=null){let a=this.props.rowNodes[s].resource;if(a){let l=this.slatsRef.current.positionToHit(e);if(l)return{dateProfile:this.props.dateProfile,dateSpan:{range:l.dateSpan.range,allDay:l.dateSpan.allDay,resourceId:a.id},rect:{left:l.left,right:l.right,top:i.tops[s],bottom:i.bottoms[s]},dayEl:l.dayEl,layer:0}}}return null}}function yP(t){for(let e of t){let r=e.resource;if(r&&r.businessHours)return!0}return!1}const ip=30;class xP extends Ne{constructor(){super(...arguments),this.scrollGridRef=ot(),this.timeBodyScrollerElRef=ot(),this.spreadsheetHeaderChunkElRef=ot(),this.rootElRef=ot(),this.ensureScrollGridResizeId=0,this.state={resourceAreaWidthOverride:null},this.ensureScrollGridResize=()=>{this.ensureScrollGridResizeId&&clearTimeout(this.ensureScrollGridResizeId),this.ensureScrollGridResizeId=setTimeout(()=>{this.scrollGridRef.current.handleSizing(!1)},er.SCROLLGRID_RESIZE_INTERVAL+1)}}render(){let{props:e,state:r,context:i}=this,{options:s}=i,a=!e.forPrint&&Ki(s),l=!e.forPrint&&fo(s),o=[{type:"header",key:"header",syncRowHeights:!0,isSticky:a,chunks:[{key:"datagrid",elRef:this.spreadsheetHeaderChunkElRef,tableClassName:"fc-datagrid-header",rowContent:e.spreadsheetHeaderRows},{key:"divider",outerContent:E("td",{role:"presentation",className:"fc-resource-timeline-divider "+i.theme.getClass("tableCellShaded")})},{key:"timeline",content:e.timeHeaderContent}]},{type:"body",key:"body",syncRowHeights:!0,liquid:!0,expandRows:!!s.expandRows,chunks:[{key:"datagrid",tableClassName:"fc-datagrid-body",rowContent:e.spreadsheetBodyRows},{key:"divider",outerContent:E("td",{role:"presentation",className:"fc-resource-timeline-divider "+i.theme.getClass("tableCellShaded")})},{key:"timeline",scrollerElRef:this.timeBodyScrollerElRef,content:e.timeBodyContent}]}];l&&o.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"datagrid",content:$i},{key:"divider",outerContent:E("td",{role:"presentation",className:"fc-resource-timeline-divider "+i.theme.getClass("tableCellShaded")})},{key:"timeline",content:$i}]});let c=r.resourceAreaWidthOverride!=null?r.resourceAreaWidthOverride:s.resourceAreaWidth;return E(su,{ref:this.scrollGridRef,elRef:this.rootElRef,liquid:!e.isHeightAuto&&!e.forPrint,forPrint:e.forPrint,collapsibleWidth:!1,colGroups:[{cols:e.spreadsheetCols,width:c},{cols:[]},{cols:e.timeCols}],sections:o})}forceTimeScroll(e){this.scrollGridRef.current.forceScrollLeft(2,e)}forceResourceScroll(e){this.scrollGridRef.current.forceScrollTop(1,e)}getResourceScroll(){return this.timeBodyScrollerElRef.current.scrollTop}componentDidMount(){this.initSpreadsheetResizing()}componentWillUnmount(){this.destroySpreadsheetResizing()}initSpreadsheetResizing(){let{isRtl:e,pluginHooks:r}=this.context,i=r.elementDraggingImpl,s=this.spreadsheetHeaderChunkElRef.current;if(i){let a=this.rootElRef.current,l=this.spreadsheetResizerDragging=new i(a,".fc-resource-timeline-divider"),o,c;l.emitter.on("dragstart",()=>{o=s.getBoundingClientRect().width,c=a.getBoundingClientRect().width}),l.emitter.on("dragmove",d=>{let u=o+d.deltaX*(e?-1:1);u=Math.max(u,ip),u=Math.min(u,c-ip),this.setState({resourceAreaWidthOverride:u},this.ensureScrollGridResize)}),l.setAutoScrollEnabled(!1)}}destroySpreadsheetResizing(){this.spreadsheetResizerDragging&&this.spreadsheetResizerDragging.destroy()}}class Dx extends Ne{constructor(e,r){super(e,r),this.processColOptions=Te(jP),this.buildTimelineDateProfile=Te(ox),this.hasNesting=Te(_P),this.buildRowNodes=Te(aN),this.layoutRef=ot(),this.rowNodes=[],this.renderedRowNodes=[],this.buildRowIndex=Te(vP),this.handleSlatCoords=i=>{this.setState({slatCoords:i})},this.handleRowCoords=i=>{this.rowCoords=i,this.scrollResponder.update(!1)},this.handleMaxCushionWidth=i=>{this.setState({slotCushionMaxWidth:Math.ceil(i)})},this.handleScrollLeftRequest=i=>{this.layoutRef.current.forceTimeScroll(i)},this.handleScrollRequest=i=>{let{rowCoords:s}=this,a=this.layoutRef.current,l=i.rowId||i.resourceId;
135if(s){if(l){let c=this.buildRowIndex(this.renderedRowNodes)[l];if(c!=null){let d=i.fromBottom!=null?s.bottoms[c]-i.fromBottom:s.tops[c];a.forceResourceScroll(d)}}return!0}return null},this.handleColWidthChange=i=>{this.setState({spreadsheetColWidths:i})},this.state={resourceAreaWidth:r.options.resourceAreaWidth,spreadsheetColWidths:[]}}render(){let{props:e,state:r,context:i}=this,{options:s,viewSpec:a}=i,{superHeaderRendering:l,groupSpecs:o,orderSpecs:c,isVGrouping:d,colSpecs:u}=this.processColOptions(i.options),m=this.buildTimelineDateProfile(e.dateProfile,i.dateEnv,s,i.dateProfileGenerator),h=this.rowNodes=this.buildRowNodes(e.resourceStore,o,c,d,e.resourceEntityExpansions,s.resourcesInitiallyExpanded),{slotMinWidth:p}=s,y=gx(m,p||this.computeFallbackSlotMinWidth(m));return E(Ui,{elClasses:["fc-resource-timeline",!this.hasNesting(h)&&"fc-resource-timeline-flat","fc-timeline",s.eventOverlap===!1?"fc-timeline-overlap-disabled":"fc-timeline-overlap-enabled"],viewSpec:a},E(xP,{ref:this.layoutRef,forPrint:e.forPrint,isHeightAuto:e.isHeightAuto,spreadsheetCols:bP(u,r.spreadsheetColWidths,""),spreadsheetHeaderRows:f=>E(dP,{superHeaderRendering:l,colSpecs:u,onColWidthChange:this.handleColWidthChange,rowInnerHeights:f.rowSyncHeights}),spreadsheetBodyRows:f=>E(Ye,null,this.renderSpreadsheetRows(h,u,f.rowSyncHeights)),timeCols:y,timeHeaderContent:f=>E(dx,{clientWidth:f.clientWidth,clientHeight:f.clientHeight,tableMinWidth:f.tableMinWidth,tableColGroupNode:f.tableColGroupNode,dateProfile:e.dateProfile,tDateProfile:m,slatCoords:r.slatCoords,rowInnerHeights:f.rowSyncHeights,onMaxCushionWidth:p?null:this.handleMaxCushionWidth}),timeBodyContent:f=>E(gP,{dateProfile:e.dateProfile,clientWidth:f.clientWidth,clientHeight:f.clientHeight,tableMinWidth:f.tableMinWidth,tableColGroupNode:f.tableColGroupNode,expandRows:f.expandRows,tDateProfile:m,rowNodes:h,businessHours:e.businessHours,dateSelection:e.dateSelection,eventStore:e.eventStore,eventUiBases:e.eventUiBases,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,resourceStore:e.resourceStore,nextDayThreshold:i.options.nextDayThreshold,rowInnerHeights:f.rowSyncHeights,onSlatCoords:this.handleSlatCoords,onRowCoords:this.handleRowCoords,onScrollLeftRequest:this.handleScrollLeftRequest,onRowHeightChange:f.reportRowHeightChange})}))}renderSpreadsheetRows(e,r,i){return e.map((s,a)=>s.group?E(Cx,{key:s.id,id:s.id,spreadsheetColCnt:r.length,isExpanded:s.isExpanded,group:s.group,innerHeight:i[a]||""}):s.resource?E(wx,{key:s.id,colSpecs:r,rowSpans:s.rowSpans,depth:s.depth,isExpanded:s.isExpanded,hasChildren:s.hasChildren,resource:s.resource,innerHeight:i[a]||""}):null)}componentDidMount(){this.renderedRowNodes=this.rowNodes,this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)}getSnapshotBeforeUpdate(){return this.props.forPrint?{}:{resourceScroll:this.queryResourceScroll()}}componentDidUpdate(e,r,i){this.renderedRowNodes=this.rowNodes,this.scrollResponder.update(e.dateProfile!==this.props.dateProfile),i.resourceScroll&&this.handleScrollRequest(i.resourceScroll)}componentWillUnmount(){this.scrollResponder.detach()}computeFallbackSlotMinWidth(e){return Math.max(30,(this.state.slotCushionMaxWidth||0)/e.slotsPerLabel)}queryResourceScroll(){let{rowCoords:e,renderedRowNodes:r}=this;if(e){let i=this.layoutRef.current,s=e.bottoms,a=i.getResourceScroll(),l={};for(let o=0;o<s.length;o+=1){let c=r[o],d=s[o]-a;if(d>0){l.rowId=c.id,l.fromBottom=d;break}}return l}return null}}Dx.addStateEquality({spreadsheetColWidths:Mn});function vP(t){let e={};for(let r=0;r<t.length;r+=1)e[t[r].id]=r;return e}function bP(t,e,r=""){return t.map((i,s)=>({className:i.isMain?"fc-main-col":"",width:e[s]||i.width||r}))}function _P(t){for(let e of t)if(e.group||e.resource&&e.hasChildren)return!0;return!1}function jP(t){let e=t.resourceAreaColumns||[],r=null;e.length?t.resourceAreaHeaderContent&&(r={headerClassNames:t.resourceAreaHeaderClassNames,headerContent:t.resourceAreaHeaderContent,headerDidMount:t.resourceAreaHeaderDidMount,headerWillUnmount:t.resourceAreaHeaderWillUnmount}):e.push({headerClassNames:t.resourceAreaHeaderClassNames,headerContent:t.resourceAreaHeaderContent,headerDefault:()=>"Resources",headerDidMount:t.resourceAreaHeaderDidMount,headerWillUnmount:t.resourceAreaHeaderWillUnmount});let i=[],s=[],a=[],l=!1;for(let u of e)u.group?s.push(Object.assign(Object.assign({}
135,u),{cellClassNames:u.cellClassNames||t.resourceGroupLabelClassNames,cellContent:u.cellContent||t.resourceGroupLabelContent,cellDidMount:u.cellDidMount||t.resourceGroupLabelDidMount,cellWillUnmount:u.cellWillUnmount||t.resourceGroupLaneWillUnmount})):i.push(u);let o=i[0];if(o.isMain=!0,o.cellClassNames=o.cellClassNames||t.resourceLabelClassNames,o.cellContent=o.cellContent||t.resourceLabelContent,o.cellDidMount=o.cellDidMount||t.resourceLabelDidMount,o.cellWillUnmount=o.cellWillUnmount||t.resourceLabelWillUnmount,s.length)a=s,l=!0;else{let u=t.resourceGroupField;u&&a.push({field:u,labelClassNames:t.resourceGroupLabelClassNames,labelContent:t.resourceGroupLabelContent,labelDidMount:t.resourceGroupLabelDidMount,labelWillUnmount:t.resourceGroupLabelWillUnmount,laneClassNames:t.resourceGroupLaneClassNames,laneContent:t.resourceGroupLaneContent,laneDidMount:t.resourceGroupLaneDidMount,laneWillUnmount:t.resourceGroupLaneWillUnmount})}let c=t.resourceOrder||rN,d=[];for(let u of c){let m=!1;for(let h of a)if(h.field===u.field){h.order=u.order,m=!0;break}m||d.push(u)}return{superHeaderRendering:r,isVGrouping:l,groupSpecs:a,colSpecs:s.concat(i),orderSpecs:d}}var kP=".fc .fc-resource-timeline-divider{cursor:col-resize;width:3px}.fc .fc-resource-group{font-weight:inherit;text-align:inherit}.fc .fc-resource-timeline .fc-resource-group:not([rowspan]){background:var(--fc-neutral-bg-color)}.fc .fc-timeline-lane-frame{position:relative}.fc .fc-timeline-overlap-enabled .fc-timeline-lane-frame .fc-timeline-events{box-sizing:content-box;padding-bottom:10px}.fc-timeline-body-expandrows td.fc-timeline-lane{position:relative}.fc-timeline-body-expandrows .fc-timeline-lane-frame{position:static}.fc-datagrid-cell-frame-liquid{height:100%}.fc-liquid-hack .fc-datagrid-cell-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-datagrid-header .fc-datagrid-cell-frame{align-items:center;display:flex;justify-content:flex-start;position:relative}.fc .fc-datagrid-cell-resizer{bottom:0;cursor:col-resize;position:absolute;top:0;width:5px;z-index:1}.fc .fc-datagrid-cell-cushion{overflow:hidden;padding:8px;white-space:nowrap}.fc .fc-datagrid-expander{cursor:pointer;opacity:.65}.fc .fc-datagrid-expander .fc-icon{display:inline-block;width:1em}.fc .fc-datagrid-expander-placeholder{cursor:auto}.fc .fc-resource-timeline-flat .fc-datagrid-expander-placeholder{display:none}.fc-direction-ltr .fc-datagrid-cell-resizer{right:-3px}.fc-direction-rtl .fc-datagrid-cell-resizer{left:-3px}.fc-direction-ltr .fc-datagrid-expander{margin-right:3px}.fc-direction-rtl .fc-datagrid-expander{margin-left:3px}";ta(kP);var SP=zn({name:"@fullcalendar/resource-timeline",premiumReleaseDate:"2025-12-23",deps:[iu,nP,eN],initialView:"resourceTimelineDay",views:{resourceTimeline:{type:"timeline",component:Dx,needsResourceData:!0,resourceAreaWidth:"30%",resourcesInitiallyExpanded:!0,eventResizableFromStart:!0},resourceTimelineDay:{type:"resourceTimeline",duration:{days:1}},resourceTimelineWeek:{type:"resourceTimeline",duration:{weeks:1}},resourceTimelineMonth:{type:"resourceTimeline",duration:{months:1}},resourceTimelineYear:{type:"resourceTimeline",duration:{years:1}}}}),EP={code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",year:"Yıl",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekText:"Hf",allDayText:"Tüm gün",moreLinkText:"daha fazla",noEventsText:"Gösterilecek etkinlik yok"};const{Text:Jr}=ft,wP=()=>{const t=k.useRef(null),e=k.useRef(null),[r,i]=k.useState({}),[s,a]=k.useState("timeGridWeek"),[l,o]=k.useState({start:Z().startOf("week").format("YYYY-MM-DD"),end:Z().endOf("week").format("YYYY-MM-DD")}),c=k.useMemo(()=>({start:l.start,end:l.end,view:s}),[l.end,l.start,s]),{data:d}=$p(c),{data:u=[]}=rj(),{data:m=[]}=sj(r),{data:h}=Kp(l.start),{data:p=[]}=tr(),{data:y=[]}=Nl(),{data:f=[]}=qr(),{mutateAsync:g}=Gp();k.useEffect(()=>{if(!e.current)return;const A=new n1(e.current,{itemSelector:".external-service-card",eventData:w=>({title:w.getAttribute("data-title")||"İŠEmri",duration:"02:00",extendedProps:{serviceId:w.getAttribute("data-service-id"),assignedPersonnelIds:[]}})});return()=>{A.destroy()}},[m]);const v=k.useMemo(()=>((h==null?void 0:h.items)||[]).map(A=>{const Y=A.services.reduce((_,M)=>{if(!M.scheduled_start_time||!M.scheduled_end_time)return _+120;
135const b=Z(`2026-01-01T${M.scheduled_start_time}`),I=Z(`2026-01-01T${M.scheduled_end_time}`);return _+Math.max(I.diff(b,"minute"),0)},0),D=Math.min(100,Math.round(Y/480*100));return{...A,busyMinutes:Y,occupancy:D}}),[h]),S=k.useMemo(()=>((d==null?void 0:d.events)||[]).map(A=>({...A,resourceId:A.resourceId||void 0})),[d]),R=k.useMemo(()=>{const A=v.filter(Y=>Y.occupancy<40);if(A.length===0)return"Bu görünümde tüm ekiplerin doluluÄu yüksek.";const w=A.slice(0,3).map(Y=>Y.personnel_name).join(", ");return`${Z(l.start).format("DD MMMM")} günü ${w} için boÅ slotlar öne çıkıyor.`},[l.start,v]),z=k.useMemo(()=>{const A=Z().add(1,"year").startOf("year"),w=A.endOf("year");return y.filter(Y=>Y.next_inspection_date).filter(Y=>{const D=Z(Y.next_inspection_date);return D.isAfter(A.subtract(1,"day"))&&D.isBefore(w.add(1,"day"))}).sort((Y,D)=>Z(Y.next_inspection_date).valueOf()-Z(D.next_inspection_date).valueOf()).slice(0,8)},[y]),P=async({serviceId:A,start:w,end:Y,assignedPersonnelIds:D,revert:_})=>{if(!w){_();return}const M=Z(w).format("YYYY-MM-DD"),b=Z(w).format("HH:mm:ss"),I=Y?Z(Y).format("HH:mm:ss"):null;Ve.confirm({title:"İŠemrini yeniden planla",content:`${Z(w).format("DD MMMM YYYY dddd HH:mm")} zamanına taÅımak istiyor musunuz?`,okText:"Onayla",cancelText:"İptal",onCancel:_,onOk:async()=>{try{await g({id:A,data:{planned_date:M,scheduled_start_time:b,scheduled_end_time:I,assigned_personnel_ids:D}})}catch{_()}}})},U=A=>{var Y,D,_;const w=(Y=A.event.extendedProps)==null?void 0:Y.conflicts;return n.jsxs("div",{style:{padding:"2px 4px"},children:[n.jsx("div",{style:{fontWeight:600},children:A.event.title}),((D=A.event.extendedProps)==null?void 0:D.scope_code)&&n.jsx("div",{style:{fontSize:11},children:A.event.extendedProps.scope_code}),(_=w==null?void 0:w.warnings)!=null&&_.length?n.jsxs("div",{style:{display:"flex",gap:4,marginTop:4,flexWrap:"wrap"},children:[w.personnel&&n.jsx(ie,{color:"gold",children:"Personel ÃakıÅması"}),w.vehicle&&n.jsx(ie,{color:"red",children:"Araç ÃakıÅması"}),w.device&&n.jsx(ie,{color:"volcano",children:"Cihaz Uyarısı"})]}):null]})};return n.jsxs("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) 320px",gap:16},children:[n.jsxs(H,{title:n.jsxs(W,{children:[n.jsx(nl,{}),n.jsx("span",{children:"Operasyon Takvimi"})]}),extra:n.jsx(Tn,{value:s,options:[{label:"Aylık",value:"dayGridMonth"},{label:"Haftalık",value:"timeGridWeek"},{label:"Günlük",value:"timeGridDay"},{label:"Kaynak",value:"resourceTimelineDay"}],onChange:A=>{var Y;const w=A;a(w),(Y=t.current)==null||Y.getApi().changeView(w)}}),children:[n.jsxs("div",{style:{marginBottom:16,display:"grid",gridTemplateColumns:"repeat(3, minmax(0, 1fr))",gap:12},children:[n.jsx(Ee,{title:"Planlı Etkinlik",value:(d==null?void 0:d.events.filter(A=>A.eventType==="service"||!A.eventType).length)||0}),n.jsx(Ee,{title:"Açık ÃakıÅma",value:(d==null?void 0:d.events.filter(A=>{var w,Y,D;return((w=A.conflicts)==null?void 0:w.personnel)||((Y=A.conflicts)==null?void 0:Y.vehicle)||((D=A.conflicts)==null?void 0:D.device)}).length)||0}),n.jsx(Ee,{title:"AtanmamıŠİÅ",value:m.length})]}),n.jsx(qy,{ref:t,schedulerLicenseKey:"GPL-My-Project-Is-Open-Source",plugins:[$A,IM,r1,SP],locale:EP,initialView:s,headerToolbar:{left:"prev,next today",center:"title",right:""},height:"auto",editable:!0,droppable:!0,eventResizableFromStart:!0,nowIndicator:!0,weekends:!0,loading:A=>{},resources:s==="resourceTimelineDay"?u:[],resourceAreaWidth:220,slotMinTime:"07:00:00",slotMaxTime:"20:00:00",events:S,eventContent:U,datesSet:A=>{o({start:Z(A.start).format("YYYY-MM-DD"),end:Z(A.end).subtract(1,"day").format("YYYY-MM-DD")}),a(A.view.type)},eventDrop:A=>{var _;const w=A.event.extendedProps.event_type||A.event.extendedProps.eventType;if(w&&w!=="service"){A.revert();return}const Y=A.event.extendedProps.assigned_personnel_ids||[],D=((_=A.newResource)==null?void 0:_.id)||(Y==null?void 0:Y[0]);P({serviceId:A.event.id,start:A.event.start,end:A.event.end,assignedPersonnelIds:D?[D]:Y,revert:A.revert})},eventResize:A=>{P({serviceId:A.event.id,start:A.event.start,end:A.event.end,assignedPersonnelIds:A.event.extendedProps.assigned_personnel_ids||[],revert:A.revert})},eventReceive:A=>{var D,_,M;const w=A.draggedEl.getAttribute("data-service-id"),Y=(M=(_=(D=A.event).getResources)==null?void 0:_.call(D)[0])==null?void 0:M.id;if(!w){A.event.remove();return}P({serviceId:w,start:A.event.start,end:A.event.end,assignedPersonnelIds:Y?[Y]:[],revert:()=>A.event.remove()})}})]}),n.jsxs(W,{direction:"vertical",size:16,style:{width:"100%"},children:[n.jsxs(H,{title:"AtanmamıŠİŠEmirleri",styles:{body:{paddingTop:12}},children:[n.jsxs(x,{layout:"vertical",style:{marginBottom:12},children:[n.jsx(x.Item,{label:"Kapsam",style:{marginBottom:8}
135,children:n.jsx(pe,{allowClear:!0,value:r.scope,onChange:A=>i(w=>({...w,scope:A||void 0})),options:f.map(A=>({label:A.code?`${A.code} - ${A.name}`:A.name,value:A.id}))})}),n.jsx(x.Item,{label:"Firma",style:{marginBottom:8},children:n.jsx(pe,{allowClear:!0,value:r.company,onChange:A=>i(w=>({...w,company:A||void 0})),options:p.map(A=>({label:A.name,value:A.id}))})}),n.jsx(x.Item,{label:"Ãncelik",style:{marginBottom:0},children:n.jsx(pe,{allowClear:!0,value:r.priority,onChange:A=>i(w=>({...w,priority:A||void 0})),options:Object.entries(zr).map(([A,w])=>({value:A,label:w}))})})]}),n.jsx("div",{ref:e,style:{display:"flex",flexDirection:"column",gap:10,maxHeight:360,overflowY:"auto"},children:m.length===0?n.jsx(ht,{description:"AtanmamıŠiÅ emri yok."}):m.map(A=>n.jsxs("div",{className:"external-service-card","data-service-id":A.id,"data-title":`${A.company_name} - ${A.scope_name}`,style:{border:"1px solid #f0f0f0",borderRadius:12,padding:12,background:"#fff",cursor:"grab"},children:[n.jsx("div",{style:{fontWeight:600},children:A.company_name}),n.jsx("div",{children:A.scope_name}),n.jsxs(W,{size:[4,4],wrap:!0,style:{marginTop:8},children:[n.jsx(ie,{children:A.work_order_number}),n.jsx(ie,{color:"blue",children:zr[A.priority]})]})]},A.id))})]}),n.jsx(H,{title:"Doluluk Analizi",children:n.jsx(W,{direction:"vertical",style:{width:"100%"},children:v.length===0?n.jsx(ht,{description:"Seçili tarih için iÅ yükü yok."}):v.map(A=>n.jsxs("div",{style:{borderBottom:"1px solid #f0f0f0",paddingBottom:10},children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:12},children:[n.jsx(Jr,{strong:!0,children:A.personnel_name}),n.jsx(fi,{color:A.occupancy>=80?"#ff4d4f":A.occupancy>=50?"#faad14":"#52c41a",text:`%${A.occupancy} dolu`})]}),n.jsxs(Jr,{type:"secondary",children:[A.service_count," iÅ emri"]})]},A.personnel_id))})}),n.jsx(be,{type:"info",showIcon:!0,icon:n.jsx(Yv,{}),message:"Optimize Ãnerisi",description:R}),n.jsx(be,{type:"warning",showIcon:!0,icon:n.jsx(Rs,{}),message:"ÃakıÅma Kuralları",description:"Sarı uyarılar personel çakıÅmasını, kırmızı uyarılar araç veya cihaz riskini gösterir."}),n.jsx(H,{title:"Gelecek Yıl Hatırlatmaları",children:n.jsx(W,{direction:"vertical",size:10,style:{width:"100%"},children:z.length===0?n.jsx(Jr,{type:"secondary",children:"Gelecek yıl için planlanmıŠmuayene hatırlatması bulunmuyor."}):z.map(A=>n.jsxs("div",{style:{borderBottom:"1px solid #f0f0f0",paddingBottom:10},children:[n.jsx(Jr,{strong:!0,children:A.company_name||A.report_number}),n.jsx("div",{children:n.jsx(Jr,{type:"secondary",children:A.scope_name||"Periyodik muayene"})}),n.jsxs(W,{size:[6,6],wrap:!0,style:{marginTop:6},children:[n.jsx(ie,{color:"blue",children:A.report_number}),n.jsx(ie,{color:"gold",children:Z(A.next_inspection_date).format("DD MMMM YYYY")})]})]},A.id))})}),n.jsx(H,{title:"Planlama Notları",children:n.jsxs(W,{direction:"vertical",size:10,style:{width:"100%"},children:[n.jsxs("div",{style:{display:"flex",gap:8},children:[n.jsx(Hv,{style:{color:"#ff4d4f"}}),n.jsx(Jr,{children:"Aynı aracı aynı gün iki iÅ emrine vermeyin."})]}),n.jsxs("div",{style:{display:"flex",gap:8},children:[n.jsx(nl,{style:{color:"#fa8c16"}}),n.jsx(Jr,{children:"Kalibrasyon ve bakım blokları sahaya çıkıÅı etkileyebilir."})]})]})})]})]})},{Title:Vo,Text:Pa}=ft,{TextArea:sp}=G,CP="EIT",ap={ADMIN:"Admin",MANAGER:"Müdür",ENGINEER:"Mühendis",TECHNICIAN:"Teknisyen",CUSTOMER:"MüÅteri"},DP={ADMIN:"Sistem geneli, ayarlar ve yetki matrisi yönetimi.",MANAGER:"Operasyon, onay ve kalite sürecinin yönetsel kontrolü.",ENGINEER:"Saha raporu, teknik inceleme ve teklif hazırlama sorumluluÄu.",TECHNICIAN:"Saha uygulaması, checklist ve ekipman operasyonu desteÄi.",CUSTOMER:"Kısıtlı görüntüleme, bildirim ve müÅteri geri bildirim akıÅı."},lp=[{label:"Firma",value:"COMPANY"},{label:"Ekipman",value:"EQUIPMENT"},{label:"Hizmet",value:"SERVICE"},{label:"Rapor",value:"REPORT"}],RP=[{label:"Metin",value:"TEXT"},{label:"Sayı",value:"NUMBER"},{label:"Tarih",value:"DATE"},{label:"Seçim",value:"SELECT"},{label:"Evet / Hayır",value:"BOOLEAN"},{label:"Uzun Metin",value:"TEXTAREA"}],gs=(t,e="",r=42)=>(e?`${e}-${t}`:t).replace(/\{YEAR\}/g,String(Z().year())).replace(/\{YY\}/g,Z().format("YY")).replace(/\{SCOPE\}/g,CP).replace(/\{SEQ:(\d+)\}/g,(s,a)=>String(r).padStart(Number(a),"0")),IP=()=>{const[t]=x.useForm(),[e]=x.useForm(),[r]=x.useForm(),[i]=x.useForm(),[s]=x.useForm(),[a]=x.useForm(),l=x.useWatch("report_number_prefix",r),o=x.useWatch("report_number_format",r),c=x.useWatch("service_number_prefix",s),d=x.useWatch("proposal_number_prefix",s),u=x.useWatch("request_number_prefix",s),m=x.useWatch("work_order_prefix",s),{data:h,isLoading:p}=ub(),{mutate:y,isPending:f}=mb(),{data:g,isLoading:v}=t_(),{data:S=[]}=Fp(),{data:R=[]}=o_(),z=n_(),P=r_(),U=i_(),A=s_(),w=a_(),Y=l_(),D=c_(),[_,M]=k.useState("COMPANY"),[b,I]=k.useState(!1),[j,N]=k.useState(null),[$,ue]=k.useState({}),[oe,K]=k.useState([]),[fe,J]=k.useState(!1),B=k.useMemo(()=>{const ae={};return Object.values(g||{}
135).flat().forEach(ge=>{ae[ge.key]=ge.value}),ae},[g]),he=k.useMemo(()=>S.filter(ae=>ae.target_model===_),[S,_]);k.useEffect(()=>{h&&t.setFieldsValue(h)},[t,h]),k.useEffect(()=>{e.setFieldsValue({company_name:B.company_name,company_address:B.company_address,company_phone:B.company_phone,company_email:B.company_email,company_website:B.company_website,company_tax_number:B.company_tax_number,turkak_accreditation_no:B.turkak_accreditation_no}),r.setFieldsValue({report_number_prefix:B.report_number_prefix,report_number_format:B.report_number_format,report_copy_count:B.report_copy_count,report_default_language:B.report_default_language,report_footer_text:B.report_footer_text,pdf_compression_default:B.pdf_compression_default}),i.setFieldsValue({smtp_host:B.smtp_host,smtp_port:B.smtp_port,smtp_username:B.smtp_username,smtp_password:B.smtp_password,smtp_use_tls:B.smtp_use_tls,email_from_name:B.email_from_name,email_from_address:B.email_from_address}),s.setFieldsValue({service_number_prefix:B.service_number_prefix,proposal_number_prefix:B.proposal_number_prefix,request_number_prefix:B.request_number_prefix,work_order_prefix:B.work_order_prefix})},[i,s,e,r,B]),k.useEffect(()=>{const ae={};R.forEach(ge=>{ae[ge.role]=JSON.parse(JSON.stringify(ge.role_permissions||{}))}),ue(ae)},[R]);const de=async()=>{J(!0);try{const ae=await Xe.getCertificates();K(ae||[])}catch(ae){ce(ae,"Sertifika listesi yüklenemedi","İmza sertifikaları alınırken sunucudan veri dönmedi.")}finally{J(!1)}};k.useEffect(()=>{de()},[]);const _e=ae=>{z.mutate(ae)},De=async(ae,ge)=>{await P.mutateAsync({key:ae,file:ge})},Ce=async ae=>{try{await Xe.deleteCertificate(ae),await de()}catch(ge){ce(ge,"Sertifika silinemedi","Legacy sertifika kaydı sunucudan silinirken iÅlem tamamlanamadı.")}},Ue=ae=>{N(ae||null),I(!0),a.setFieldsValue(ae?{...ae,options_text:(ae.options||[]).join(", ")}:{target_model:_,is_required:!1,is_active:!0,sort_order:he.length+1})},se=async()=>{const ae=await a.validateFields(),ge={...ae,options:ae.options_text?String(ae.options_text).split(",").map(Me=>Me.trim()).filter(Boolean):[]};delete ge.options_text,j?await w.mutateAsync({id:j.id,data:ge}):await A.mutateAsync(ge),I(!1),a.resetFields(),N(null)},q=(ae,ge,Me,ze)=>{ue(ut=>({...ut,[ae]:{...ut[ae]||{},[ge]:{...(ut[ae]||{})[ge]||{},[Me]:ze}}}))};return n.jsxs("div",{style:{maxWidth:1240,margin:"0 auto"},children:[n.jsx(Vo,{level:2,children:"Yönetim Paneli"}),n.jsx(Pa,{type:"secondary",children:"Sistem parametreleri, özel alanlar, e-posta yapılandırması ve modül bazlı rol yetkileri burada yönetilir."}),n.jsx(Jn,{style:{marginTop:24},items:[{key:"profile",label:"Profil",children:n.jsx(H,{children:n.jsx(be,{type:"info",showIcon:!0,message:"Profil alanı",description:"Kimlik ve hesap düzenleme akıÅı mevcut kullanıcı ekranlarıyla korunuyor. Yönetim paneli bu sekmede özet bilgi sunar."})})},{key:"password",label:"Åifre",children:n.jsx(H,{children:n.jsx(be,{type:"info",showIcon:!0,message:"Åifre politikası",description:"Åifre güncelleme akıÅı mevcut kimlik doÄrulama ekranı üzerinden devam eder. Bu sekme politika ve eriÅim görünürlüÄü için ayrıldı."})})},{key:"notifications",label:"Bildirimler",children:n.jsx(H,{title:"Bildirim Tercihleri",loading:p,children:n.jsxs(x,{form:t,layout:"horizontal",onFinish:ae=>y(ae),labelCol:{span:16},wrapperCol:{span:8},style:{maxWidth:720},children:[n.jsx(Vo,{level:5,children:"E-posta Bildirimleri"}),n.jsx(Pa,{type:"secondary",style:{display:"block",marginBottom:16},children:"Hangi durumlarda sistemin size e-posta göndermesini istediÄinizi seçin."}),n.jsx(x.Item,{label:"Kalibrasyon süresi yaklaÅan/geçen cihazlar",name:"email_calibration",valuePropName:"checked",children:n.jsx(Tt,{})}),n.jsx(x.Item,{label:"Muayene tarihi yaklaÅan/geçen ekipmanlar",name:"email_inspection",valuePropName:"checked",children:n.jsx(Tt,{})}),n.jsx(x.Item,{label:"Rapor durum deÄiÅiklikleri",name:"email_report",valuePropName:"checked",children:n.jsx(Tt,{})}),n.jsx(on,{}),n.jsx(Vo,{level:5,children:"SMS Bildirimleri"}),n.jsx(x.Item,{label:"Kalibrasyon Uyarıları",name:"sms_calibration",valuePropName:"checked",children:n.jsx(Tt,{disabled:!0})}),n.jsx(x.Item,{label:"Muayene Uyarıları",name:"sms_inspection",valuePropName:"checked",children:n.jsx(Tt,{disabled:!0})}),n.jsx(x.Item,{wrapperCol:{offset:16,span:8},style:{marginTop:24,textAlign:"right"},children:n.jsx(T,{type:"primary",htmlType:"submit",icon:n.jsx(ls,{}),loading:f,children:"Tercihleri Kaydet"})})]})})},{key:"esign",label:"E-İmza",children:n.jsxs(H,{title:n.jsxs(n.Fragment,{children:[n.jsx(Bi,{})," E-İmza Sertifikaları"]}),children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Sertifikalar artık yerel E-İmza Köprüsü üzerinden kullanılır.",description:"Ãzel anahtar ve PIN sunucuya yüklenmez. Aktif USB token veya yerel PKCS#12 config bilgisini Rapor Detay sayfasındaki E-İmza Köprüsü panelinden görüntüleyebilirsiniz. AÅaÄıdaki tablo yalnızca eski
135sunucu kayıtlarını temizlemek içindir."}),n.jsx(Ie,{rowKey:"id",loading:fe,dataSource:oe,pagination:!1,locale:{emptyText:"Legacy sunucu sertifikası bulunamadı."},columns:[{title:"Sahibi",dataIndex:"subject_cn",key:"subject_cn"},{title:"Veren",dataIndex:"issuer_cn",key:"issuer_cn",render:ae=>ae||"-"},{title:"Seri No",dataIndex:"serial_number",key:"serial_number",render:ae=>ae||"-"},{title:"Geçerlilik",key:"validity",render:(ae,ge)=>`${ge.valid_from?Z(ge.valid_from).format("DD.MM.YYYY"):"-"} - ${ge.valid_until?Z(ge.valid_until).format("DD.MM.YYYY"):"-"}`},{title:"Durum",key:"status",render:(ae,ge)=>n.jsx(ie,{color:ge.is_active&&ge.is_valid?"green":"default",children:ge.is_active&&ge.is_valid?"Aktif":"Pasif"})},{title:"İÅlem",key:"actions",render:(ae,ge)=>n.jsx(Ot,{title:"Legacy sertifikayı sunucudan sil",onConfirm:()=>Ce(ge.id),okText:"Sil",cancelText:"İptal",children:n.jsx(T,{danger:!0,children:"Sil"})})}]})]})},{key:"organization",label:"KuruluÅ",children:n.jsx(H,{loading:v,title:"KuruluÅ Bilgileri",children:n.jsxs(x,{form:e,layout:"vertical",onFinish:_e,children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"company_name",label:"Firma Adı",children:n.jsx(G,{})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"turkak_accreditation_no",label:"TÃRKAK Akreditasyon No",children:n.jsx(G,{})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"company_phone",label:"Telefon",children:n.jsx(G,{})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"company_email",label:"E-Posta",children:n.jsx(G,{})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"company_website",label:"Web Sitesi",children:n.jsx(G,{})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"company_tax_number",label:"Vergi No",children:n.jsx(G,{})})})]}),n.jsx(x.Item,{name:"company_address",label:"Adres",children:n.jsx(sp,{rows:3})}),n.jsx(on,{}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(H,{size:"small",title:"Firma Logosu",children:n.jsxs(W,{direction:"vertical",style:{width:"100%"},children:[B.company_logo_url?n.jsx("img",{src:li(B.company_logo_url),alt:"Firma Logo",style:{maxHeight:80,objectFit:"contain"}}):n.jsx(ht,{description:"Logo yüklenmedi",image:ht.PRESENTED_IMAGE_SIMPLE}),n.jsx(An,{showUploadList:!1,customRequest:async({file:ae,onSuccess:ge,onError:Me})=>{try{await De("company_logo_url",ae),ge==null||ge({},new XMLHttpRequest)}catch(ze){Me==null||Me(ze)}},children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"Logo Yükle"})})]})})}),n.jsx(C,{span:12,children:n.jsx(H,{size:"small",title:"TÃRKAK Logosu",children:n.jsxs(W,{direction:"vertical",style:{width:"100%"},children:[B.turkak_logo_url?n.jsx("img",{src:li(B.turkak_logo_url),alt:"TÃRKAK Logo",style:{maxHeight:80,objectFit:"contain"}}):n.jsx(ht,{description:"Logo yüklenmedi",image:ht.PRESENTED_IMAGE_SIMPLE}),n.jsx(An,{showUploadList:!1,customRequest:async({file:ae,onSuccess:ge,onError:Me})=>{try{await De("turkak_logo_url",ae),ge==null||ge({},new XMLHttpRequest)}catch(ze){Me==null||Me(ze)}},children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"TÃRKAK Logosu Yükle"})})]})})})]}),n.jsx(x.Item,{style:{marginTop:16},children:n.jsx(T,{type:"primary",htmlType:"submit",icon:n.jsx(ls,{}),loading:z.isPending,children:"KuruluÅ Bilgilerini Kaydet"})})]})})},{key:"report",label:"Rapor",children:n.jsx(H,{loading:v,title:"Rapor Ayarları",children:n.jsxs(x,{form:r,layout:"vertical",onFinish:_e,children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"report_number_prefix",label:"Rapor Prefix",children:n.jsx(G,{})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"report_number_format",label:"Rapor Numarası Formatı",children:n.jsx(G,{})})})]}),n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Canlı Ãnizleme",description:gs(o||"{YEAR}-{SCOPE}-{SEQ:5}",l||"")}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"report_copy_count",label:"Varsayılan Nüsha Sayısı",children:n.jsx(Ze,{min:1,style:{width:"100%"}})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"report_default_language",label:"Varsayılan Dil",children:n.jsx(pe,{options:[{label:"Türkçe",value:"tr"},{label:"İngilizce",value:"en"}]})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"pdf_compression_default",label:"PDF SıkıÅtırma Profili",children:n.jsx(pe,{options:[{label:"Standart",value:"standard"},{label:"Yüksek",value:"high"},{label:"Maksimum",value:"maximum"}]})})})]}),n.jsx(x.Item,{name:"report_footer_text",label:"Footer Metni",children:n.jsx(sp,{rows:4})}),n.jsx(T,{type:"primary",htmlType:"submit",icon:n.jsx(ls,{}),loading:z.isPending,children:"Rapor Ayarlarını Kaydet"})]})})},{key:"email",label:"E-Posta",children:n.jsx(H,{loading:v,title:"SMTP ve Gönderen Ayarları",children:n.jsxs(x,{form:i,layout:"vertical",onFinish:_e,children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"smtp_host",label:"SMTP Host",children:n.jsx(G,{prefix:n.jsx(Al,{})})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"smtp_port",label:"SMTP Port",children:n.jsx(Ze,{min:1,style:{width:"100%"}})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"smtp_use_tls",label:"TLS",valuePropName:"checked",children:n.jsx(Tt,{})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"smtp_username",label:"SMTP Kullanıcı",children:n.jsx(G,{})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"smtp_password",label:"SMTP Åifre",children:n.jsx(G.Password,{})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"email_from_address",label:"Gönderen E-Posta",children:n.jsx(G,{})})})]}),n.jsx(x.Item,{name:"email_from_name",label:"Gönderen Adı",children:n.jsx(G,{})}),n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",icon:n.jsx(ls,{}),loading:z.isPending,children:"E-Posta Ayarlarını Kaydet"}),n.jsx(T,{onClick:()=>U.mutate(i.getFieldValue("email_from_address")||B.company_email||""),children:"Test E-Posta Gönder"})]})]})})},{key:"numbering",label:"Numaralama",children:n.jsx(H,{loading:v,title:"Numaralama Ayarları",children:n.jsxs(x,{form:s,layout:"vertical",onFinish:_e,children:[n.jsxs(me,{gutter:16,children:[n.jsxs(C,{span:6,children:[n.jsx(x.Item,{name:"service_number_prefix",label:"Hizmet Prefix",children:n.jsx(G,{})}),n.jsx(be,{type:"info",showIcon:!0,message:gs("{YEAR}
135-{SEQ:5}",c||"SRV")})]}),n.jsxs(C,{span:6,children:[n.jsx(x.Item,{name:"proposal_number_prefix",label:"Teklif Prefix",children:n.jsx(G,{})}),n.jsx(be,{type:"info",showIcon:!0,message:gs("{YEAR}-{SEQ:5}",d||"TEK")})]}),n.jsxs(C,{span:6,children:[n.jsx(x.Item,{name:"request_number_prefix",label:"Talep Prefix",children:n.jsx(G,{})}),n.jsx(be,{type:"info",showIcon:!0,message:gs("{YEAR}-{SEQ:5}",u||"TLP")})]}),n.jsxs(C,{span:6,children:[n.jsx(x.Item,{name:"work_order_prefix",label:"İŠEmri Prefix",children:n.jsx(G,{})}),n.jsx(be,{type:"info",showIcon:!0,message:gs("{YEAR}-{SEQ:5}",m||"IE")})]})]}),n.jsx(T,{type:"primary",htmlType:"submit",icon:n.jsx(ls,{}),loading:z.isPending,children:"Numaralama Ayarlarını Kaydet"})]})})},{key:"custom-fields",label:"Ãzel Alanlar",children:n.jsx(H,{title:"Dinamik Alan Tanımları",extra:n.jsxs(W,{children:[n.jsx(pe,{value:_,options:lp,onChange:ae=>M(ae),style:{width:160}}),n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>Ue(),children:"Alan Ekle"})]}),children:n.jsx(Ie,{rowKey:"id",dataSource:he,pagination:!1,locale:{emptyText:"Seçilen model için özel alan tanımlı deÄil."},columns:[{title:"Etiket",dataIndex:"field_label",key:"field_label"},{title:"Alan Adı",dataIndex:"field_name",key:"field_name"},{title:"Tip",dataIndex:"field_type",key:"field_type"},{title:"Sıra",dataIndex:"sort_order",key:"sort_order"},{title:"Durum",key:"status",render:(ae,ge)=>n.jsxs(W,{children:[ge.is_required&&n.jsx(ie,{color:"red",children:"Zorunlu"}),n.jsx(ie,{color:ge.is_active?"green":"default",children:ge.is_active?"Aktif":"Pasif"})]})},{title:"İÅlem",key:"actions",render:(ae,ge)=>n.jsxs(W,{children:[n.jsx(T,{onClick:()=>Ue(ge),children:"Düzenle"}),n.jsx(Ot,{title:"Bu alan silinsin mi?",onConfirm:()=>Y.mutate(ge.id),children:n.jsx(T,{danger:!0,children:"Sil"})})]})}]})})},{key:"roles",label:"Kullanıcı Yetkileri",children:n.jsxs(W,{direction:"vertical",size:16,style:{width:"100%"},children:[n.jsx(be,{type:"info",showIcon:!0,message:"Rol ve yetki kısıtları bu ekrandan yönetilir.",description:"Admin, müdür, mühendis, teknisyen ve müÅteri rollerinin hangi modüllerde hangi aksiyonları yapabileceÄini kutucuk bazında sınırlandırabilirsiniz."}),R.length===0?n.jsx(ht,{description:"Rol tanımı bulunamadı."}):R.map(ae=>{const ge=$[ae.role]||ae.role_permissions||{};return n.jsxs(H,{title:ap[ae.role]||ae.role,extra:n.jsx(T,{type:"primary",onClick:()=>D.mutate({role:ae.role,rolePermissions:ge}),children:"Kaydet"}),children:[n.jsxs(W,{wrap:!0,style:{marginBottom:12},children:[n.jsx(ie,{color:"blue",children:ap[ae.role]||ae.role}),n.jsx(Pa,{type:"secondary",children:DP[ae.role]||"Rol açıklaması bulunamadı."})]}),Object.entries(ge).map(([Me,ze])=>n.jsxs("div",{style:{marginBottom:16},children:[n.jsx(Pa,{strong:!0,style:{textTransform:"capitalize"},children:Me}),n.jsx("div",{style:{display:"flex",gap:12,flexWrap:"wrap",marginTop:8},children:Object.entries(ze).map(([ut,lt])=>n.jsx(ai,{checked:lt,onChange:Zt=>q(ae.role,Me,ut,Zt.target.checked),children:ut},ut))})]},Me))]},ae.role)})]})}]}),n.jsx(Ve,{title:j?"Ãzel Alanı Düzenle":"Yeni Ãzel Alan",open:b,onCancel:()=>{I(!1),N(null),a.resetFields()},onOk:se,okText:"Kaydet",children:n.jsxs(x,{form:a,layout:"vertical",children:[n.jsx(x.Item,{name:"target_model",label:"Model",rules:[{required:!0}],children:n.jsx(pe,{options:lp})}),n.jsx(x.Item,{name:"field_label",label:"Alan Etiketi",rules:[{required:!0}],children:n.jsx(G,{})}),n.jsx(x.Item,{name:"field_name",label:"Alan Anahtarı",rules:[{required:!0}],children:n.jsx(G,{placeholder:"ornek_alan"})}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"field_type",label:"Alan Tipi",rules:[{required:!0}],children:n.jsx(pe,{options:RP})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"sort_order",label:"Sıra",children:n.jsx(Ze,{min:0,style:{width:"100%"}})})})]}),n.jsx(x.Item,{name:"options_text",label:"Seçenekler",children:n.jsx(G,{placeholder:"virgülle ayrılmıŠseçenekler"})}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"is_required",label:"Zorunlu",valuePropName:"checked",children:n.jsx(Tt,{})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"is_active",label:"Aktif",valuePropName:"checked",children:n.jsx(Tt,{})})})]})]})})]})},TP=()=>{const t=Le(),{data:e,isLoading:r}=Dp(),{mutate:i,isPending:s}=Rp(),{mutate:a,isPending:l}=db(),o=d=>{const u=d.related_object_id;u&&(d.related_object_type==="device"?t(`/devices/${u}`):d.related_object_type==="equipment"?t(`/equipment/${u}`):d.related_object_type==="service"?t(`/services/${u}`):d.related_object_type==="report"&&t(`/reports/${u}`))},c=[{title:"Durum",dataIndex:"is_read",key:"is_read",width:100,render:d=>
135n.jsx(ie,{color:d?"default":"processing",children:d?"Okundu":"Yeni"})},{title:"Baslik",dataIndex:"title",key:"title"},{title:"Mesaj",dataIndex:"message",key:"message"},{title:"Tarih",dataIndex:"created_at",key:"created_at",width:180,render:d=>Z(d).format("DD.MM.YYYY HH:mm")},{title:"Islem",key:"action",width:220,render:(d,u)=>n.jsxs(W,{children:[!u.is_read&&n.jsx(T,{size:"small",onClick:()=>i(u.id),children:"Okundu Isaretle"}),n.jsx(T,{size:"small",onClick:()=>o(u),disabled:!u.related_object_id,children:"Ilgili Kayda Git"})]})}];return n.jsx(H,{title:"Bildirimler",extra:n.jsx(T,{onClick:()=>a(),loading:l,children:"Tumunu Okundu Isaretle"}),children:n.jsx(Ie,{rowKey:"id",columns:c,dataSource:e||[],loading:r||s,pagination:{pageSize:20}})})},un={getLeads:async t=>(await L.get("/crm/leads/",{params:t})).data.results||[],getLead:async t=>(await L.get(`/crm/leads/${t}/`)).data,createLead:async t=>(await L.post("/crm/leads/",t)).data,updateLead:async(t,e)=>(await L.patch(`/crm/leads/${t}/`,e)).data,deleteLead:async t=>{await L.delete(`/crm/leads/${t}/`)},transitionLead:async(t,e)=>(await L.post(`/crm/leads/${t}/transition/`,e)).data,convertLeadToCompany:async(t,e)=>(await L.post(`/crm/leads/${t}/convert-to-company/`,e||{})).data,getPipeline:async()=>(await L.get("/crm/pipeline/")).data,getActivities:async t=>(await L.get("/crm/activities/",{params:t})).data.results||[],createActivity:async t=>(await L.post("/crm/activities/",t)).data,updateActivity:async(t,e)=>(await L.patch(`/crm/activities/${t}/`,e)).data,deleteActivity:async t=>{await L.delete(`/crm/activities/${t}/`)},getSalesTargets:async()=>(await L.get("/crm/sales-targets/")).data.results||[],createSalesTarget:async t=>(await L.post("/crm/sales-targets/",t)).data,updateSalesTarget:async(t,e)=>(await L.patch(`/crm/sales-targets/${t}/`,e)).data,deleteSalesTarget:async t=>{await L.delete(`/crm/sales-targets/${t}/`)},getSalesDashboard:async(t,e)=>(await L.get("/crm/sales-dashboard/",{params:{year:t,month:e}})).data,getFollowUps:async()=>(await L.get("/crm/follow-ups/")).data},Kr=(t,e)=>{t.invalidateQueries({queryKey:["crm-leads"]}),t.invalidateQueries({queryKey:["crm-pipeline"]}),t.invalidateQueries({queryKey:["crm-activities"]}),t.invalidateQueries({queryKey:["crm-dashboard"]}),t.invalidateQueries({queryKey:["crm-follow-ups"]}),t.invalidateQueries({queryKey:["crm-sales-targets"]}),t.invalidateQueries({queryKey:["companies"]}),e&&t.invalidateQueries({queryKey:["crm-leads",e]})},Rx=t=>Re({queryKey:["crm-leads",t],queryFn:()=>un.getLeads(t)}),Ix=t=>Re({queryKey:["crm-leads",t],queryFn:()=>un.getLead(t),enabled:!!t}),AP=()=>{const t=ve();return ye({mutationFn:e=>un.createLead(e),onSuccess:()=>{Kr(t),re.success("Lead oluÅturuldu.")},onError:e=>{ce(e,"Lead oluÅturulamadı.")}})},MP=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>un.updateLead(e,r),onSuccess:(e,r)=>{Kr(t,r.id),re.success("Lead güncellendi.")},onError:e=>{ce(e,"Lead güncellenemedi.")}})},NP=()=>{const t=ve();return ye({mutationFn:un.deleteLead,onSuccess:()=>{Kr(t),re.success("Lead silindi.")},onError:e=>{ce(e,"Lead silinemedi.")}})},Tx=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>un.transitionLead(e,r),onSuccess:(e,r)=>{Kr(t,r.id),re.success("Lead durumu güncellendi.")},onError:e=>{ce(e,"Lead durumu güncellenemedi.")}})},PP=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>un.convertLeadToCompany(e,r),onSuccess:(e,r)=>{Kr(t,r.id),re.success("Lead firmaya dönüÅtürüldü.")},onError:e=>{ce(e,"Lead firma kaydına dönüÅtürülemedi.")}})},zP=()=>Re({queryKey:["crm-pipeline"],queryFn:un.getPipeline}),OP=t=>Re({queryKey:["crm-activities",t],queryFn:()=>un.getActivities(t)}),Ax=()=>{const t=ve();return ye({mutationFn:e=>un.createActivity(e),onSuccess:e=>{Kr(t,e.lead||void 0),re.success("Aktivite kaydedildi.")},onError:e=>{ce(e,"Aktivite kaydedilemedi.")}})},LP=()=>Re({queryKey:["crm-sales-targets"],queryFn:un.getSalesTargets}),FP=()=>{const t=ve();return ye({mutationFn:e=>un.createSalesTarget(e),onSuccess:()=>{Kr(t),re.success("SatıŠhedefi oluÅturuldu.")},onError:e=>{ce(e,"SatıŠhedefi oluÅturulamadı.")}})},BP=()=>{const t=ve();return ye({mutationFn:({id:e,data:r})=>un.updateSalesTarget(e,r),onSuccess:()=>{Kr(t),re.success("SatıŠhedefi güncellendi.")},onError:e=>{ce(e,"SatıŠhedefi güncellenemedi.")}})},Mx=(t,e)=>Re({queryKey:["crm-dashboard",t,e],queryFn:()=>un.getSalesDashboard(t,e)}),YP=()=>Re({queryKey:["crm-follow-ups"],queryFn:un.getFollowUps}
135),hu={WEBSITE:"Web Sitesi",REFERRAL:"Referans",COLD_CALL:"SoÄuk Arama",TRADE_SHOW:"Fuar",SOCIAL_MEDIA:"Sosyal Medya",REPEAT:"Tekrar",OTHER:"DiÄer"},Gi={NEW:"Yeni",CONTACTED:"İletiÅime Geçildi",QUALIFIED:"Kalifiye",PROPOSAL_SENT:"Teklif Gönderildi",NEGOTIATION:"Pazarlık",WON:"Kazanıldı",LOST:"Kaybedildi"},Nx={NEW:"default",CONTACTED:"blue",QUALIFIED:"processing",PROPOSAL_SENT:"cyan",NEGOTIATION:"warning",WON:"success",LOST:"error"},Fc={PRICE:"Fiyat",TIMING:"Zamanlama",COMPETITOR:"Rakip",NO_NEED:"İhtiyaç Yok",OTHER:"DiÄer"},$s={CALL:"Arama",EMAIL:"E-posta",MEETING:"Toplantı",VISIT:"Ziyaret",NOTE:"Not",TASK:"Görev"},{Search:HP}=G,za=new Intl.NumberFormat("tr-TR",{style:"currency",currency:"TRY",maximumFractionDigits:0}),UP=["NEW","CONTACTED","QUALIFIED","PROPOSAL_SENT","NEGOTIATION","WON","LOST"],qP=()=>{const t=Le(),[e,r]=k.useState("table"),[i,s]=k.useState(""),{data:a=[],isLoading:l}=Rx(),{data:o}=zP(),{data:c}=Mx(Z().year(),Z().month()+1),d=NP(),u=Tx(),m=He(g=>g.user),h=["ADMIN","MANAGER","ENGINEER"].includes((m==null?void 0:m.role)||""),p=k.useMemo(()=>a.filter(g=>{const v=i.toLowerCase();return!v||g.company_name.toLowerCase().includes(v)||g.contact_name.toLowerCase().includes(v)||(g.contact_email||"").toLowerCase().includes(v)}),[a,i]),y=[{title:"Firma / KiÅi",key:"lead",render:(g,v)=>n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:600},children:v.company_name}),n.jsx("div",{style:{color:"#8c8c8c"},children:v.contact_name})]})},{title:"Kaynak",dataIndex:"source",key:"source",render:g=>hu[g]||g},{title:"Durum",dataIndex:"status",key:"status",render:g=>n.jsx(ie,{color:Nx[g]||"default",children:Gi[g]||g})},{title:"Sorumlu",dataIndex:"assigned_to_name",key:"assigned_to_name",render:g=>g||"-"},{title:"Takip",dataIndex:"next_follow_up",key:"next_follow_up",render:g=>g?Z(g).format("DD.MM.YYYY"):"-"},{title:"Tahmini DeÄer",dataIndex:"estimated_value",key:"estimated_value",render:g=>za.format(Number(g||0))},{title:"İÅlemler",key:"actions",render:(g,v)=>n.jsxs(W,{children:[n.jsx(T,{type:"text",icon:n.jsx($t,{}),onClick:()=>t(`/crm/leads/${v.id}`)}),n.jsx(T,{type:"text",icon:n.jsx(at,{}),onClick:()=>t(`/crm/leads/${v.id}/edit`)}),h?n.jsx(Ot,{title:"Lead silinsin mi?",onConfirm:()=>d.mutate(v.id),children:n.jsx(T,{type:"text",danger:!0,icon:n.jsx(_t,{})})}):null]})}],f=()=>o?n.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(7, minmax(220px, 1fr))",gap:16,overflowX:"auto"},children:UP.map(g=>{const v=o[g];return n.jsxs("div",{onDragOver:S=>S.preventDefault(),onDrop:S=>{if(g==="LOST")return;const R=S.dataTransfer.getData("lead-id");R&&u.mutate({id:R,data:{status:g}})},style:{background:"#fafafa",borderRadius:12,padding:12,minHeight:260},children:[n.jsx("div",{style:{fontWeight:700,marginBottom:4},children:(v==null?void 0:v.label)||Gi[g]}),n.jsxs("div",{style:{color:"#8c8c8c",marginBottom:12},children:[(v==null?void 0:v.count)||0," kayıt"," · ",za.format((v==null?void 0:v.total_estimated_value)||0)]}),n.jsx(W,{direction:"vertical",style:{width:"100%"},children:((v==null?void 0:v.items)||[]).map(S=>n.jsxs(H,{size:"small",draggable:g!=="LOST",onDragStart:R=>R.dataTransfer.setData("lead-id",S.id),onClick:()=>t(`/crm/leads/${S.id}`),style:{borderLeft:`4px solid ${g==="WON"?"#52c41a":"#1677ff"}`,cursor:"pointer"},bodyStyle:{padding:10},children:[n.jsx("div",{style:{fontWeight:600},children:S.company_name}),n.jsx("div",{style:{color:"#8c8c8c",fontSize:12},children:S.contact_name}),n.jsx("div",{style:{marginTop:8,fontSize:12},children:za.format(Number(S.estimated_value||0))}),n.jsx("div",{style:{color:"#8c8c8c",fontSize:12},children:S.next_follow_up?`Takip: ${Z(S.next_follow_up).format("DD.MM")}`:"Takip yok"})]},S.id))})]},g)})}):n.jsx(ht,{description:"Pipeline verisi bulunamadı."});return n.jsx(H,{title:n.jsxs(W,{children:[n.jsx(Uv,{}),n.jsx("span",{children:"Potansiyel MüÅteriler"})]}),extra:n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{background:"#1B5E8C"},onClick:()=>t("/crm/leads/new"),children:"Yeni Lead"}),children:n.jsxs(W,{direction:"vertical",size:16,style:{width:"100%"},children:[n.jsxs(W,{wrap:!0,children:[n.jsx(Ee,{title:"Toplam Lead",value:(c==null?void 0:c.lead_statistics.total)||a.length}),n.jsx(Ee,{title:"Pipeline DeÄeri",value:(c==null?void 0:c.lead_statistics.pipeline_value)||0,formatter:g=>za.format(Number(g||0))}),n.jsx(Ee,{title:"DönüÅüm Oranı",value:(c==null?void 0:c.lead_statistics.conversion_rate)||0,suffix:"%",precision:1})]}),n.jsxs(W,{style:{width:"100%",justifyContent:"space-between"},wrap:!0,children:[n.jsx(HP,{allowClear:!0,placeholder:"Firma, kiÅi veya e-posta",style:{width:320},onChange:g=>s(g.target.value)}
135),n.jsx(Tn,{value:e,onChange:g=>r(g),options:[{label:"Tablo",value:"table"},{label:"Pipeline",value:"pipeline"}]})]}),e==="table"?n.jsx(Ie,{rowKey:"id",columns:y,dataSource:p,loading:l||d.isPending}):f()]})})},{TextArea:$P}=G,op=()=>{const{id:t}=jt(),e=Le(),[r]=x.useForm(),i=!!(t&&t!=="new"),{data:s,isLoading:a}=Ix(i&&t||""),{data:l=[]}=tr(),{data:o=[]}=qr(),{data:c=[]}=ea(),d=AP(),u=MP();k.useEffect(()=>{var p;!s||!i||r.setFieldsValue({...s,estimated_value:s.estimated_value?Number(s.estimated_value):void 0,next_follow_up:s.next_follow_up?Z(s.next_follow_up):null,interested_scope_ids:((p=s.interested_scopes_detail)==null?void 0:p.map(y=>y.id))||[]})},[r,i,s]);const m=x.useWatch("status",r),h=async p=>{const y={...p,next_follow_up:p.next_follow_up?p.next_follow_up.format("YYYY-MM-DD"):null};if(i&&t){await u.mutateAsync({id:t,data:y}),e(`/crm/leads/${t}`);return}const f=await d.mutateAsync(y);e(`/crm/leads/${f.id}`)};return n.jsx(H,{title:i?"Lead Düzenle":"Yeni Lead",loading:a,children:n.jsxs(x,{form:r,layout:"vertical",initialValues:{source:"WEBSITE",status:"NEW"},onFinish:h,children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"company_name",label:"Firma Adı",rules:[{required:!0}],children:n.jsx(G,{})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"company",label:"Mevcut Firma",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",options:l.map(p=>({value:p.id,label:p.name}))})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"contact_name",label:"Yetkili KiÅi",rules:[{required:!0}],children:n.jsx(G,{})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"contact_phone",label:"Telefon",rules:[{required:!0}],children:n.jsx(G,{})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"contact_email",label:"E-posta",children:n.jsx(G,{})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"source",label:"Kaynak",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(hu).map(([p,y])=>({value:p,label:y}))})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"status",label:"Durum",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(Gi).map(([p,y])=>({value:p,label:y}))})})}),n.jsx(C,{span:8,children:n.jsx(x.Item,{name:"assigned_to",label:"Sorumlu",children:n.jsx(pe,{allowClear:!0,options:c.map(p=>({value:p.id,label:p.full_name||p.email}))})})})]}),n.jsxs(me,{gutter:16,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"interested_scope_ids",label:"İlgilendiÄi Kapsamlar",children:n.jsx(pe,{mode:"multiple",allowClear:!0,options:o.map(p=>({value:p.id,label:`${p.code} - ${p.name}`}))})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"estimated_value",label:"Tahmini DeÄer",children:n.jsx(Ze,{min:0,precision:2,style:{width:"100%"}})})}),n.jsx(C,{span:6,children:n.jsx(x.Item,{name:"next_follow_up",label:"Sonraki Takip",children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})})})]}),m==="LOST"?n.jsx(x.Item,{name:"loss_reason",label:"Kaybetme Nedeni",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(Fc).map(([p,y])=>({value:p,label:y}))})}):null,n.jsx(x.Item,{name:"notes",label:"Notlar",children:n.jsx($P,{rows:5})}),n.jsx(x.Item,{children:n.jsxs(W,{children:[n.jsx(T,{type:"primary",htmlType:"submit",loading:d.isPending||u.isPending,children:"Kaydet"}),n.jsx(T,{onClick:()=>e(i&&t?`/crm/leads/${t}`:"/crm/leads"),children:"İptal"})]})})]})})},{TextArea:KP}=G,GP=()=>{var y;const{id:t}=jt(),e=Le(),{data:r,isLoading:i}=Ix(t||""),{data:s=[]}=ea(),a=Tx(),l=PP(),o=Ax(),[c,d]=k.useState(!1),[u]=x.useForm(),[m,h]=k.useState(!1),[p]=x.useForm();return k.useEffect(()=>{r&&u.setFieldsValue({status:r.status,loss_reason:r.loss_reason||void 0,assigned_to:r.assigned_to||void 0,next_follow_up:r.next_follow_up?Z(r.next_follow_up):null})},[r,u]),i?n.jsx("div",{style:{textAlign:"center",padding:64},children:n.jsx(mt,{size:"large"})}):r?n.jsxs(n.Fragment,{children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:16},children:[n.jsxs(W,{children:[n.jsx(T,{icon:n.jsx(Vt,{}),onClick:()=>e("/crm/leads"),children:"Geri"}),n.jsxs("div",{style:{fontSize:18,fontWeight:600}
135,children:[r.company_name,n.jsx(ie,{color:Nx[r.status]||"default",style:{marginLeft:8},children:Gi[r.status]||r.status})]})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>e(`/crm/leads/${r.id}/edit`),children:"Düzenle"}),n.jsx(T,{onClick:()=>d(!0),children:"Durum Güncelle"}),n.jsx(T,{icon:n.jsx(rt,{}),onClick:()=>h(!0),children:"Aktivite Ekle"}),r.company?null:n.jsx(T,{type:"primary",icon:n.jsx(Uc,{}),style:{background:"#237804"},loading:l.isPending,onClick:()=>l.mutate({id:r.id,data:{}},{onSuccess:f=>{var g;(g=f.company)!=null&&g.id&&e(`/companies/${f.company.id}`)}}),children:"Firmaya DönüÅtür"})]})]}),n.jsx(H,{style:{marginBottom:24},children:n.jsxs(F,{bordered:!0,column:{xxl:2,xl:2,lg:2,md:1,sm:1,xs:1},children:[n.jsx(F.Item,{label:"İletiÅim",children:r.contact_name}),n.jsx(F.Item,{label:"Telefon",children:r.contact_phone}),n.jsx(F.Item,{label:"E-posta",children:r.contact_email||"-"}),n.jsx(F.Item,{label:"Kaynak",children:hu[r.source]||r.source}),n.jsx(F.Item,{label:"Sorumlu",children:r.assigned_to_name||"-"}),n.jsx(F.Item,{label:"Takip",children:r.next_follow_up?Z(r.next_follow_up).format("DD.MM.YYYY"):"-"}),n.jsxs(F.Item,{label:"Tahmini DeÄer",children:[Number(r.estimated_value||0).toLocaleString("tr-TR")," TRY"]}),n.jsx(F.Item,{label:"Kayıp Nedeni",children:r.loss_reason?Fc[r.loss_reason]||r.loss_reason:"-"}),n.jsx(F.Item,{label:"Kapsamlar",span:2,children:(r.interested_scopes_detail||[]).length?(y=r.interested_scopes_detail)==null?void 0:y.map(f=>`${f.code} - ${f.name}`).join(", "):"-"}),n.jsx(F.Item,{label:"Notlar",span:2,children:r.notes||"-"})]})}),n.jsx(H,{title:"Aktivite Zaman Ãizelgesi",style:{marginBottom:24},children:(r.activities||[]).length?n.jsx($c,{items:(r.activities||[]).map(f=>({color:"blue",children:n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:600},children:f.subject}),n.jsxs("div",{style:{color:"#8c8c8c"},children:[$s[f.activity_type]||f.activity_type," · ",Z(f.activity_date).format("DD.MM.YYYY HH:mm")]}),n.jsx("div",{children:f.description||"-"})]})}))}):n.jsx(be,{type:"info",message:"Bu lead için henüz aktivite yok."})}),n.jsx(H,{title:"BaÄlı Teklifler",children:n.jsx(Ie,{rowKey:"id",dataSource:r.related_proposals||[],pagination:!1,locale:{emptyText:"BaÄlı teklif bulunamadı."},columns:[{title:"Teklif No",dataIndex:"proposal_number",key:"proposal_number"},{title:"BaÅlık",dataIndex:"title",key:"title"},{title:"Durum",dataIndex:"status",key:"status"},{title:"Tutar",dataIndex:"total_amount",key:"total_amount",render:(f,g)=>`${f} ${g.currency}`},{title:"İÅlem",key:"action",render:(f,g)=>n.jsx(T,{type:"link",onClick:()=>e(`/proposals/${g.id}`),children:"Aç"})}]})}),n.jsx(Ve,{title:"Lead Durumu",open:c,onCancel:()=>d(!1),onOk:()=>u.validateFields().then(f=>a.mutate({id:r.id,data:{...f,next_follow_up:f.next_follow_up?f.next_follow_up.format("YYYY-MM-DD"):void 0}},{onSuccess:()=>d(!1)})),okButtonProps:{loading:a.isPending},children:n.jsxs(x,{form:u,layout:"vertical",children:[n.jsx(x.Item,{name:"status",label:"Durum",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(Gi).map(([f,g])=>({value:f,label:g}))})}),n.jsx(x.Item,{shouldUpdate:!0,noStyle:!0,children:()=>u.getFieldValue("status")==="LOST"?n.jsx(x.Item,{name:"loss_reason",label:"Kayıp Nedeni",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries(Fc).map(([f,g])=>({value:f,label:g}))})}):null}),n.jsx(x.Item,{name:"assigned_to",label:"Sorumlu",children:n.jsx(pe,{allowClear:!0,options:s.map(f=>({value:f.id,label:f.full_name||f.email}))})}),n.jsx(x.Item,{name:"next_follow_up",label:"Sonraki Takip",children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})})]})}),n.jsx(Ve,{title:"Aktivite Ekle",open:m,onCancel:()=>h(!1),onOk:()=>p.validateFields().then(f=>o.mutate({lead:r.id,...f,activity_date:f.activity_date.toISOString(),follow_up_date:f.follow_up_date?f.follow_up_date.format("YYYY-MM-DD"):null},{onSuccess:()=>h(!1)})),okButtonProps:{loading:o.isPending},children:n.jsxs(x,{form:p,layout:"vertical",initialValues:{activity_type:"CALL"},children:[n.jsx(x.Item,{name:"activity_type",label:"Tip",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries($s).map(([f,g])=>({value:f,label:g}))})}),n.jsx(x.Item,{name:"subject",label:"Konu",rules:[{required:!0}],children:n.jsx(G,{})}),n.jsx(x.Item,{name:"description",label:"Açıklama",children:n.jsx(KP,{rows:4})}),n.jsx(x.Item,{name:"activity_date",label:"Aktivite Zamanı",rules:[{required:!0}],children:n.jsx(We,{showTime:!0,style:{width:"100%"},format:"DD.MM.YYYY HH:mm"})}),n.jsx(x.Item,{name:"duration_minutes",label:"Süre (dk)",children:n.jsx(Ze,{min:0,style:{width:"100%"}})}),n.jsx(x.Item,{name:"outcome",label:"Sonuç",children:n.jsx(G,{})}),n.jsx(x.Item,{name:"follow_up_date",label:"Takip Tarihi",children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})})]})})]}):n.jsx(be,{type:"error",message:"Lead bulunamadı."})},{TextArea:WP}=G,VP=()=>{const[t,e]=k.useState(!1),[r]=x.useForm(),{data:i=[],isLoading:s}=OP(),{data:a=[]}=Rx(),{data:l=[]}=tr(),o=Ax();return n.jsxs(n.Fragment,{children:[n.jsx(H,{title:"CRM Aktiviteleri",loading:s,extra:n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{background:"#1B5E8C"},onClick:()=>e(!0),children:"Yeni Aktivite"}),children:n.jsx($c,{items:i.map(c=>({color:"blue",children:n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:600},children:c.subject}),n.jsxs("div",{style:{color:"#8c8c8c"},children:[$s[c.activity_type]||c.activity_type," · ",new Date(c.activity_date).toLocaleStr
135ing("tr-TR")]}),n.jsx("div",{children:c.lead_company_name||c.company_name||"-"}),n.jsx("div",{children:c.description||"-"})]})}))})}),n.jsx(Ve,{title:"Yeni Aktivite",open:t,onCancel:()=>e(!1),onOk:()=>r.validateFields().then(c=>o.mutate({...c,activity_date:c.activity_date.toISOString(),follow_up_date:c.follow_up_date?c.follow_up_date.format("YYYY-MM-DD"):null},{onSuccess:()=>e(!1)})),okButtonProps:{loading:o.isPending},children:n.jsxs(x,{form:r,layout:"vertical",initialValues:{activity_type:"CALL"},children:[n.jsx(x.Item,{name:"lead",label:"Lead",children:n.jsx(pe,{allowClear:!0,options:a.map(c=>({value:c.id,label:`${c.company_name} - ${c.contact_name}`}))})}),n.jsx(x.Item,{name:"company",label:"Firma",children:n.jsx(pe,{allowClear:!0,options:l.map(c=>({value:c.id,label:c.name}))})}),n.jsx(x.Item,{name:"activity_type",label:"Tip",rules:[{required:!0}],children:n.jsx(pe,{options:Object.entries($s).map(([c,d])=>({value:c,label:d}))})}),n.jsx(x.Item,{name:"subject",label:"Konu",rules:[{required:!0}],children:n.jsx(G,{})}),n.jsx(x.Item,{name:"description",label:"Açıklama",children:n.jsx(WP,{rows:4})}),n.jsx(x.Item,{name:"activity_date",label:"Aktivite Zamanı",rules:[{required:!0}],children:n.jsx(We,{showTime:!0,style:{width:"100%"},format:"DD.MM.YYYY HH:mm"})}),n.jsx(x.Item,{name:"duration_minutes",label:"Süre (dk)",children:n.jsx(Ze,{min:0,style:{width:"100%"}})}),n.jsx(x.Item,{name:"outcome",label:"Sonuç",children:n.jsx(G,{})}),n.jsx(x.Item,{name:"follow_up_date",label:"Takip Tarihi",children:n.jsx(We,{style:{width:"100%"},format:"DD.MM.YYYY"})})]})})]})},Oa=new Intl.NumberFormat("tr-TR",{style:"currency",currency:"TRY",maximumFractionDigits:0}),QP=()=>{const[t,e]=k.useState(Z()),[r,i]=k.useState(!1),[s,a]=k.useState(null),[l]=x.useForm(),o=t.year(),c=t.month()+1,{data:d,isLoading:u}=Mx(o,c),{data:m}=YP(),{data:h=[]}=LP(),p=FP(),y=BP(),f=k.useMemo(()=>Object.entries((d==null?void 0:d.lead_statistics.by_status)||{}).map(([z,P],U)=>({label:Gi[z]||z,value:P,color:["#1d4ed8","#0f766e","#d97706","#7c3aed","#be123c","#16a34a","#dc2626"][U%7]})),[d]),g=k.useMemo(()=>Object.entries((d==null?void 0:d.activity_summary.by_type)||{}).map(([z,P],U)=>({label:$s[z]||z,value:P,color:["#1d4ed8","#0f766e","#d97706","#7c3aed","#be123c","#16a34a"][U%6],subtitle:`${P} adet`})),[d]),v=[...(m==null?void 0:m.overdue)||[],...(m==null?void 0:m.today)||[],...(m==null?void 0:m.upcoming)||[]],S=z=>{a(z||null),l.setFieldsValue(z||{year:o,month:c,target_revenue:0,target_proposals:0,target_new_customers:0}),i(!0)},R=async()=>{const z=await l.validateFields();s?await y.mutateAsync({id:s.id,data:z}):await p.mutateAsync(z),i(!1),a(null)};return n.jsxs(n.Fragment,{children:[n.jsx(H,{title:n.jsxs(W,{children:[n.jsx(qv,{}),n.jsx("span",{children:"SatıŠPaneli"})]}),loading:u,extra:n.jsxs(W,{children:[n.jsx(We,{picker:"month",value:t,onChange:z=>z&&e(z),format:"MM/YYYY"}),n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),style:{background:"#1B5E8C"},onClick:()=>S(),children:"Hedef Tanımla"})]}),children:n.jsxs(W,{direction:"vertical",size:20,style:{width:"100%"},children:[n.jsxs(W,{wrap:!0,children:[n.jsx(Ee,{title:"Hedef Gelir",value:(d==null?void 0:d.target.revenue)||0,formatter:z=>Oa.format(Number(z||0))}),n.jsx(Ee,{title:"GerçekleÅen Gelir",value:(d==null?void 0:d.actual.revenue)||0,formatter:z=>Oa.format(Number(z||0))}),n.jsx(Ee,{title:"Pipeline",value:(d==null?void 0:d.lead_statistics.pipeline_value)||0,formatter:z=>Oa.format(Number(z||0))}),n.jsx(Ee,{title:"DönüÅüm",value:(d==null?void 0:d.lead_statistics.conversion_rate)||0,suffix:"%",precision:1})]}),n.jsx(H,{size:"small",title:"Hedef vs GerçekleÅen",children:n.jsxs(W,{direction:"vertical",style:{width:"100%"},children:[n.jsxs("div",{children:["Gelir",n.jsx(oi,{percent:Math.min((d==null?void 0:d.performance.revenue_pct)||0,100)})]}),n.jsxs("div",{children:["Teklif",n.jsx(oi,{percent:Math.min((d==null?void 0:d.performance.proposals_pct)||0,100),strokeColor:"#1677ff"})]}),n.jsxs("div",{children:["Yeni MüÅteri",n.jsx(oi,{percent:Math.min((d==null?void 0:d.performance.new_customers_pct)||0,100),strokeColor:"#52c41a"})]})]})}),n.jsxs("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) minmax(0, 1fr)",gap:16},children:[n.jsx(H,{title:"Lead DaÄılımı",children:n.jsx(Wf,{items:f})}),n.jsx(H,{title:"Aktivite Ãzeti",children:n.jsx(qa,{items:g})})]}),n.jsx(H,{title:"Takip Listesi",children:n.jsx(Ie,{rowKey:z=>`${z.item_type}-${z.id}`,dataSource:v,pagination:!1,columns:[{title:"Tip",dataIndex:"item_type",key:"item_type"},{title:"BaÅlık",dataIndex:"title",key:"title"},{title:"Açıklama",dataIndex:"subject",key:"subject"},{title:"Sorumlu",dataIndex:"assigned_to_name",key:"assigned_to_name",render:z=>z||"-"},{title:"Tarih",dataIndex:"follow_up_date",key:"follow_up_date",render:z=>Z(z).format("DD.MM.YYYY")},{title:"Durum",dataIndex:"status",key:"status"}]})}),n.jsx(H,{title:"SatıŠHedefleri",children:n.jsx(Ie,{rowKey:"id",dataSource:h,pagination:{pageSize:6}
135,columns:[{title:"Yıl",dataIndex:"year",key:"year"},{title:"Ay",dataIndex:"month",key:"month"},{title:"Gelir Hedefi",dataIndex:"target_revenue",key:"target_revenue",render:z=>Oa.format(Number(z||0))},{title:"Teklif",dataIndex:"target_proposals",key:"target_proposals"},{title:"Yeni MüÅteri",dataIndex:"target_new_customers",key:"target_new_customers"},{title:"İÅlem",key:"action",render:(z,P)=>n.jsx(T,{type:"link",onClick:()=>S(P),children:"Düzenle"})}]})})]})}),n.jsx(Ve,{title:s?"SatıŠHedefini Düzenle":"SatıŠHedefi",open:r,onCancel:()=>i(!1),onOk:R,okButtonProps:{loading:p.isPending||y.isPending},children:n.jsxs(x,{form:l,layout:"vertical",children:[n.jsx(x.Item,{name:"year",label:"Yıl",rules:[{required:!0}],children:n.jsx(Ze,{min:2024,max:2100,style:{width:"100%"}})}),n.jsx(x.Item,{name:"month",label:"Ay",rules:[{required:!0}],children:n.jsx(Ze,{min:1,max:12,style:{width:"100%"}})}),n.jsx(x.Item,{name:"target_revenue",label:"Gelir Hedefi",rules:[{required:!0}],children:n.jsx(Ze,{min:0,precision:2,style:{width:"100%"}})}),n.jsx(x.Item,{name:"target_proposals",label:"Teklif Hedefi",rules:[{required:!0}],children:n.jsx(Ze,{min:0,style:{width:"100%"}})}),n.jsx(x.Item,{name:"target_new_customers",label:"Yeni MüÅteri Hedefi",rules:[{required:!0}],children:n.jsx(Ze,{min:0,style:{width:"100%"}})})]})})]})},Px={getAuditLogs:async t=>{const e=new URLSearchParams;return t&&Object.entries(t).forEach(([i,s])=>{s&&e.append(i,s)}),(await L.get(`/audit-logs/?${e.toString()}`)).data.results},getAuditLog:async t=>(await L.get(`/audit-logs/${t}/`)).data,getRecordHistory:async(t,e)=>(await L.get(`/audit-logs/record-history/?table=${t}&id=${e}`)).data,getUserActivity:async(t,e,r)=>{const i=new URLSearchParams({user_id:t});return e&&i.append("start",e),r&&i.append("end",r),(await L.get(`/audit-logs/user-activity/?${i.toString()}`)).data},exportLogs:async t=>{const e=new URLSearchParams;return t&&Object.entries(t).forEach(([i,s])=>{s&&e.append(i,s)}),(await L.get(`/audit-logs/export/?${e.toString()}`)).data}},XP=t=>Re({queryKey:["audit-logs",t],queryFn:()=>Px.getAuditLogs(t)}),ZP=t=>Re({queryKey:["audit-logs",t],queryFn:()=>Px.getAuditLog(t),enabled:!!t}),{RangePicker:JP}=We,{Title:ez,Text:Qo}=ft,La={CREATE:{label:"OluÅturma",color:"green"},UPDATE:{label:"Güncelleme",color:"blue"},DELETE:{label:"Silme",color:"red"},LOGIN:{label:"GiriÅ",color:"cyan"},LOGIN_FAILED:{label:"BaÅarısız GiriÅ",color:"volcano"},LOGOUT:{label:"ÃıkıÅ",color:"default"},EXPORT:{label:"DıÅa Aktarım",color:"purple"},PDF_GENERATE:{label:"PDF Ãretimi",color:"geekblue"},SIGN:{label:"İmzalama",color:"gold"},APPROVE:{label:"Onaylama",color:"lime"},REJECT:{label:"Reddetme",color:"magenta"},STATUS_CHANGE:{label:"Durum DeÄiÅikliÄi",color:"orange"}},Xo={companies:"Firmalar",personnel:"Personel",devices:"Cihazlar",equipment:"Ekipmanlar",services:"Hizmetler",reports:"Raporlar",proposals:"Teklifler",documents:"Dokümanlar",feedback:"Geri Bildirim",vehicles:"Araçlar",auth:"Kimlik DoÄrulama"},tz=()=>{var c,d;const[t,e]=k.useState({}),[r,i]=k.useState(null),{data:s,isLoading:a}=XP(t),{data:l}=ZP(r||""),o=[{title:"Tarih",dataIndex:"created_at",key:"created_at",width:170,render:u=>Z(u).format("DD.MM.YYYY HH:mm:ss"),sorter:(u,m)=>new Date(u.created_at).getTime()-new Date(m.created_at).getTime(),defaultSortOrder:"descend"},{title:"Kullanıcı",dataIndex:"user_full_name",key:"user_full_name",width:180,render:(u,m)=>u||m.user_email||"Anonim"},{title:"İÅlem",dataIndex:"action",key:"action",width:150,render:u=>{const m=La[u]||{label:u,color:"default"};return n.jsx(ie,{color:m.color,children:m.label})}},{title:"Tablo",dataIndex:"table_name",key:"table_name",width:140,render:u=>Xo[u]||u},{title:"Kayıt",dataIndex:"record_repr",key:"record_repr",ellipsis:!0},{title:"IP Adresi",dataIndex:"ip_address",key:"ip_address",width:140}];return n.jsxs("div",{children:[n.jsx(ez,{level:3,children:"İÅlem GeçmiÅi (Audit Log)"}),n.jsx(H,{style:{marginBottom:16},children:n.jsxs(W,{wrap:!0,children:[n.jsx(pe,{placeholder:"İÅlem Tipi",allowClear:!0,style:{width:180},onChange:u=>e(m=>({...m,action:u||void 0})),options:Object.entries(La).map(([u,m])=>({value:u,label:m.label}))}),n.jsx(pe,{placeholder:"Tablo",allowClear:!0,style:{width:180},onChange:u=>e(m=>({...m,table_name:u||void 0})),options:Object.entries(Xo).map(([u,m])=>({value:u,label:m}))}),n.jsx(JP,{placeholder:["BaÅlangıç","BitiÅ"],onChange:u=>{u&&u[0]&&u[1]?e(m=>({...m,created_at_after:u[0].toISOString(),created_at_before:u[1].toISOString()})):e(m=>({...m,created_at_after:void 0,created_at_before:void 0}))}}),n.jsx(G.Search,{placeholder:"Kayıt ara...",allowClear:!0,style:{width:250},onSearch:u=>e(m=>({...m,search:u||void 0}))})]})}),n.jsx(Ie,{columns:o,dataSource:s,rowKey:"id",loading:a,pagination:{pageSize:20,showSizeChanger:!0},onRow:u=>({onClick:()=>i(u.id),style:{cursor:"pointer"}})}),n.jsx(Ve,{title:"İÅlem Detayı",open:!!r,onCancel:()=>i(null),footer:null,width:700,children:l&&n.jsxs(F,{bordered:!0,column:1,size:"small",children:[n.jsx(F.Item,{label:"Tarih",children:Z(l.created_at).format("DD.MM.YYYY HH:mm:ss")}),n.jsx(F.Item,{label:"Kullanıcı",children:l.user_full_name||l.user_email||"Anonim"}
135),n.jsx(F.Item,{label:"İÅlem",children:n.jsx(ie,{color:((c=La[l.action])==null?void 0:c.color)||"default",children:((d=La[l.action])==null?void 0:d.label)||l.action})}),n.jsx(F.Item,{label:"Tablo",children:Xo[l.table_name]||l.table_name}),n.jsx(F.Item,{label:"Kayıt",children:l.record_repr||"-"}),n.jsx(F.Item,{label:"IP Adresi",children:l.ip_address||"-"}),n.jsx(F.Item,{label:"HTTP Metodu",children:l.request_method||"-"}),n.jsx(F.Item,{label:"İstek Yolu",children:l.request_path||"-"}),l.changes&&n.jsx(F.Item,{label:"DeÄiÅiklikler",children:n.jsx("div",{style:{background:"#f5f5f5",padding:12,borderRadius:6,maxHeight:300,overflow:"auto"},children:Object.entries(l.changes).map(([u,m])=>n.jsxs("div",{style:{marginBottom:8},children:[n.jsxs(Qo,{strong:!0,children:[u,":"]}),n.jsxs("div",{style:{marginLeft:16},children:[n.jsx(Qo,{type:"danger",delete:!0,children:String(m.old)})," â ",n.jsx(Qo,{type:"success",children:String(m.new)})]})]},u))})}),l.extra_data&&n.jsx(F.Item,{label:"Ek Veri",children:n.jsx("pre",{style:{background:"#f5f5f5",padding:12,borderRadius:6,fontSize:12,maxHeight:200,overflow:"auto",margin:0},children:JSON.stringify(l.extra_data,null,2)})})]})})]})},nz=[{icon:n.jsx(Es,{}),title:"Firma, ekip ve envanter yönetimi",description:"MüÅterileri, uzmanları, cihazları, ekipmanları ve kalibrasyon kayıtlarını birbiriyle iliÅkili biçimde yönetin."},{icon:n.jsx(nl,{}),title:"Planlama ve saha koordinasyonu",description:"İÅleri takvimleyin, sorumluları belirleyin ve ofis ile saha arasındaki bilgi kaybını ortadan kaldırın."},{icon:n.jsx(ws,{}),title:"Dijital kontrol ve raporlama",description:"Ãlçümleri, kontrol maddelerini, uygunsuzlukları ve fotoÄrafları aynı kayıt üzerinde tamamlayın."},{icon:n.jsx(qn,{}),title:"PDF ve e-imza entegrasyonu",description:"Kurumsal PDF raporları EkipLab İmza Köprüsü ile USB/Token sertifikanız üzerinden imzalayın ve doÄrulayın."},{icon:n.jsx(yp,{}),title:"Operasyon görünürlüÄü",description:"Devam eden iÅleri, rapor durumlarını ve ekip performansını tek bakıÅta izleyerek darboÄazları erken görün."},{icon:n.jsx(xp,{}),title:"İzlenebilir kayıt düzeni",description:"Tekliften son rapora kadar oluÅan belgeleri, revizyonları ve iÅlem geçmiÅini düzenli bir kurumsal hafızada tutun."}],rz=[{number:"01",title:"İÅi oluÅturun",description:"MüÅteriyi, lokasyonu, kapsamı ve sorumlu ekibi tek kayıtta bir araya getirin."},{number:"02",title:"Sahayı yönetin",description:"Kontrol adımlarını, ölçümleri ve saha bulgularını standart bir akıÅla tamamlayın."},{number:"03",title:"Raporu hazırlayın",description:"Toplanan verilerden kurumsal, tutarlı ve revizyona açık PDF raporlar üretin."},{number:"04",title:"İmzalayın ve arÅivleyin",description:"Raporu EkipLab İmza Köprüsü ile e-imzalayın; doÄrulanmıŠPDFâi güvenli biçimde arÅivleyin."}],iz=()=>{const t=Le();return k.useEffect(()=>{document.title="EkipLab | Periyodik Kontrol Operasyon Platformu"},[]),n.jsxs("div",{className:"landing-page",children:[n.jsxs("header",{className:"landing-header",children:[n.jsxs("a",{className:"landing-brand",href:"#top","aria-label":"EkipLab ana sayfa",children:[n.jsx("img",{src:"/logo.png",alt:""}),n.jsxs("span",{children:[n.jsx("strong",{children:"ekip"}),"lab"]})]}),n.jsxs("nav",{className:"landing-nav","aria-label":"Ana menü",children:[n.jsx("a",{href:"#ekiplab-nedir",children:"EkipLab nedir?"}),n.jsx("a",{href:"#yetenekler",children:"Neler sunar?"}),n.jsx("a",{href:"#nasil-calisir",children:"Nasıl çalıÅır?"}),n.jsx("a",{href:"#e-imza",children:"E-imza"})]}),n.jsxs("div",{className:"landing-header__actions",children:[n.jsx(T,{type:"text",onClick:()=>t("/login"),children:"GiriÅ yap"}),n.jsxs(T,{className:"landing-button landing-button--small",onClick:()=>t("/request-access"),children:["İletiÅime geç ",n.jsx(Ba,{})]})]})]}),n.jsxs("main",{id:"top",children:[n.jsxs("section",{className:"landing-hero","aria-labelledby":"landing-heading",children:[n.jsxs("div",{className:"landing-hero__copy",children:[n.jsxs("span",{className:"landing-eyebrow",children:[n.jsx("span",{className:"landing-eyebrow__dot"}),"Periyodik kontrol operasyon platformu"]}),n.jsxs("h1",{id:"landing-heading",className:"landing-title",children:["Sahadan rapora,",n.jsx("span",{children:" bütün ekip aynı akıÅta."})]}),n.jsx("p",{className:"landing-subtitle",children:"EkipLab; periyodik kontrol firmalarının müÅteri, ekip, saha, ölçüm, rapor ve e-imza
135süreçlerini tek bir düzenli çalıÅma alanında buluÅturur."}),n.jsxs("div",{className:"landing-hero__actions",children:[n.jsxs(T,{size:"large",className:"landing-button landing-button--primary",onClick:()=>t("/request-access"),children:["EkipLabâı keÅfedin ",n.jsx(Ba,{})]}),n.jsx("a",{className:"landing-text-link",href:"#ekiplab-nedir",children:"Nasıl yardımcı olur?"})]}),n.jsxs("div",{className:"landing-hero__proof","aria-label":"Platform özellikleri",children:[n.jsxs("span",{children:[n.jsx(Nr,{})," Türkiyeâdeki periyodik kontrol akıÅına göre tasarlandı"]}),n.jsxs("span",{children:[n.jsx(Nr,{})," Ofis ve saha ekipleri için tek kayıt düzeni"]})]})]}),n.jsxs("div",{className:"landing-product landing-product--screenshot","aria-label":"Gerçek EkipLab operasyon ekranı",children:[n.jsx("div",{className:"landing-product__glow"}),n.jsxs("div",{className:"landing-product__screenshot-window",children:[n.jsxs("div",{className:"landing-product__screenshot-bar",children:[n.jsxs("span",{className:"landing-product__screenshot-dots","aria-hidden":"true",children:[n.jsx("i",{}),n.jsx("i",{}),n.jsx("i",{})]}),n.jsx("span",{children:"Gerçek EkipLab ekranı"})]}),n.jsx("img",{src:"/landing/dashboard.png",alt:"EkipLab operasyon panelinde iÅ emirleri, raporlar ve kalibrasyon özetleri"})]}),n.jsxs("div",{className:"landing-product__badge landing-product__badge--signature",children:[n.jsx(qn,{}),n.jsxs("span",{children:[n.jsx("strong",{children:"Gerçek ürün görünümü"}),n.jsx("small",{children:"Yerel demo çalıÅma alanı"})]})]}),n.jsxs("div",{className:"landing-product__badge landing-product__badge--sync",children:[n.jsx($v,{}),n.jsxs("span",{children:[n.jsx("strong",{children:"Tek kayıt"}),n.jsx("small",{children:"Ofis ve saha senkron"})]})]})]})]}),n.jsxs("section",{className:"landing-intro",id:"ekiplab-nedir","aria-labelledby":"intro-heading",children:[n.jsx("div",{className:"landing-section-label",children:"EkipLab nedir?"}),n.jsxs("div",{className:"landing-intro__content",children:[n.jsx("h2",{id:"intro-heading",children:"DaÄınık araçların yerini alan ortak çalıÅma düzeni."}),n.jsxs("div",{children:[n.jsx("p",{children:"EkipLab, periyodik kontrol iÅini yalnızca ârapor hazırlamakâ olarak görmez. Teklif, planlama, müÅteri bilgisi, ekipman geçmiÅi, saha verisi, onay ve arÅiv; aynı iÅin birbirine baÄlı parçalarıdır."}),n.jsx("p",{children:"Bu parçaları tek platformda birleÅtirerek ekiplerin güncel bilgiyle çalıÅmasını, yöneticilerin operasyonu görmesini ve her raporun geriye dönük izlenebilmesini saÄlar."})]})]}),n.jsxs("div",{className:"landing-intro__outcomes",children:[n.jsxs("article",{children:[n.jsx("span",{children:"01"}),n.jsx("strong",{children:"Daha az tekrar"}),n.jsx("p",{children:"Aynı bilgiyi farklı dosyalara yeniden girmek yerine kayıtları iÅ boyunca kullanın."})]}),n.jsxs("article",{children:[n.jsx("span",{children:"02"}),n.jsx("strong",{children:"Daha net sorumluluk"}),n.jsx("p",{children:"Hangi iÅin kimde olduÄunu ve sıradaki adımı herkes aynı yerden görsün."})]}),n.jsxs("article",{children:[n.jsx("span",{children:"03"}),n.jsx("strong",{children:"Daha tutarlı çıktı"}),n.jsx("p",{children:"Rapor dilini, kurumsal görünümü ve kontrol akıÅını ekip genelinde standartlaÅtırın."})]})]})]}),n.jsxs("section",{className:"landing-capabilities",id:"yetenekler","aria-labelledby":"capabilities-heading",children:[n.jsxs("div",{className:"landing-section-heading",children:[n.jsxs("div",{children:[n.jsx("span",{className:"landing-section-label",children:"Bütün operasyon tek merkezde"}),n.jsx("h2",{id:"capabilities-heading",children:"Ekibinizin günlük iÅine uyum saÄlayan güçlü bir temel."})]}),n.jsx("p",{children:"EkipLab, saha gerçekliÄini ofis düzeniyle buluÅturur. Her modül aynı kayıt yapısının parçası olduÄu için bilgi, süreç boyunca kopmadan ilerler."})]}),n.jsx("div",{className:"landing-capabilities__grid",children:nz.map(e=>n.jsxs("article",{className:"landing-capability",children:[n.jsx("div",{className:"landing-capability__icon",children:e.icon}),n.jsx("h3",{children:e.title}),n.jsx("p",{children:e.description})]},e.title))})]}),n.jsxs("section",{className:"landing-workflow",id:"nasil-calisir","aria-labelledby":"workflow-heading",children:[n.jsxs("div",{className:"landing-workflow__copy",children:[n.jsx("span",{className:"landing-section-label",children:"Nasıl çalıÅır?"}),n.jsx("h2",{id:"workflow-heading",children:"Her iÅ, baÅından sonuna izlenebilir bir yol izler."}),n.jsx("p",{children:"EkipLab, ekibin mevcut çalıÅma biçimini zorlaÅtırmadan ortak bir standart oluÅturur. Bilgi bir aÅamadan diÄerine aktarılır; iÅ ilerledikçe kayıt da olgunlaÅır."}),n.jsxs("div",{className:"landing-workflow__assurance",children:[n.jsx(Bi,{}),n.jsxs("span",{children:[n.jsx("strong",{children:"KuruluÅunuza özel çalıÅma alanı"}),"Rol ve yetkilere göre kontrollü eriÅim."]})]})]}),n.jsx("div",{className:"landing-workflow__steps",children:rz.map(e=>n.jsxs("article",{children:[n.jsx("span",{children:e.number}),n.jsxs("div",{children:[n.jsx("h3",{children:e.title}),n.jsx("p",{children:e.description})]})]},e.number))})]}),n.jsxs("section",{className:"landing-esign",id:"e-imza","aria-labelledby":"esign-heading",children:[n.jsxs("div",{className:"landing-esign__visual","aria-label":"Gerçek EkipLab rapor ve e-imza ekranları",children:[n.jsxs("figure",{className:"landing-esign__screen landing-esign__screen--reports",children:[n.jsx("img",{src:"/landing/reports.png",alt:"EkipLab rapor listesinde taslak, onaylı ve e-imzalı rapor durumları",loading:"lazy"}),n.jsx("figcaption",{children:"Rapor yönetimi"})]}),n.jsxs("figure",{className:"landing-esign__screen landing-esign__screen--detail",children:[n.jsx("img",{src:"/landing/esign-report.png",alt:"EkipLab e-imzalı rapor detayı ve rapor imzalama ekranı",loading:"lazy"}),n.jsx("figcaption",{children:"E-imzalı rapor detayı"})]})]}),n.jsxs("div",{className:"landing-esign__copy",children:[n.jsx("span",{className:"landing-section-label",children:"E-imza entegrasyonu"}),n.jsx("h2",{id:"esign-heading",children:"İmza süreci panelden baÅlar, güvenli biçimde bilgisayarınızda tamamlanır."}),n.jsx("p",{children:"EkipLab İmza Köprüsü; web panelini tarayıcı eklentisi üzerinden bilgisayarınızdaki EkipLab İmza Yardımcısı ve USB/Token sertifikanızla buluÅturur. Böylece ra
135poru indirip farklı araçlar arasında taÅımadan PAdES e-imza akıÅını yönetebilirsiniz."}),n.jsxs("div",{className:"landing-esign__steps",children:[n.jsxs("article",{children:[n.jsx("span",{children:"01"}),n.jsxs("div",{children:[n.jsx("strong",{children:"Onaylı PDF hazırlanır"}),n.jsx("p",{children:"İmzalanacak rapor sürümü sistemde sabitlenir."})]})]}),n.jsxs("article",{children:[n.jsx("span",{children:"02"}),n.jsxs("div",{children:[n.jsx("strong",{children:"Sertifika yerelde seçilir"}),n.jsx("p",{children:"Eklenti, bilgisayarınızdaki imza yardımcısıyla güvenli baÄlantı kurar."})]})]}),n.jsxs("article",{children:[n.jsx("span",{children:"03"}),n.jsxs("div",{children:[n.jsx("strong",{children:"PIN yalnızca cihazda sorulur"}),n.jsx("p",{children:"PIN tarayıcıya veya EkipLab sunucusuna iletilmez."})]})]}),n.jsxs("article",{children:[n.jsx("span",{children:"04"}),n.jsxs("div",{children:[n.jsx("strong",{children:"İmzalı PDF doÄrulanır"}),n.jsx("p",{children:"İmza kontrol edilir, rapor durumu güncellenir ve iÅlem geçmiÅe kaydedilir."})]})]})]}),n.jsxs("div",{className:"landing-esign__assurances",children:[n.jsxs("span",{children:[n.jsx(qn,{})," USB/Token sertifika"]}),n.jsxs("span",{children:[n.jsx(Bi,{})," Yerel PIN güvenliÄi"]}),n.jsxs("span",{children:[n.jsx(Nr,{})," PAdES imza doÄrulama"]})]})]})]}),n.jsxs("section",{className:"landing-trust","aria-labelledby":"trust-heading",children:[n.jsx("div",{className:"landing-trust__mark",children:n.jsx(qn,{})}),n.jsxs("div",{children:[n.jsx("span",{className:"landing-section-label",children:"Düzen, güven ve devamlılık"}),n.jsx("h2",{id:"trust-heading",children:"Kurumsal hafızanız kiÅilerde deÄil, sistemde yaÅasın."})]}),n.jsxs("div",{className:"landing-trust__list",children:[n.jsxs("span",{children:[n.jsx(Nr,{})," KuruluÅ bazlı veri ayrımı"]}),n.jsxs("span",{children:[n.jsx(Nr,{})," Rol ve yetki yönetimi"]}),n.jsxs("span",{children:[n.jsx(Nr,{})," İÅlem ve revizyon geçmiÅi"]}),n.jsxs("span",{children:[n.jsx(Nr,{})," Güvenli rapor arÅivi"]})]})]}),n.jsxs("section",{className:"landing-cta","aria-labelledby":"cta-heading",children:[n.jsx("div",{className:"landing-cta__orb landing-cta__orb--one"}),n.jsx("div",{className:"landing-cta__orb landing-cta__orb--two"}),n.jsxs("div",{className:"landing-cta__content",children:[n.jsx("span",{className:"landing-section-label",children:"Birlikte deÄerlendirelim"}),n.jsx("h2",{id:"cta-heading",children:"Periyodik kontrol operasyonunuzu daha düzenli bir yapıya taÅıyın."}),n.jsx("p",{children:"Ekibinizin çalıÅma biçimini ve ihtiyaçlarını paylaÅın; EkipLabâın süreçlerinize nasıl uyum saÄlayabileceÄini birlikte ele alalım."}),n.jsxs("div",{children:[n.jsxs(T,{size:"large",className:"landing-button landing-button--light",onClick:()=>t("/request-access"),children:["İletiÅime geçin ",n.jsx(Ba,{})]}),n.jsx(T,{size:"large",type:"text",className:"landing-button--ghost",onClick:()=>t("/login"),children:"Hesabınıza giriÅ yapın"})]})]})]})]}),n.jsxs("footer",{className:"landing-footer",children:[n.jsxs("a",{className:"landing-brand landing-brand--footer",href:"#top","aria-label":"EkipLab ana sayfa",children:[n.jsx("img",{src:"/logo.png",alt:""}),n.jsxs("span",{children:[n.jsx("strong",{children:"ekip"}),"lab"]})]}),n.jsx("p",{children:"Periyodik kontrol ekipleri için sahadan rapora bütünleÅik operasyon platformu."}),n.jsxs("div",{children:[n.jsx("a",{href:"/privacy",children:"Gizlilik"}),n.jsx("button",{type:"button",onClick:()=>t("/login"),children:"GiriÅ yap"}),n.jsx("button",{type:"button",onClick:()=>t("/request-access"),children:"İletiÅim"})]})]})]})},{Title:ar,Paragraph:gn,Text:sz}=ft,az=()=>(k.useEffect(()=>{document.title="Gizlilik Politikasi | EkipLab"},[]),n.jsxs("main",{className:"privacy-page",children:[n.jsxs("section",{className:"privacy-page__header",children:[n.jsx(sz,{className:"privacy-page__eyebrow",children:"EkipLab"}),n.jsx(ar,{children:"Gizlilik Politikasi"}),n.jsx(gn,{children:"Son guncelleme: 10 Temmuz 2026"})]}),n.jsxs("section",{className:"privacy-page__content",children:[n.jsx(ar,{level:2,children:"Kapsam"}),n.jsx(gn,{children:"Bu gizlilik politikasi EkipLab web platformu, EkipLab Imza Koprusu tarayici eklentisi ve bilgisayarda calisan EkipLab Imza Yardimcisi native host uygulamasi icin gecerlidir. EkipLab; periyodik kontrol, raporlama, belge arsivleme ve e-imza akislarini yonetmek icin kullanilir."}),n.jsx(ar,{level:2,children:"Islenen Veriler"}),n.jsx(gn,{children:"EkipLab web platformu;
135 kullanici hesabi bilgileri, kurulus ve tenant bilgileri, rapor ve belge icerikleri, imza kayitlari, islem gecmisi, teknik loglar ve guvenlik amacli oturum bilgilerini isleyebilir. Bu veriler hizmetin saglanmasi, raporlarin uretilmesi, yetkilendirme, denetim izi tutulmasi ve yasal yukumluluklerin yerine getirilmesi icin kullanilir."}),n.jsx(ar,{level:2,children:"EkipLab Imza Koprusu Eklentisi"}),n.jsx(gn,{children:"EkipLab Imza Koprusu tarayici eklentisi, yalnizca EkipLab web paneli ile kullanicinin bilgisayarinda kurulu EkipLab Imza Yardimcisi arasinda guvenli native messaging baglantisi kurar. Eklenti reklam, analiz, pazarlama veya kullanici takibi amaciyla veri toplamaz."}),n.jsx(gn,{children:"Eklenti; tarama gecmisini, sayfa iceriklerini, konum bilgisini, kullanici iletisimlerini, saglik bilgilerini, finansal bilgileri, sifreleri veya e-imza PIN bilgisini okumaz, saklamaz ve ucuncu taraflarla paylasmaz. Eklenti yalnizca kullanicinin EkipLab panelinde baslattigi imza islemi icin kisa omurlu imza oturumu bilgisini yerel native host uygulamasina iletir."}),n.jsx(gn,{children:"Imza oturumu kapsaminda iletilen teknik bilgiler; istek kimligi, rapor kimligi, tenant bilgisi, tek kullanimlik nonce, PDF indirme adresi ve imzali PDF yukleme adresi gibi imza akisini tamamlamak icin gerekli alanlarla sinirlidir. Bu bilgiler kisa omurludur ve eklenti tarafindan kalici olarak saklanmaz."}),n.jsx(ar,{level:2,children:"PIN, Ozel Anahtar ve Sertifikalar"}),n.jsx(gn,{children:"E-imza PIN'i tarayici eklentisi veya EkipLab sunucusu tarafindan alinmaz. PIN yalnizca kullanicinin bilgisayarindaki yerel diyalogda girilir. Ozel anahtar USB token, akilli kart veya kullanicinin yerel sertifika deposundan cikmaz. Eklenti ve sunucu ozel anahtara erisemez."}),n.jsx(gn,{children:"Sertifika listeleme islevi kullanildiginda yalnizca sertifika meta bilgileri goruntulenir: konu, veren, seri numarasi, gecerlilik tarihi ve kaynak bilgisi. Ozel anahtar, PIN veya parola aktarilmaz."}),n.jsx(ar,{level:2,children:"Veri Paylasimi"}),n.jsx(gn,{children:"EkipLab kullanici verilerini reklam amaciyla satmaz veya kiralamaz. Veriler yalnizca hizmetin saglanmasi, altyapi, guvenlik, yedekleme, e-posta bildirimi, hukuki yukumlulukler ve yetkili kamu kurumlarindan gelen gecerli talepler kapsaminda islenebilir."}),n.jsx(ar,{level:2,children:"Saklama Suresi"}),n.jsx(gn,{children:"Raporlar, imza kayitlari, denetim loglari ve operasyonel veriler; hizmet sozlesmesi, kurumsal ihtiyaclar ve yasal saklama sureleri dogrultusunda saklanir. Kisa omurlu imza oturumu nonce degerleri imza islemi tamamlandiginda veya oturum suresi doldugunda gecersiz hale gelir."}),n.jsx(ar,{level:2,children:"Guvenlik"}),n.jsx(gn,{children:"EkipLab; HTTPS, rol bazli yetkilendirme, tenant ayrimi, denetim kayitlari, tek kullanimlik imza oturumlari ve sunucu tarafli imza dogrulama mekanizmalari kullanir. Native host ile tarayici eklentisi arasindaki mesajlar sinirli bir protokol ve izin verilen kaynak kontrolleri ile islenir."}),n.jsx(ar,{level:2,children:"Kullanici Haklari"}),n.jsx(gn,{children:"Yetkili kullanicilar, mevzuatin izin verdigi olcude kendileriyle ilgili verilere erisim, duzeltme, silme, isleme itiraz etme veya veri tasinabilirligi taleplerini EkipLab'a iletebilir. Kurumsal hesaplarda bazi talepler ilgili kurulus yoneticisi veya yasal saklama yukumlulukleri uzerinden degerlendirilebilir."}),n.jsx(ar,{level:2,children:"Iletisim"}),n.jsx(gn,{children:"Gizlilik politikasi, veri isleme surecleri veya EkipLab Imza Koprusu hakkindaki sorular icin bizimle iletisime gecebilirsiniz."}),n.jsxs(gn,{children:[n.jsx("strong",{children:"E-posta:"})," [email protected]",n.jsx("br",{}),n.jsx("strong",{children:"Web:"})," https://ekiplab.com"]})]})]})),{Title:lz,Text:oz}=ft,cz=()=>{const[t]=x.useForm(),e=Le(),{login:r}=He(),[i,s]=k.useState(!1),[a,l]=k.useState(!1),[o,c]=k.useState(null),d=x.useWatch("slug",t),u=k.useMemo(()=>(d||"").trim().toLowerCase(),[d]),m=async()=>{if(!u){c(null);return}s(!0);try{const p=await Nt.checkSlug(u);c(p.available?{type:"success",text:`${u}.ekiplab.com kullanıma hazır.`}:{type:"error",text:p.reason||"Bu subdomain kullanılamıyor."})}catch(p){c({type:"error",text:"Subdomain uygunluÄu kontrol edilemedi."}),ce(p,"Slug kontrolü baÅarısız.")}finally{s(!1)}},h=async p=>{l(!0);try{const y=await Nt.register({company_name:p.company_name,slug:p.slug.toLowerCase(),owner_first_name:p.owner_first_name,owner_last_name:p.owner_last_name,owner_email:p.owner_email,owner_password:p.owner_password,owner_password_confirm:p.owner_password_confirm,phone:p.phone});if(re.success("KuruluÅ hesabı oluÅturuldu."),Ws(y,r,e,"/dashboard"))return;e("/tenant-select",{replace:!0})}catch(y){ce(y,"KuruluÅ hesabı oluÅturulamadı.")}finally{l(!1)}};
135return n.jsx("div",{className:"login-page",children:n.jsxs(H,{className:"login-card login-card--wide",children:[n.jsxs("div",{className:"auth-card__header",children:[n.jsx(lz,{level:2,children:"KuruluÅunuzu OluÅturun"}),n.jsx(oz,{type:"secondary",children:"Firma bilgilerini tanımlayın, subdomain seçin ve ilk yönetici hesabınızı açın."})]}),o&&n.jsx(be,{style:{marginBottom:20},type:o.type,showIcon:!0,message:o.text}),n.jsx(be,{style:{marginBottom:20},type:"info",showIcon:!0,message:"KuruluÅ branding bilgileri tenant bazlı çalıÅır",description:"Kayıttan hemen sonra KuruluÅ Ayarları ekranından logonuzu yüklediÄinizde rapor PDF'lerinde kendi firma adı ve logonuz görünür."}),n.jsxs(x,{form:t,layout:"vertical",size:"large",onFinish:h,children:[n.jsx(x.Item,{name:"company_name",label:"Firma Adı",rules:[{required:!0,message:"Firma adı zorunludur."}],children:n.jsx(G,{prefix:n.jsx(Ds,{}),placeholder:"Ãrn. MefTech Engineering"})}),n.jsx(x.Item,{name:"slug",label:"Subdomain",rules:[{required:!0,message:"Subdomain zorunludur."}],children:n.jsx(G,{addonAfter:n.jsx(T,{type:"link",onClick:m,loading:i,children:"Kontrol Et"}),placeholder:"meftech"})}),n.jsx(x.Item,{name:"owner_first_name",label:"Ad",rules:[{required:!0,message:"Ad zorunludur."}],children:n.jsx(G,{prefix:n.jsx(Ss,{}),placeholder:"Mehmet"})}),n.jsx(x.Item,{name:"owner_last_name",label:"Soyad",rules:[{required:!0,message:"Soyad zorunludur."}],children:n.jsx(G,{prefix:n.jsx(Ss,{}),placeholder:"Yılmaz"})}),n.jsx(x.Item,{name:"owner_email",label:"E-posta",rules:[{required:!0,message:"E-posta zorunludur."},{type:"email",message:"Geçerli bir e-posta adresi girin."}],children:n.jsx(G,{prefix:n.jsx(Al,{}),placeholder:"[email protected]"})}),n.jsx(x.Item,{name:"phone",label:"Telefon",children:n.jsx(G,{prefix:n.jsx(Ep,{}),placeholder:"+90 5xx xxx xx xx"})}),n.jsx(x.Item,{name:"owner_password",label:"Åifre",rules:[{required:!0,message:"Åifre zorunludur."}],children:n.jsx(G.Password,{prefix:n.jsx(Bi,{}),placeholder:"En az 8 karakter"})}),n.jsx(x.Item,{name:"owner_password_confirm",label:"Åifre Tekrar",dependencies:["owner_password"],rules:[{required:!0,message:"Åifre tekrarı zorunludur."},({getFieldValue:p})=>({validator(y,f){return!f||p("owner_password")===f?Promise.resolve():Promise.reject(new Error("Åifreler eÅleÅmiyor."))}})],children:n.jsx(G.Password,{prefix:n.jsx(Bi,{}),placeholder:"Åifreyi tekrar girin"})}),n.jsxs(W,{direction:"vertical",size:"middle",style:{width:"100%"},children:[n.jsx(T,{type:"primary",htmlType:"submit",block:!0,loading:a,children:"KuruluÅu OluÅtur"}),n.jsx(T,{block:!0,onClick:()=>e("/request-access"),children:"Beta eriÅim talebi bırak"}),n.jsx(T,{block:!0,onClick:()=>e("/login"),children:"Zaten hesabım var"})]})]})]})})},{Title:dz,Text:uz}=ft,{TextArea:mz}=G,hz=()=>{const[t]=x.useForm(),e=Le(),r=yb(),i=async s=>{var a;await r.mutateAsync({company_name:s.company_name,requested_slug:(a=s.requested_slug)==null?void 0:a.trim().toLowerCase(),contact_name:s.contact_name,email:s.email,phone:s.phone,website:s.website,notes:s.notes}),t.resetFields()};return n.jsx("div",{className:"login-page",children:n.jsxs(H,{className:"login-card login-card--wide",children:[n.jsxs("div",{className:"auth-card__header",children:[n.jsx(dz,{level:2,children:"EkipLab ile TanıÅın"}),n.jsx(uz,{type:"secondary",children:"Ekibinizin çalıÅma biçimini kısaca paylaÅın; ihtiyaçlarınızı birlikte deÄerlendirelim."})]}),n.jsxs(x,{form:t,layout:"vertical",size:"large",onFinish:i,children:[n.jsx(x.Item,{name:"company_name",label:"Firma Adı",rules:[{required:!0,message:"Firma adı zorunludur."}],children:n.jsx(G,{prefix:n.jsx(Gs,{}),placeholder:"Ãrn. Atlas Kontrol Mühendislik"})}),n.jsx(x.Item,{name:"requested_slug",label:"Tercih Edilen ÃalıÅma Alanı Adı",children:n.jsx(G,{prefix:n.jsx(Ds,{}),placeholder:"atlas-kontrol"})}),n.jsx(x.Item,{name:"contact_name",label:"Yetkili KiÅi",rules:[{required:!0,message:"Yetkili kiÅi zorunludur."}],children:n.jsx(G,{prefix:n.jsx(Ss,{}),placeholder:"AyÅe Demir"})}),n.jsx(x.Item,{name:"email",label:"E-posta",rules:[{required:!0,message:"E-posta zorunludur."},{type:"email",message:"Geçerli bir e-posta girin."}],children:n.jsx(G,{prefix:n.jsx(Al,{}),placeholder:"[email protected]"})}),n.jsx(x.Item,{name:"phone",label:"Telefon",children:n.jsx(G,{prefix:n.jsx(Ep,{}),placeholder:"+90 5xx xxx xx xx"})}),n.jsx(x.Item,{name:"website",label:"Web Sitesi",children:n.jsx(G,{prefix:n.jsx(Wc,{}),placeholder:"https://firma.com"})}),n.jsx(x.Item,{name:"notes",label:"Notlar",children:n.jsx(mz,{rows:4,placeholder:"Mevcut çalıÅma düzeninizi, ekip büyüklüÄünüzü veya öncelikli ihtiyaçlarınızı yazabilirsiniz."})}),n.jsxs(W,{direction:"vertical",size:"middle",style:{width:"100%"},children:[n.jsx(T,{type:"primary",htmlType:"submit",block:!0,loading:r.isPending,children:"GörüÅme Talebi Gönder"}),n.jsx(T,{block:!0,onClick:()=>e("/"),children:"Ana Sayfaya Dön"})]})]})]})})},{Title:pz,Text:fz}=ft,gz=()=>{const t=Le(),{isAuthenticated:e,availableTenants:r,currentTenant:i,login:s}=He(),a=k.useMemo(()=>[...r].sort((o,c)=>{const d=m=>m==="mef"?0:m==="atlas"?1:m==="nova"?2:m==="demo"?3:4,u=d(o.slug)-d(c.slug);return u!==0?u:o.name.localeCompare(c.name,"tr")}),[r]);k.useEffect(()=>{e||t("/login",{replace:!0}),i!=null&&i.slug&&t("/",{replace:!0})},[i==null?void 0:i.slug,e,t]);const l=async o=>{try{const c=await Xc.selectTenant(o);if(re.success("KuruluÅ seçildi."),Ws(c,s,t,"/dashboard"))return;t("/",{replace:!0})}catch(c){ce(c,"KuruluÅ seçimi baÅarısız.")}};return n.jsx("div",{className:"login-page",children:n.jsx(H,{className:"login-card login-card--wide",children:n.jsxs(W,{direction:"vertical",size:"large",style:{width:"100%"},children:[n.jsxs("div",{className:"auth-card__header",children:[n.jsx(pz,{level:2,children:"KuruluÅ Seçin"}),n.jsx(fz,{type:"secondary",children:"Hesabınız birden fazla tenantâa baÄlı. Devam etmek için çalıÅacaÄınız kuruluÅu seçin."})]}),n.jsx(be,{type:"info",showIcon:!0,message:"Seçim yaptıÄınız tenant baÄlamı token içine iÅlenir ve tüm ekranlar o kuruluÅa göre filtrelenir."}),a.length===0?n.jsx(ht,{description:"EriÅilebilir kuruluÅ bulunamadı."}):n.jsx(W,{direction:"vertical",size:"middle",style:{width:"100%"},children:a.map(o=>n.jsx(H,{className:"tenant-select-card",children:n.jsxs("div",{className:"tenant-select-card__content",children:[n.jsxs("div",{children:[n.jsxs(W,{children:[n.jsx(Gs,{}),n.jsx("strong",{children:o.name}
135),["mef","atlas","nova","demo"].includes(o.slug)&&n.jsx(ie,{color:"gold",children:"Demo verisi"})]}),n.jsxs("div",{className:"tenant-select-card__meta",children:["Rol: ",o.role," · ",o.slug,".ekiplab.com"]})]}),n.jsxs(T,{type:o.slug==="mef"?"primary":"default",onClick:()=>l(o.id),children:["GiriÅ Yap ",n.jsx(Ba,{})]})]})},o.id))})]})})})},{Title:yz,Text:cp}=ft,yn={logo:{label:"Firma logosu",preferred:{width:1200,height:400},minimum:{width:600,height:200},aspectRange:[2.4,3.6],note:"PDF ve panel için Åeffaf arka planlı PNG tercih edilir."},turkak_logo:{label:"TÃRKAK logosu",preferred:{width:600,height:600},minimum:{width:300,height:300},aspectRange:[.9,1.1],note:"Kare oran korunursa PDF üst bilgisinde daha temiz görünür."}},Bc=t=>new Promise((e,r)=>{const i=new Image;i.onload=()=>{e({width:i.naturalWidth,height:i.naturalHeight})},i.onerror=()=>r(new Error("Image dimensions could not be read.")),i.src=t}),xz=async t=>{const e=URL.createObjectURL(t);try{return await Bc(e)}finally{URL.revokeObjectURL(e)}},Mr=t=>t?`${t.width} x ${t.height} px`:"Boyut okunamadı",ys=(t,e)=>{if(!t)return null;const r=[],i=t.width/t.height;return(t.width<e.minimum.width||t.height<e.minimum.height)&&r.push(`Minimum ${e.minimum.width} x ${e.minimum.height} px altında.`),(i<e.aspectRange[0]||i>e.aspectRange[1])&&r.push("Ãnerilen oran aralıÄının dıÅında."),r.length===0?{status:"success",message:`Kılavuza uygun. Ãnerilen boyut ${e.preferred.width} x ${e.preferred.height} px.`}:{status:"warning",message:r.join(" ")}},bs={primary:"#F57C00",accent:"#F57C00",header_bg_start:"#F57C00",header_bg_end:"#F57C00",label_bg:"#FFF3E0",subsection_bg:"#FFE0B2",zebra:"#FFF8E1",border:"#FFCC80"},Zo={Turuncu:bs,Lacivert:{primary:"#1B5E8C",accent:"#fbbf24",header_bg_start:"#1B5E8C",header_bg_end:"#2c79b3",label_bg:"#eff6fc",subsection_bg:"#dde9f2",zebra:"#f8fafc",border:"#cbd5e1"},Teal:{primary:"#0f766e",accent:"#fbbf24",header_bg_start:"#0f766e",header_bg_end:"#14b8a6",label_bg:"#f0fdfa",subsection_bg:"#ccfbf1",zebra:"#f0fdfa",border:"#99f6e4"},Turkuaz:{primary:"#529CA8",accent:"#3F7982",header_bg_start:"#529CA8",header_bg_end:"#529CA8",label_bg:"#E9F3F4",subsection_bg:"#D2E5E8",zebra:"#F8FBFB",border:"#7BB3BD"},Mor:{primary:"#7c3aed",accent:"#fbbf24",header_bg_start:"#7c3aed",header_bg_end:"#a78bfa",label_bg:"#faf5ff",subsection_bg:"#ede9fe",zebra:"#faf5ff",border:"#ddd6fe"},YeÅil:{primary:"#15803d",accent:"#fbbf24",header_bg_start:"#15803d",header_bg_end:"#22c55e",label_bg:"#f0fdf4",subsection_bg:"#dcfce7",zebra:"#f0fdf4",border:"#bbf7d0"},Bordo:{primary:"#9f1239",accent:"#fbbf24",header_bg_start:"#9f1239",header_bg_end:"#e11d48",label_bg:"#fff1f2",subsection_bg:"#ffe4e6",zebra:"#fff1f2",border:"#fecdd3"}},vz={primary:"Birincil Renk (baÅlık, sayfa no, footer)",accent:"Aksan (section header sol kenar)",header_bg_start:"Header Gradient BaÅlangıç",header_bg_end:"Header Gradient BitiÅ",label_bg:"Label Hücreleri (sol sütun)",subsection_bg:"Alt BaÅlık Arka Plan",zebra:"Ãift Satır Arka Plan",border:"Tablo KenarlıÄı"},bz=({tenant:t,onUpdate:e})=>{const[r,i]=k.useState(()=>({...bs,...(t==null?void 0:t.report_colors)||{}}));k.useEffect(()=>{i({...bs,...(t==null?void 0:t.report_colors)||{}})},[t==null?void 0:t.report_colors]);const s=o=>{i({...Zo[o]})},a=()=>{e.mutate({report_colors:r},{onSuccess:()=>{re.success("Renk paleti kaydedildi. Yeni raporlardan itibaren uygulanacak.")}})},l=()=>{i({...bs})};return n.jsxs(H,{size:"small",title:n.jsxs(W,{children:[n.jsx("span",{children:"ð¨ Rapor Renk Paleti"}),n.jsx(Xn,{title:"Rapor PDF'lerinde kullanılan renkleri burada özelleÅtirin. Hazır paletlerden birini seçin veya tek tek renkleri ayarlayın. Kaydettikten sonra yeni üretilen PDF'lere uygulanır.",children:n.jsx(sc,{style:{color:"#1B5E8C",cursor:"help"}})})]}),style:{marginTop:16},children:[n.jsx(be,{type:"info",showIcon:!0,style:{marginBottom:16},message:"Hazır Paletler",description:"Hızlı baÅlangıç için bir tema seçin, ardından istediÄin rengi tek tek deÄiÅtirebilirsin."}),n.jsx(W,{wrap:!0,style:{marginBottom:16},children:Object.keys(Zo).map(o=>{const c=Zo[o];return n.jsx(T,{onClick:()=>s(o),style:{background:`linear-gradient(135deg, ${c.header_bg_start}, ${c.header_bg_end})`,color:"#fff",borderColor:c.primary,fontWeight:600},children:o},o)})}),n.jsx(me,{gutter:[16,12],children:Object.keys(bs).map(o=>n.jsx(C,{xs:24,md:12,children:n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[n.jsx(Kv,{value:r[o],onChange:c=>i(d=>({...d,[o]:c.toHexString()})),showText:!0}),n.jsxs("div",{style:{flex:1},children:[n.jsx("div",{style:{fontSize:13,fontWeight:500},children:vz[o]}),n.jsx("div",{style:{fontSize:11,color:"#94a3b8",fontFamily:"monospace"},children:r[o]})]})]})},o))}),n.jsxs("div",{style:{marginTop:20,padding:16,background:"#f8fafc",borderRadius:6},children:[n.jsx("div",{style:{fontSize:12,color:"#64748b",marginBottom:8},children:"Ãnizleme:"}),n.jsx("div",{style:{background:`linear-gradient(135deg, ${r.header_bg_start}, ${r.header_bg_end})`,color:"#fff",padding:"8px 14px",borderLeft:`4px solid ${r.accent}`,fontWeight:"bold",textTransform:"uppercase",letterSpacing:.5,fontSize:13,marginBottom:8},children:"1. FİRMA BİLGİLERİ"}),n.jsx("table",{style:{width:"100%",borderCollapse:"collapse",border:`1px solid ${r.border}`},children:n.jsxs("tbody",{children:[n.jsxs("tr",{children:[n.jsx("td",{style:{background:r.label_bg,color:r.primary,padding:6,fontWeight:"bold",fontSize:11,border:`1px solid ${r.border}`},children:"FİRMA ADI"}),n.jsx("td",{style:{background:"#fff",padding:6,fontSize:11,border:`1px solid ${r.border}`},children:"Ãrnek Firma A.Å."})]}),n.jsxs("tr",{children:[n.jsx("td",{style:{background:r.label_bg,color:r.primary,padding:6,fontWeight:"bold",fontSize:11,border:`1px solid ${r.border}`},children:"VERGİ NO"}),n.jsx("td",{style:{background:r.zebra,padding:6,fontSize:11,border:`1px solid ${r.border}`},children:"1234567890"})]})]})})]}),n.jsxs(W,{style:{marginTop:16},children:[n.jsx(T,{type:"primary",onClick:a,loading:e.isPending,style:{background:r.primary,borderColor:r.primary},children:"Paleti Kaydet"}),n.jsx(T,{onClick:l,children:"Varsayılana Dön"})]})]})},_z=()=>{var I;const[t]=x.useForm(),[e]=x.useForm(),{data:r,isLoading:i}=Ap(!0),s=fb(),a=gb(),l=He(j=>j.user),[o,c]=k.useState(null),[d,u]=k.useState(null),[m,h]=k.useState(null),[p,y]=k.useState(null),[f,g]=k.useState(null),[v,S]=k.useState(null);k.useEffect(()=>{r&&t.setFieldsValue(r)},[t,r]),k.useEffect(()=>{let j=!1;if(!(r!=null&&r.logo)){h(null);return}return Bc(li(r.logo)).then(N=>{j||h(N)}).catch(()=>{j||h(null)}),()=>{j=!0}},[r==null?void 0:r.logo]),k.useEffect(()=>{let j=!1;if(!(r!=null&&r.turkak_logo)){y(null);return}return Bc(li(r.turkak_logo)).then(N=>{j||y(N)}).catch(()=>{j||y(null)}),()=>{j=!0}},[r==null?void 0:r.turkak_logo]);const R=((I=r==null?void 0:r.current_membership)==null?void 0:I.role)||(l==null?void 0:l.tenantRole),z=!!(l!=null&&l.isSuperuser||R==="OWNER"||R==="ADMIN"),P=k.useMemo(()=>Object.entries((r==null?void 0:r.features)||{}).filter(([,j])=>j).map(([j])=>j.replace(/_/g," ")),[r==null?void 0:r.features]),U=k.useMemo(()=>ys(m,yn.logo),[m]),A=k.useMemo(()=>ys(p,yn.turkak_logo),[p]),w=k.useMemo(()=>ys(f,yn.logo),[f]),Y=k.useMemo(()=>ys(v,yn.turkak_logo),[v]),D=j=>{if(!!!(o||d)){s.mutate(j);return}const $=new FormData;
135Object.entries(j).forEach(([ue,oe])=>{oe!=null&&$.append(ue,String(oe))}),o&&$.append("logo",o),d&&$.append("turkak_logo",d),s.mutate($,{onSuccess:()=>{c(null),u(null),g(null),S(null)}})},_=async(j,N,$,ue)=>{$(j);try{const oe=await xz(j);ue(oe);const K=ys(oe,N);(K==null?void 0:K.status)==="warning"&&re.warning(`${N.label} önerilen boyutlara tam uymuyor. Kaydetmeden önce kontrol edin.`)}catch{ue(null),re.error(`${N.label} dosyasının boyutu okunamadı.`)}return!1},M=j=>{s.mutate({[j]:!0},{onSuccess:()=>{j==="remove_logo"?(c(null),h(null),g(null)):(u(null),y(null),S(null))}})},b=[{label:"Owner",value:"OWNER"},{label:"Admin",value:"ADMIN"},{label:"Manager",value:"MANAGER"},{label:"Engineer",value:"ENGINEER"},{label:"Technician",value:"TECHNICIAN"},{label:"Viewer",value:"VIEWER"}];return n.jsxs(H,{loading:i,children:[n.jsxs("div",{className:"page-toolbar",children:[n.jsxs("div",{children:[n.jsx(yz,{level:3,style:{marginBottom:0},children:"KuruluÅ Ayarları"}),n.jsx(cp,{type:"secondary",children:"Panel branding, PDF üst bilgi alanları, kullanıcı davetleri ve plan kullanım özetleri burada yönetilir."})]}),r&&n.jsx(ie,{color:r.is_trial_expired?"red":"blue",children:r.plan})]}),n.jsxs(me,{gutter:[16,16],className:"tenant-settings__stats",children:[n.jsx(C,{xs:24,md:8,children:n.jsx(H,{size:"small",children:n.jsx(Ee,{title:"Kullanıcı",value:(r==null?void 0:r.user_count)||0,suffix:`/ ${(r==null?void 0:r.max_users)||0}`})})}),n.jsx(C,{xs:24,md:8,children:n.jsx(H,{size:"small",children:n.jsx(Ee,{title:"Ekipman",value:(r==null?void 0:r.equipment_count)||0,suffix:`/ ${(r==null?void 0:r.max_equipment)||0}`})})}),n.jsx(C,{xs:24,md:8,children:n.jsx(H,{size:"small",children:n.jsx(Ee,{title:"Rapor",value:(r==null?void 0:r.report_count)||0,suffix:`/ ${(r==null?void 0:r.max_reports_per_month)||0}`})})})]}),n.jsxs(x,{form:t,layout:"vertical",onFinish:D,children:[n.jsx(Jn,{items:[{key:"general",label:"Genel",children:n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"name",label:"Panel Firma Adı",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company_name",label:"Resmi Unvan",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company_phone",label:"Telefon",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company_email",label:"E-posta",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company_website",label:"Web Sitesi",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"tax_number",label:"Vergi No",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"tax_office",label:"Vergi Dairesi",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"turkak_no",label:"TÃRKAK No",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"mersis_no",label:"MERSİS No",children:n.jsx(G,{})})}),n.jsx(C,{span:24,children:n.jsx(x.Item,{name:"company_address",label:"Adres",children:n.jsx(G.TextArea,{rows:4})})})]})},{key:"branding",label:"Branding",children:n.jsxs(W,{direction:"vertical",size:"large",style:{width:"100%"},children:[n.jsx(be,{type:"info",showIcon:!0,icon:n.jsx(kp,{}),message:"Raporlarda iki ayrı logo kullanılır",description:n.jsxs("div",{className:"tenant-settings__guide-grid",children:[n.jsxs("div",{className:"tenant-settings__guide-card",children:[n.jsxs("strong",{children:["ð¢ ",yn.logo.label]}),n.jsxs("span",{style:{color:"#475569"},children:["Firmanızın kendi marka logosu. ",n.jsx("b",{children:"Her rapor sayfasının üst köÅesinde"})," (header'da) ve kapak sayfasında görünür."]}),n.jsxs("span",{children:["Ãnerilen: ",n.jsx("b",{children:Mr(yn.logo.preferred)})," · Yatay (3:1)"]}),n.jsxs("span",{children:["Minimum: ",Mr(yn.logo.minimum)]}),n.jsx("span",{style:{fontStyle:"italic"},children:yn.logo.note})]}),n.jsxs("div",{className:"tenant-settings__guide-card",children:[n.jsxs("strong",{children:["ð
",yn.turkak_logo.label]}),n.jsxs("span",{style:{color:"#475569"},children:["TÃRKAK akreditasyon rozeti (sadece akredite firmalar için). ",n.jsx("b",{children:"Rapor kapak sayfasının saÄ Ã¼stünde"})," akreditasyon numarasıyla birlikte gösterilir."]}),n.jsxs("span",{children:["Ãnerilen: ",n.jsx("b",{children:Mr(yn.turkak_logo.preferred)})," · Kare (1:1)"]}),n.jsxs("span",{children:["Minimum: ",Mr(yn.turkak_logo.minimum)]}),n.jsx("span",{style:{fontStyle:"italic"},children:yn.turkak_logo.note})]})]})}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,md:12,children:n.jsxs(H,{size:"small",title:n.jsxs(W,{children:[n.jsx("span",{children:"ð¢ Firma Logosu"}),n.jsx(Xn,{placement:"top",title:n.jsxs("div",{style:{fontSize:12},children:[n.jsxs("div",{style:{marginBottom:4},children:[n.jsx("b",{children:"Nedir:"})," Firmanızın kendi marka logosu (sizin Åirket logonuz)."]}),n.jsxs("div",{style:{marginBottom:4},children:[n.jsx("b",{children:"Nerede çıkar:"})," Her rapor sayfasının üst köÅesinde + kapak sayfasında."]}),n.jsxs("div",{children:[n.jsx("b",{children:"İpucu:"})," Yatay (geniÅ) versiyon önerilir. Åeffaf arka planlı PNG en iyi görünür."]}
135)]}),children:n.jsx(sc,{style:{color:"#1B5E8C",cursor:"help"}})})]}),className:"tenant-settings__asset",children:[(r==null?void 0:r.logo)&&U&&n.jsx(be,{type:U.status,showIcon:!0,style:{marginBottom:16},message:`Yüklü dosya: ${Mr(m)}`,description:U.message}),o&&w&&n.jsx(be,{type:w.status,showIcon:!0,style:{marginBottom:16},message:`Seçilen dosya: ${Mr(f)}`,description:w.message}),r!=null&&r.logo?n.jsx("img",{src:li(r.logo),alt:r.company_name||r.name,className:"tenant-settings__logo-preview"}):n.jsx("div",{className:"tenant-settings__logo-empty",children:"Henüz logo yüklenmedi."}),n.jsx(An,{showUploadList:!!o,beforeUpload:j=>_(j,yn.logo,c,g),onRemove:()=>{c(null),g(null)},children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"Logo Seç"})}),(r==null?void 0:r.logo)&&n.jsx(T,{danger:!0,icon:n.jsx(_t,{}),onClick:()=>M("remove_logo"),loading:s.isPending,className:"tenant-settings__asset-remove",children:"Yüklü Logoyu Sil"})]})}),n.jsx(C,{xs:24,md:12,children:n.jsxs(H,{size:"small",title:n.jsxs(W,{children:[n.jsx("span",{children:"ð
TÃRKAK Logosu"}),n.jsx(Xn,{placement:"top",title:n.jsxs("div",{style:{fontSize:12},children:[n.jsxs("div",{style:{marginBottom:4},children:[n.jsx("b",{children:"Nedir:"})," Türk Akreditasyon Kurumu (TÃRKAK) tarafından verilen akreditasyon rozeti."]}),n.jsxs("div",{style:{marginBottom:4},children:[n.jsx("b",{children:"Nerede çıkar:"})," Rapor kapak sayfasının saÄ Ã¼stünde, akreditasyon numaranızla birlikte."]}),n.jsxs("div",{style:{marginBottom:4},children:[n.jsx("b",{children:"Kimler için:"})," Sadece TÃRKAK akreditasyonu olan muayene kuruluÅları için. Akrediteniz yoksa boÅ bırakın."]}),n.jsxs("div",{children:[n.jsx("b",{children:"İpucu:"}),' Kare oran önerilir. Akreditasyon numaranızı yandaki "TÃRKAK No" alanına da girin.']})]}),children:n.jsx(sc,{style:{color:"#1B5E8C",cursor:"help"}})})]}),className:"tenant-settings__asset",children:[(r==null?void 0:r.turkak_logo)&&A&&n.jsx(be,{type:A.status,showIcon:!0,style:{marginBottom:16},message:`Yüklü dosya: ${Mr(p)}`,description:A.message}),d&&Y&&n.jsx(be,{type:Y.status,showIcon:!0,style:{marginBottom:16},message:`Seçilen dosya: ${Mr(v)}`,description:Y.message}),r!=null&&r.turkak_logo?n.jsx("img",{src:li(r.turkak_logo),alt:"TÃRKAK Logosu",className:"tenant-settings__logo-preview"}):n.jsx("div",{className:"tenant-settings__logo-empty",children:"Henüz TÃRKAK logosu yüklenmedi."}),n.jsx(An,{showUploadList:!!d,beforeUpload:j=>_(j,yn.turkak_logo,u,S),onRemove:()=>{u(null),S(null)},children:n.jsx(T,{icon:n.jsx(Kn,{}),children:"TÃRKAK Logosu Seç"})}),(r==null?void 0:r.turkak_logo)&&n.jsx(T,{danger:!0,icon:n.jsx(_t,{}),onClick:()=>M("remove_turkak_logo"),loading:s.isPending,className:"tenant-settings__asset-remove",children:"Yüklü TÃRKAK Logosunu Sil"})]})})]}),n.jsx(bz,{tenant:r,onUpdate:s})]})},{key:"users",label:"Kullanıcılar",children:n.jsxs(W,{direction:"vertical",size:"large",style:{width:"100%"},children:[z?n.jsx(be,{type:"info",showIcon:!0,message:"OWNER ve ADMIN rolündeki kullanıcılar tenant üyelerini davet edebilir."}):n.jsx(be,{type:"warning",showIcon:!0,message:"Bu bölüm yalnızca tenant sahibi veya yöneticiler için düzenlenebilir."}),n.jsxs(x,{form:e,layout:"vertical",disabled:!z,onFinish:j=>{a.mutate(j,{onSuccess:()=>{e.resetFields()}})},children:[n.jsxs(me,{gutter:16,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"first_name",label:"Ad",rules:[{required:!0,message:"Ad zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"last_name",label:"Soyad",rules:[{required:!0,message:"Soyad zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"email",label:"E-posta",rules:[{required:!0,message:"E-posta zorunludur."},{type:"email",message:"Geçerli bir e-posta girin."}],children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"role",label:"Rol",rules:[{required:!0,message:"Rol seçin."}],initialValue:"ENGINEER",children:n.jsx(pe,{options:b})})}),n.jsx(C,{xs:24,children:n.jsx(x.Item,{name:"phone",label:"Telefon",children:n.jsx(G,{})})})]}),n.jsx(T,{type:"primary",icon:n.jsx(Es,{}),htmlType:"submit",loading:a.isPending,children:"Kullanıcı Davet Et"})]})]})},{key:"plan",label:"Plan ve Fatura",children:n.jsxs(W,{direction:"vertical",size:"middle",style:{width:"100%"},children:[n.jsx(be,{type:r!=null&&r.is_trial_expired?"error":"success",showIcon:!0,message:r!=null&&r.is_trial_expired?"Trial süresi doldu. Yazma iÅlemleri kısıtlanabilir.":`Aktif plan: ${(r==null?void 0:r.plan)||"-"}`}),n.jsx("div",{className:"tenant-settings__features",children:P.length>0?P.map(j=>n.jsx(ie,{children:j},j)):n.jsx(cp,{type:"secondary",children:"Bu tenant için tanımlı plan özelliÄi bulunmuyor."})})]})}]}),n.jsx(T,{type:"primary",htmlType:"submit",loading:s.isPending,children:"KuruluÅ Bilgilerini Kaydet"})]})]})},{Title:jz,Text:xs}=ft,kz=()=>{const{data:t,isLoading:e}=Mp(!0),{data:r=[],isLoading:i}=Np(!0),{data:s=[],isLoading:a}=Pp(!0),{login:l}=He(),o=Le(),c=async(d,u)=>{try{const m=await Nt.impersonate(d);if(re.success("Impersonate oturumu baÅlatıldı."),m.tenant_slug){Ws(m,l,o,"/dashboard");return}u&&Ts(u,"/dashboard")}catch(m){ce(m,"Impersonate baÅlatılamadı.")}};return n.jsxs(W,{direction:"vertical",size:"large",style:{width:"100%"},children:[n.jsxs("div",{className:"page-toolbar",children:[n.jsxs("div",{children:[n.jsx(jz,{level:3,style:{marginBottom:0},children:"Super Admin Paneli"}),n.jsx(xs,{type:"secondary",children:"Tenant sayıları, plan daÄılımı ve yönetim operasyonlarına hızlı eriÅim."})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{onClick:()=>o("/admin/account-requests"),children:"EriÅim Talepleri"}),n.jsx(T,{type:"primary",onClick:()=>o("/admin/tenants"),children:"Tenant Yönetimi"})]})]}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{loading:e,children:n.jsx(Ee,{title:"Toplam Tenant",value:(t==null?void 0:t.total_tenants)||0})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{loading:e,children:n.jsx(Ee,{title:"Aktif Tenant",value:(t==null?void 0:t.active_tenants)||0})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{loading:e,children:n.jsx(Ee,{title:"Pasif Tenant",value:(t==null?void 0:t.inactive_tenants)||0})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{loading:e,children:n.jsx(Ee,{title:"Toplam Kullanıcı",value:(t==null?void 0:t.total_users)||0})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{loading:e,children:n.jsx(Ee,{title:"Yeni EriÅim Talebi",value:(t==null?void 0:t.new_access_requests)||0})})})]}),n.jsx(H,{title:"Son Tenantlar",loading:i,extra:n.jsx(T,{type:"link",onClick:()=>o("/admin/tenants"),children:"Tümünü Aç"}),children:n.jsx(Ie,{rowKey:"id",pagination:!1,dataSource:r.slice(0,5),columns:[{title:"Firma",render:(d,u)=>n.jsxs(W,{direction:"vertical",size:0,children:[n.jsx(xs,{strong:!0,children:u.company_name||u.name}),n.jsx(xs,{type:"secondary",children:u.owner_email||"-"})]})},{title:"Slug",dataIndex:"slug",render:d=>n.jsx(xs,{code:!0,children:d})},{title:"Plan",dataIndex:"plan",render:d=>
135n.jsx(ie,{color:"blue",children:d})},{title:"Durum",dataIndex:"is_active",render:d=>n.jsx(ie,{color:d?"green":"red",children:d?"Aktif":"Pasif"})},{title:"İÅlem",key:"actions",render:(d,u)=>n.jsx(T,{onClick:()=>c(u.id,u.slug),children:"Impersonate"})}]})}),n.jsx(H,{title:"Son EriÅim Talepleri",loading:a,extra:n.jsx(T,{type:"link",onClick:()=>o("/admin/account-requests"),children:"Tümünü Aç"}),children:n.jsx(Ie,{rowKey:"id",pagination:!1,dataSource:s.slice(0,5),columns:[{title:"Firma",dataIndex:"company_name"},{title:"Yetkili",dataIndex:"contact_name"},{title:"E-posta",dataIndex:"email"},{title:"Slug",dataIndex:"requested_slug",render:d=>d?n.jsx(xs,{code:!0,children:d}):"-"},{title:"Durum",dataIndex:"status",render:d=>{const u={NEW:"gold",CONTACTED:"blue",APPROVED:"green",REJECTED:"red"};return n.jsx(ie,{color:u[d]||"default",children:d})}},{title:"Olusan Tenant",dataIndex:"tenant_name",render:d=>d||"-"}]})})]})},{Search:Jo}=G,{Title:Sz,Text:Ft}=ft,Xa=[{label:"Ãcretsiz Deneme",value:"FREE_TRIAL"},{label:"BaÅlangıç",value:"STARTER"},{label:"Profesyonel",value:"PROFESSIONAL"},{label:"Kurumsal",value:"ENTERPRISE"}],ec=[{label:"Yeni",value:"NEW"},{label:"GörüÅüldü",value:"CONTACTED"},{label:"Onaylandı",value:"APPROVED"},{label:"Reddedildi",value:"REJECTED"}],zx=[{label:"E-İmza",value:"e_signature"},{label:"CRM",value:"crm"},{label:"API EriÅimi",value:"api_access"},{label:"Ãzel Markalama",value:"custom_branding"},{label:"Excel DıÅa Aktarım",value:"export_excel"},{label:"Toplu İÅlemler",value:"bulk_operations"},{label:"GeliÅmiÅ Analiz",value:"advanced_analytics"},{label:"Doküman Yönetimi",value:"document_management"},{label:"White Label",value:"white_label"},{label:"Ãzel Domain",value:"custom_domain"},{label:"Ãncelikli Destek",value:"priority_support"}],Ez=[{label:"Firma Sahibi",value:"OWNER"},{label:"Yönetici",value:"ADMIN"},{label:"Müdür",value:"MANAGER"},{label:"Mühendis",value:"ENGINEER"},{label:"Tekniker/Teknisyen",value:"TECHNICIAN"},{label:"İzleyici",value:"VIEWER"}],wz=[{label:"Yönetici",value:"ADMIN"},{label:"Müdür",value:"MANAGER"},{label:"Mühendis",value:"ENGINEER"},{label:"Teknisyen",value:"TECHNICIAN"},{label:"MüÅteri",value:"CUSTOMER"}],Cz={NEW:"gold",CONTACTED:"blue",APPROVED:"green",REJECTED:"red"},Dz={FREE_TRIAL:"gold",STARTER:"default",PROFESSIONAL:"blue",ENTERPRISE:"purple"},Rz=t=>{var e;return((e=Xa.find(r=>r.value===t))==null?void 0:e.label)||t||"-"},Iz=(t,e)=>{const r={...e||{}};return zx.forEach(i=>{r[i.value]=t.includes(i.value)}),r},Ii=()=>`Ekp-${(window.crypto?Array.from(window.crypto.getRandomValues(new Uint32Array(3))).map(e=>e.toString(36)).join(""):Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2)).slice(0,10)}!9A`,Tz=()=>{const t=Tl(),e=Le(),r=t.pathname.includes("account-requests")?"requests":"tenants",{data:i,isLoading:s}=Mp(!0),{data:a=[],isLoading:l}=Np(!0),{data:o=[],isLoading:c}=Pp(!0),d=xb(),u=vb(),m=_b(),h=jb(),p=kb(),y=Sb(),{login:f}=He(),[g,v]=k.useState(""),[S,R]=k.useState(""),[z,P]=k.useState(""),[U,A]=k.useState(),[w,Y]=k.useState(),[D,_]=k.useState(),[M,b]=k.useState(!1),[I,j]=k.useState(null),[N,$]=k.useState(!1),[ue,oe]=k.useState(null),[K,fe]=k.useState(null),[J,B]=k.useState(null),[he]=x.useForm(),[de]=x.useForm(),[_e]=x.useForm(),[De]=x.useForm(),[Ce]=x.useForm(),{data:Ue=[],isLoading:se}=bb(I==null?void 0:I.id,!!I),q=k.useMemo(()=>{const O=g.trim().toLowerCase();return a.filter(X=>{const Oe=!O||[X.name,X.slug,X.company_name,X.owner_email,X.owner_name].filter(Boolean).some(Pt=>String(Pt).toLowerCase().includes(O)),Qe=!U||X.plan===U,Et=!w||(w==="ACTIVE"?X.is_active:!X.is_active);return Oe&&Qe&&Et})},[U,g,w,a]),ae=k.useMemo(()=>{const O=z.trim().toLowerCase();return o.filter(X=>{const Oe=!O||[X.company_name,X.contact_name,X.email,X.requested_slug,X.tenant_name].filter(Boolean).some(Et=>String(Et).toLowerCase().includes(O)),Qe=!D||X.status===D;return Oe&&Qe})},[o,z,D]),ge=k.useMemo(()=>{const O=S.trim().toLowerCase();return O?Ue.filter(X=>[X.full_name,X.first_name,X.last_name,X.email,X.phone,X.role_display,X.user_role_display].filter(
135Boolean).some(Oe=>String(Oe).toLowerCase().includes(O))):Ue},[S,Ue]),Me=O=>{j(O),de.setFieldsValue({name:O.name,company_name:O.company_name||O.name,domain:O.domain||void 0,plan:O.plan,trial_ends_at:O.trial_ends_at||void 0,is_active:O.is_active,max_users:O.max_users,max_equipment:O.max_equipment,max_reports_per_month:O.max_reports_per_month,storage_limit_mb:O.storage_limit_mb,company_phone:O.company_phone||void 0,company_email:O.company_email||void 0,company_website:O.company_website||void 0,tax_number:O.tax_number||void 0,tax_office:O.tax_office||void 0,turkak_no:O.turkak_no||void 0,mersis_no:O.mersis_no||void 0,enabled_features:Object.entries(O.features||{}).filter(([,X])=>!!X).map(([X])=>X)})},ze=O=>{B(O),Ce.setFieldsValue({status:O.status,tenant:O.tenant||void 0,review_notes:O.review_notes||void 0})},ut=()=>{j(null),R(""),de.resetFields()},lt=()=>{const O=Ii();oe(null),_e.setFieldsValue({role:"ENGINEER",user_role:"ENGINEER",is_active:!0,user_is_active:!0,password:O,password_confirm:O}),$(!0)},Zt=O=>{oe(O),_e.setFieldsValue({email:O.email,first_name:O.first_name,last_name:O.last_name,phone:O.phone||"",role:O.role,user_role:O.user_role,is_active:O.is_active,user_is_active:O.user_is_active,password:void 0,password_confirm:void 0}),$(!0)},gt=()=>{$(!1),oe(null),_e.resetFields()},mn=O=>{const X=Ii();fe(O),De.setFieldsValue({new_password:X,new_password_confirm:X})},On=()=>{fe(null),De.resetFields()},Gn=()=>{B(null),Ce.resetFields()},jn=async(O,X,Oe)=>{try{const Qe=await Nt.impersonate(O,Oe?String(Oe):void 0);if(re.success("Tenant oturumu baÅlatıldı."),Qe.tenant_slug){Ws(Qe,f,e,"/dashboard");return}X&&Ts(X,"/dashboard")}catch(Qe){ce(Qe,"Tenant oturumu baÅlatılamadı.")}},Ln=async O=>{await d.mutateAsync(O),b(!1),he.resetFields()},Jt=async O=>{if(I){if(ue){const X={first_name:O.first_name,last_name:O.last_name,phone:O.phone||"",role:O.role,user_role:O.user_role,is_active:O.is_active,user_is_active:O.user_is_active};await h.mutateAsync({tenantId:I.id,accountId:ue.id,payload:X})}else await m.mutateAsync({tenantId:I.id,payload:{email:O.email,first_name:O.first_name,last_name:O.last_name,phone:O.phone||"",role:O.role,user_role:O.user_role,password:O.password||"",password_confirm:O.password_confirm||O.password||"",is_active:O.is_active,user_is_active:O.user_is_active}});gt()}},Wn=async O=>{!I||!K||(await p.mutateAsync({tenantId:I.id,accountId:K.id,payload:O}),On())},Kt=async O=>{if(!I)return;const X={name:O.name,company_name:O.company_name,domain:O.domain||null,plan:O.plan,trial_ends_at:O.trial_ends_at||null,is_active:O.is_active,max_users:O.max_users,max_equipment:O.max_equipment,max_reports_per_month:O.max_reports_per_month,storage_limit_mb:O.storage_limit_mb,company_phone:O.company_phone||"",company_email:O.company_email||"",company_website:O.company_website||"",tax_number:O.tax_number||"",tax_office:O.tax_office||"",turkak_no:O.turkak_no||"",mersis_no:O.mersis_no||"",features:Iz(O.enabled_features||[],I.features)};await u.mutateAsync({tenantId:I.id,payload:X}),ut()},ee=async O=>{J&&(await y.mutateAsync({requestId:J.id,payload:{status:O.status,tenant:O.tenant||null,review_notes:O.review_notes||""}}),Gn())};return n.jsxs(W,{direction:"vertical",size:"large",style:{width:"100%"},children:[n.jsxs("div",{className:"page-toolbar",children:[n.jsxs("div",{children:[n.jsx(Sz,{level:3,style:{marginBottom:0},children:"Super Admin Yönetim Paneli"}),n.jsx(Ft,{type:"secondary",children:"Tenant yönetimi, plan/limit düzenleme, eriÅim talepleri ve impersonate iÅlemleri tek ekranda."})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{onClick:()=>e("/admin/dashboard"),children:"Dashboard"}),n.jsx(T,{type:"primary",icon:n.jsx(rt,{}),onClick:()=>{const O=Ii();he.setFieldsValue({plan:"FREE_TRIAL",max_users:5,max_equipment:100,max_reports_per_month:50,storage_limit_mb:2048,owner_password:O,owner_password_confirm:O}),b(!0)},children:"Yeni Tenant"})]})]}),n.jsxs(me,{gutter:[16,16],children:[n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{loading:s,children:n.jsx(Ee,{title:"Toplam Tenant",value:(i==null?void 0:i.total_tenants)||0})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{loading:s,children:n.jsx(Ee,{title:"Aktif Tenant",value:(i==null?void 0:i.active_tenants)||0})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{loading:s,children:n.jsx(Ee,{title:"Yeni EriÅim Talebi",value:(i==null?void 0:i.new_access_requests)||0})})}),n.jsx(C,{xs:24,md:12,xl:6,children:n.jsx(H,{loading:s,children:n.jsx(Ee,{title:"Toplam Kullanıcı",value:(i==null?void 0:i.total_users)||0})})})]}),n.jsx(Jn,{activeKey:r,onChange:O=>e(O==="requests"?"/admin/account-requests":"/admin/tenants"),items:[{key:"tenants",label:"Tenantlar",children:n.jsx(H,{children:n.jsxs(W,{direction:"vertical",size:"middle",style:{width:"100%"},children:[n.jsxs(me,{gutter:[12,12],children:[n.jsx(C,{xs:24,md:10,children:n.jsx(Jo,{allowClear:!0,placeholder:"Firma, slug, owner adı veya e-posta ara",onChange:O=>v(O.target.value)})}),n.jsx(C,{xs:24,md:7,children:n.jsx(pe,{allowClear:!0,style:{width:"100%"},placeholder:"Plan filtresi",value:U,options:Xa,onChange:O=>A(O)})}),n.jsx(C,{xs:24,md:7,children:n.jsx(pe,{allowClear:!0,style:{width:"100%"},placeholder:"Durum filtresi",value:w,options:[{label:"Aktif",value:"ACTIVE"},{label:"Pasif",value:"INACTIVE"}],onChange:O=>Y(O)})})]}),n.jsx(Ie,{rowKey:"id",loading:l,dataSource:q,pagination:{pageSize:12,showSizeChanger:!0},scroll:{x:1400},columns:[{title:"Firma",key:"name",render:(O,X)=>n.jsxs(W,{direction:"vertical",size:0,children:[n.jsx(Ft,{strong:!0,children:X.company_name||X.name}),n.jsx(Ft,{type:"secondary",children:X.name})]})},{title:"Slug / Domain",key:"slug",render:(O,X)=>n.jsxs(W,{direction:"vertical",size:0,children:[n.jsx(Ft,{code:!0,children:X.slug}),n.jsx(Ft,{type:"secondary",children:X.domain||X.subdomain_url})]})},{title:"Owner",key:"owner",render:(O,X)=>n.jsxs(W,{direction:"vertical",size:0,children:[n.jsx(Ft,{children:X.owner_name||"-"}),n.jsx(Ft,{type:"secondary",children:X.owner_email||"-"})]})},{title:"Plan",dataIndex:"plan",render:O=>
135n.jsx(ie,{color:Dz[O]||"default",children:Rz(O)})},{title:"Limitler",key:"limits",render:(O,X)=>n.jsxs(W,{direction:"vertical",size:0,children:[n.jsxs(Ft,{children:["Kullanıcı: ",X.max_users]}),n.jsxs(Ft,{children:["Ekipman: ",X.max_equipment]}),n.jsxs(Ft,{children:["Rapor/Ay: ",X.max_reports_per_month]})]})},{title:"Kullanım",key:"usage",render:(O,X)=>n.jsxs(W,{direction:"vertical",size:0,children:[n.jsxs(Ft,{children:["Ãye: ",X.active_member_count??X.user_count??0]}),n.jsxs(Ft,{children:["Rapor: ",X.report_count]}),n.jsxs(Ft,{children:["Depolama: ",X.storage_limit_mb," MB"]})]})},{title:"Deneme",key:"trial",render:(O,X)=>n.jsxs(W,{direction:"vertical",size:0,children:[n.jsx(ie,{color:X.is_trial_expired?"red":X.is_trial_active?"blue":"default",children:X.is_trial_expired?"Süresi doldu":X.is_trial_active?"Devam ediyor":"Yok"}),n.jsx(Ft,{type:"secondary",children:X.trial_ends_at?Z(X.trial_ends_at).format("DD.MM.YYYY HH:mm"):"-"})]})},{title:"Durum",dataIndex:"is_active",render:O=>n.jsx(ie,{color:O?"green":"red",children:O?"Aktif":"Pasif"})},{title:"İÅlem",key:"actions",fixed:"right",render:(O,X)=>n.jsxs(W,{wrap:!0,children:[n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>Me(X),children:"Düzenle"}),n.jsx(T,{icon:n.jsx(Ds,{}),onClick:()=>jn(X.id,X.slug),children:"Impersonate"})]})}]})]})})},{key:"requests",label:"EriÅim Talepleri",children:n.jsx(H,{children:n.jsxs(W,{direction:"vertical",size:"middle",style:{width:"100%"},children:[n.jsxs(me,{gutter:[12,12],children:[n.jsx(C,{xs:24,md:14,children:n.jsx(Jo,{allowClear:!0,placeholder:"Firma, yetkili, e-posta veya talep edilen slug ara",onChange:O=>P(O.target.value)})}),n.jsx(C,{xs:24,md:10,children:n.jsx(pe,{allowClear:!0,style:{width:"100%"},placeholder:"Durum filtresi",value:D,options:ec,onChange:O=>_(O)})})]}),n.jsx(Ie,{rowKey:"id",loading:c,dataSource:ae,pagination:{pageSize:12,showSizeChanger:!0},scroll:{x:1200},columns:[{title:"Firma",dataIndex:"company_name"},{title:"Yetkili",dataIndex:"contact_name"},{title:"E-posta",dataIndex:"email"},{title:"Slug",dataIndex:"requested_slug",render:O=>O?n.jsx(Ft,{code:!0,children:O}):"-"},{title:"Durum",dataIndex:"status",render:O=>{var X;return n.jsx(ie,{color:Cz[O]||"default",children:((X=ec.find(Oe=>Oe.value===O))==null?void 0:X.label)||O})}},{title:"Tenant",dataIndex:"tenant_name",render:O=>O||"-"},{title:"Tarih",dataIndex:"created_at",render:O=>Z(O).format("DD.MM.YYYY HH:mm")},{title:"İÅlem",key:"actions",render:(O,X)=>n.jsx(T,{icon:n.jsx($t,{}),onClick:()=>ze(X),children:"İncele"})}]})]})})}]}),n.jsx(Ve,{title:"Yeni Tenant OluÅtur",open:M,width:760,destroyOnHidden:!0,confirmLoading:d.isPending,onCancel:()=>{b(!1),he.resetFields()},onOk:()=>he.submit(),okText:"Tenant OluÅtur",children:n.jsxs(x,{form:he,layout:"vertical",onFinish:Ln,children:[n.jsxs(me,{gutter:12,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company_name",label:"Firma Adı",rules:[{required:!0,message:"Firma adı zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"slug",label:"Slug",rules:[{required:!0,message:"Slug zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"plan",label:"Plan",rules:[{required:!0,message:"Plan seçin."}],children:n.jsx(pe,{options:Xa})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"domain",label:"Ãzel Domain",children:n.jsx(G,{placeholder:"portal.ornek.com"})})})]}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"owner_first_name",label:"Owner Adı",rules:[{required:!0,message:"Ad zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"owner_last_name",label:"Owner Soyadı",rules:[{required:!0,message:"Soyad zorunludur."}],children:n.jsx(G,{})})})]}),n.jsx(x.Item,{name:"owner_email",label:"Owner E-posta",rules:[{required:!0,message:"E-posta zorunludur."},{type:"email",message:"Geçerli e-posta girin."}],children:n.jsx(G,{})}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"phone",label:"Telefon",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company_email",label:"Firma E-posta",rules:[{type:"email",message:"Geçerli e-posta girin."}],children:n.jsx(G,{})})})]}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"owner_password",label:"Geçici Åifre",rules:[{required:!0,message:"Åifre zorunludur."},{min:8,message:"En az 8 karakter olmalıdır."}],children:n.jsx(G.Password,{addonAfter:n.jsx(T,{type:"link",size:"small",onClick:()=>{const O=Ii();he.setFieldsValue({owner_password:O,owner_password_confirm:O})},children:"Ãret"})})})}),n.jsx(C,{span:12,children:n.jsx(x.Item,{name:"owner_password_confirm",label:"Åifre Tekrar",dependencies:["owner_password"],rules:[{required:!0,message:"Åifre tekrarı zorunludur."},({getFieldValue:O})=>({validator(X,Oe){return!Oe||O("owner_password")===Oe?Promise.resolve():Promise.reject(new Error("Åifreler eÅleÅmiyor."))}})],children:n.jsx(G.Password,{})})})]}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{xs:24,md:6,children:n.jsx(x.Item,{name:"max_users",label:"Maks. Kullanıcı",children:n.jsx(Ze,{min:1,style:{width:"100%"}})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(x.Item,{name:"max_equipment",label:"Maks. Ekipman",children:n.jsx(Ze,{min:1,style:{width:"100%"}})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(x.Item,{name:"max_reports_per_month",label:"Maks. Rapor / Ay",children:n.jsx(Ze,{min:1,style:{width:"100%"}})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(x.Item,{name:"storage_limit_mb",label:"Depolama (MB)",children:n.jsx(Ze,{min:128,step:128,style:{width:"100%"}})})})]})]})}),n.jsx(Ja,{title:I?`${I.company_name||I.name} tenant ayarları`:"Tenant ayarları",open:!!I,width:720,destroyOnClose:!0,onClose:ut,extra:n.jsxs(W,{children:[n.jsx(T,{onClick:ut,children:"Vazgeç"}),n.jsx(T,{type:"primary",loading:u.isPending,onClick:()=>de.submit(),children:"Kaydet"})]}),children:n.jsx(Jn,{items:[{key:"settings",label:"Tenant Ayarları",children:n.jsx(x,{form:de,layout:"vertical",onFinish:Kt,children:n.jsxs(me,{gutter:12,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"name",label:"Tenant Kısa Adı",rules:[{required:!0,message:"Tenant adı zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company_name",label:"Resmi Firma Ãnvanı",rules:[{required:!0,message:"Firma ünvanı zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"plan",label:"Plan",rules:[{required:!0,message:"Plan seçin."}],children:n.jsx(pe,{options:Xa})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"domain",label:"Ãzel Domain",children:n.jsx(G,{placeholder:"portal.ornek.com"})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"trial_ends_at",label:"Deneme BitiÅ Tarihi",children:n.jsx(G,{placeholder:"2026-12-31T23:59:00Z"})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"is_active",label:"Tenant Aktif",valuePropName:"checked",children:n.jsx(ai,{children:"Aktif tenant olarak
135iÅaretle"})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(x.Item,{name:"max_users",label:"Maks. Kullanıcı",children:n.jsx(Ze,{min:1,style:{width:"100%"}})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(x.Item,{name:"max_equipment",label:"Maks. Ekipman",children:n.jsx(Ze,{min:1,style:{width:"100%"}})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(x.Item,{name:"max_reports_per_month",label:"Maks. Rapor / Ay",children:n.jsx(Ze,{min:1,style:{width:"100%"}})})}),n.jsx(C,{xs:24,md:6,children:n.jsx(x.Item,{name:"storage_limit_mb",label:"Depolama (MB)",children:n.jsx(Ze,{min:128,step:128,style:{width:"100%"}})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company_phone",label:"Firma Telefon",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"company_email",label:"Firma E-posta",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,children:n.jsx(x.Item,{name:"company_website",label:"Web Sitesi",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"tax_number",label:"Vergi No",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"tax_office",label:"Vergi Dairesi",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"turkak_no",label:"TÃRKAK No",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"mersis_no",label:"MERSİS No",children:n.jsx(G,{})})}),n.jsx(C,{xs:24,children:n.jsx(x.Item,{name:"enabled_features",label:"Açık Ãzellikler",children:n.jsx(ai.Group,{options:zx})})})]})})},{key:"accounts",label:"Hesaplar",children:n.jsxs(W,{direction:"vertical",size:"middle",style:{width:"100%"},children:[n.jsxs(me,{gutter:[12,12],align:"middle",children:[n.jsx(C,{xs:24,md:16,children:n.jsx(Jo,{allowClear:!0,placeholder:"Ad, e-posta, telefon veya rol ara",onChange:O=>R(O.target.value)})}),n.jsx(C,{xs:24,md:8,children:n.jsx(T,{block:!0,type:"primary",icon:n.jsx(Gv,{}),onClick:lt,children:"Hesap Ekle"})})]}),n.jsx(Ie,{rowKey:"id",loading:se,dataSource:ge,pagination:{pageSize:8,showSizeChanger:!0},scroll:{x:1200},columns:[{title:"Kullanıcı",key:"user",render:(O,X)=>n.jsxs(W,{direction:"vertical",size:0,children:[n.jsx(Ft,{strong:!0,children:X.full_name||`${X.first_name} ${X.last_name}`.trim()||"-"}),n.jsx(Ft,{type:"secondary",children:X.email})]})},{title:"Telefon",dataIndex:"phone",render:O=>O||"-"},{title:"Tenant Rolü",key:"role",render:(O,X)=>n.jsxs(W,{wrap:!0,size:4,children:[n.jsx(ie,{color:X.role==="OWNER"?"purple":X.role==="ADMIN"?"blue":"default",children:X.role_display||X.role}),X.is_owner&&n.jsx(ie,{color:"gold",children:"Owner"})]})},{title:"Sistem Rolü",key:"user_role",render:(O,X)=>X.user_role_display||X.user_role},{title:"Durum",key:"status",render:(O,X)=>n.jsxs(W,{direction:"vertical",size:0,children:[n.jsxs(ie,{color:X.is_active?"green":"red",children:["Ãyelik ",X.is_active?"aktif":"pasif"]}),n.jsxs(ie,{color:X.user_is_active?"green":"red",children:["Kullanıcı ",X.user_is_active?"aktif":"pasif"]})]})},{title:"Åifre",key:"password",render:(O,X)=>n.jsx(ie,{color:X.has_usable_password?"green":"orange",children:X.has_usable_password?"Kurulu":"Yok"})},{title:"Son GiriÅ",dataIndex:"last_login",render:O=>O?Z(O).format("DD.MM.YYYY HH:mm"):"-"},{title:"İÅlem",key:"actions",fixed:"right",render:(O,X)=>n.jsxs(W,{wrap:!0,children:[n.jsx(T,{icon:n.jsx(at,{}),onClick:()=>Zt(X),children:"Düzenle"}),n.jsx(T,{icon:n.jsx(Su,{}),onClick:()=>mn(X),children:"Åifre"}),n.jsx(T,{icon:n.jsx(Ds,{}),disabled:!I,onClick:()=>I&&jn(I.id,I.slug,X.user_id),children:"Impersonate"})]})}]})]})}]})}),n.jsx(Ve,{title:ue?"Hesap Düzenle":"Hesap Ekle",open:N,destroyOnHidden:!0,confirmLoading:m.isPending||h.isPending,onCancel:gt,onOk:()=>_e.submit(),okText:ue?"Güncelle":"Ekle",children:n.jsxs(x,{form:_e,layout:"vertical",onFinish:Jt,children:[n.jsxs(me,{gutter:12,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"first_name",label:"Ad",rules:[{required:!0,message:"Ad zorunludur."}],children:n.jsx(G,{})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"last_name",label:"Soyad",rules:[{required:!0,message:"Soyad zorunludur."}],children:n.jsx(G,{})})})]}),n.jsx(x.Item,{name:"email",label:"E-posta",rules:[{required:!ue,message:"E-posta zorunludur."},{type:"email",message:"Geçerli e-posta girin."}],children:n.jsx(G,{disabled:!!ue})}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"role",label:"Tenant Rolü",rules:[{required:!0,message:"Tenant rolü seçin."}],children:n.jsx(pe,{options:Ez})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"user_role",label:"Sistem Rolü",rules:[{required:!0,message:"Sistem rolü seçin."}],children:n.jsx(pe,{options:wz})})})]}),n.jsx(x.Item,{name:"phone",label:"Telefon",children:n.jsx(G,{})}),n.jsxs(me,{gutter:12,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"is_active",label:"Tenant ÃyeliÄi",valuePropName:"checked",children:n.jsx(ai,{children:"Aktif"})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"user_is_active",label:"Kullanıcı Hesabı",valuePropName:"checked",children:n.jsx(ai,{children:"Aktif"})})})]}),!ue&&n.jsxs(me,{gutter:12,children:[n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"password",label:"Geçici Åifre",rules:[{min:8,message:"En az 8 karakter olmalıdır."}],children:n.jsx(G.Password,{addonAfter:n.jsx(T,{type:"link",size:"small",onClick:()=>{const O=Ii();_e.setFieldsValue({password:O,password_confirm:O})},children:"Ãret"})})})}),n.jsx(C,{xs:24,md:12,children:n.jsx(x.Item,{name:"password_confirm",label:"Åifre Tekrar",dependencies:["password"],rules:[({getFieldValue:O})=>
135({validator(X,Oe){return!O("password")||O("password")===Oe?Promise.resolve():Promise.reject(new Error("Åifreler eÅleÅmiyor."))}})],children:n.jsx(G.Password,{})})})]})]})}),n.jsx(Ve,{title:K?`${K.email} Åifre sıfırlama`:"Åifre Sıfırla",open:!!K,destroyOnHidden:!0,confirmLoading:p.isPending,onCancel:On,onOk:()=>De.submit(),okText:"Kaydet",children:n.jsxs(x,{form:De,layout:"vertical",onFinish:Wn,children:[n.jsx(x.Item,{name:"new_password",label:"Yeni Geçici Åifre",rules:[{required:!0,message:"Åifre zorunludur."},{min:8,message:"En az 8 karakter olmalıdır."}],children:n.jsx(G.Password,{addonAfter:n.jsx(T,{type:"link",size:"small",icon:n.jsx(Su,{}),onClick:()=>{const O=Ii();De.setFieldsValue({new_password:O,new_password_confirm:O})},children:"Ãret"})})}),n.jsx(x.Item,{name:"new_password_confirm",label:"Åifre Tekrar",dependencies:["new_password"],rules:[{required:!0,message:"Åifre tekrarı zorunludur."},({getFieldValue:O})=>({validator(X,Oe){return!Oe||O("new_password")===Oe?Promise.resolve():Promise.reject(new Error("Åifreler eÅleÅmiyor."))}})],children:n.jsx(G.Password,{})})]})}),n.jsx(Ja,{title:J?`${J.company_name} eriÅim talebi`:"EriÅim talebi",open:!!J,width:640,destroyOnClose:!0,onClose:Gn,extra:n.jsxs(W,{children:[n.jsx(T,{onClick:Gn,children:"Kapat"}),n.jsx(T,{type:"primary",icon:n.jsx(Ml,{}),loading:y.isPending,onClick:()=>Ce.submit(),children:"Güncelle"})]}),children:J&&n.jsxs(W,{direction:"vertical",size:"large",style:{width:"100%"},children:[n.jsxs(F,{bordered:!0,size:"small",column:1,children:[n.jsx(F.Item,{label:"Firma",children:J.company_name}),n.jsx(F.Item,{label:"Yetkili",children:J.contact_name}),n.jsx(F.Item,{label:"E-posta",children:J.email}),n.jsx(F.Item,{label:"Telefon",children:J.phone||"-"}),n.jsx(F.Item,{label:"Website",children:J.website||"-"}),n.jsx(F.Item,{label:"Talep Edilen Slug",children:J.requested_slug?n.jsx(Ft,{code:!0,children:J.requested_slug}):"-"}),n.jsx(F.Item,{label:"Slug UygunluÄu",children:J.slug_available==null?"-":n.jsx(ie,{color:J.slug_available?"green":"red",children:J.slug_available?"Uygun":"ÃakıÅıyor"})}),n.jsx(F.Item,{label:"Slug Notu",children:J.slug_reason||"-"}),n.jsx(F.Item,{label:"Talep Notu",children:J.notes||"-"})]}),n.jsxs(x,{form:Ce,layout:"vertical",onFinish:ee,children:[n.jsx(x.Item,{name:"status",label:"Durum",rules:[{required:!0,message:"Durum seçin."}],children:n.jsx(pe,{options:ec})}),n.jsx(x.Item,{name:"tenant",label:"BaÄlı Tenant",children:n.jsx(pe,{allowClear:!0,showSearch:!0,optionFilterProp:"label",options:a.map(O=>({value:O.id,label:`${O.company_name||O.name} (${O.slug})`}))})}),n.jsx(x.Item,{noStyle:!0,shouldUpdate:(O,X)=>O.status!==X.status||O.tenant!==X.tenant,children:({getFieldValue:O})=>{const X=O("status"),Oe=O("tenant");return X==="APPROVED"&&!Oe&&!J.tenant_name?n.jsx(be,{style:{marginBottom:16},type:"warning",showIcon:!0,message:"Onay öncesi tenant baÄlantısı önerilir",description:"Bu talebi onaylamadan önce mevcut bir tenant seçin veya yeni tenant oluÅturup ardından baÄlayın."}):null}}),n.jsx(x.Item,{name:"review_notes",label:"DeÄerlendirme Notu",children:n.jsx(G.TextArea,{rows:5,placeholder:"İç notlar, arama sonucu veya karar gerekçesi..."})})]}),n.jsxs(W,{wrap:!0,children:[n.jsx(T,{onClick:()=>Ce.setFieldsValue({status:"CONTACTED"}),children:"GörüÅüldü"}),n.jsx(T,{type:"primary",onClick:()=>Ce.setFieldsValue({status:"APPROVED"}),children:"Onaya Hazırla"}),n.jsx(T,{danger:!0,onClick:()=>Ce.setFieldsValue({status:"REJECTED"}),children:"Reddet"})]})]})})]})},{Title:Az,Text:Fa,Paragraph:Mz}=ft,vs={NEW:{label:"Yeni",color:"blue"},CONTACTED:{label:"GörüÅüldü",color:"orange"},APPROVED:{label:"Onaylandı",color:"green"},REJECTED:{label:"Reddedildi",color:"red"}},Nz=()=>{var z,P;const[t,e]=k.useState([]),[r,i]=k.useState(!1),[s,a]=k.useState("ALL"),[l,o]=k.useState(""),[c,d]=k.useState(null),[u,m]=k.useState(""),[h,p]=k.useState(!1),y=async()=>{i(!0);try{const U=await Nt.getAdminAccessRequests();e(U)}catch(U){ce(U,"EriÅim talepleri yüklenemedi.")}finally{i(!1)}};qt.useEffect(()=>{y()},[]);const f=k.useMemo(()=>t.filter(U=>{if(s!=="ALL"&&U.status!==s)return!1;if(l){const A=l.toLowerCase();if(!`${U.company_name} ${U.contact_name} ${U.email} ${U.requested_slug||""}`.toLowerCase().includes(A))return!1}return!0}),[t,s,l]),g=k.useMemo(()=>{const U={ALL:t.length,NEW:0,CONTACTED:0,APPROVED:0,REJECTED:0};return t.forEach(A=>{U[A.status]=(U[A.status]||0)+1}),U},[t]),v=async U=>{var A;if(c){p(!0);try{const w=await Nt.updateAdminAccessRequest(c.id,{status:U,review_notes:u||void 0});re.success(`Talep durumu güncellendi: ${(A=vs[U])==null?void 0:A.label}`),e(Y=>Y.map(D=>D.id===w.id?w:D)),d(w),m("")}catch(w){ce(w,"Durum güncellenemedi.")}finally{p(!1)}}},S=U=>{const A=vs[U];Ve.confirm({title:`${A.label} olarak iÅaretle`,content:n.jsxs("div",{children:[n.jsxs(Mz,{type:"secondary",children:[n.jsx("strong",{children:c==null?void 0:c.company_name})," firmasının talebi için yukarıdaki not kaydedilecek."]}),U==="APPROVED"&&n.jsx(be,{type:"info",showIcon:!0,message:"Onaylama notu",description:n.jsxs("span",{children:["Onayla iÅareti talebi onaylar ama tenant otomatik oluÅturulmaz."," ","Tenant'ı önce ",n.jsx("a",{href:"/admin/tenants",children:"Tenantlar"})," sayfasından açın (slug: ",n.jsx("code",{children:(c==null?void 0:c.requested_slug)||"-"}),"); talep slug eÅleÅince otomatik baÄlanır."]})})]}),okText:A.label,okButtonProps:{danger:U==="REJECTED"},onOk:()=>v(U)})},R=[{title:"Firma",dataIndex:"company_name",key:"company_name",render:(U,A)=>n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:600},children:U}),A.requested_slug&&n.jsxs(Fa,{type:"secondary",style:{fontSize:11},children:[A.requested_slug,".ekiplab.com"]})]})},{title:"İletiÅim",key:"contact",render:(U,A)=>n.jsxs("div",{children:[n.jsx("div",{children:A.contact_name}),n.jsx(Fa,{type:"secondary",style:{fontSize:12},children:A.email}),A.phone&&n.jsxs(n.Fragment,{children:[n.jsx("br",{}),n.jsx(Fa,{type:"secondary",style:{fontSize:12},children:A.phone})]})]})},{title:"Durum",dataIndex:"status",key:"status",render:U=>{const A=vs[U]||{label:U,color:"default"};
135return n.jsx(ie,{color:A.color,children:A.label})}},{title:"Tarih",dataIndex:"created_at",key:"created_at",sorter:(U,A)=>new Date(U.created_at).getTime()-new Date(A.created_at).getTime(),defaultSortOrder:"descend",render:U=>Z(U).format("DD.MM.YYYY HH:mm")},{title:"İÅlem",key:"action",render:(U,A)=>n.jsx(T,{size:"small",onClick:()=>{d(A),m(A.review_notes||"")},children:"İncele"})}];return n.jsxs("div",{children:[n.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:16},children:[n.jsx(Az,{level:4,style:{margin:0},children:"ð¨ EriÅim Talepleri"}),n.jsxs(W,{children:[n.jsx(G.Search,{placeholder:"Firma, kiÅi, e-posta ara...",allowClear:!0,style:{width:280},onChange:U=>o(U.target.value)}),n.jsx(T,{icon:n.jsx(Is,{}),onClick:y,loading:r,children:"Yenile"})]})]}),n.jsx(H,{style:{marginBottom:16},children:n.jsxs(W,{size:"large",wrap:!0,children:[n.jsx(Ee,{title:"Toplam",value:g.ALL}),n.jsx(Ee,{title:"Yeni",value:g.NEW||0,valueStyle:{color:"#1677ff"}}),n.jsx(Ee,{title:"GörüÅüldü",value:g.CONTACTED||0,valueStyle:{color:"#fa8c16"}}),n.jsx(Ee,{title:"Onaylandı",value:g.APPROVED||0,valueStyle:{color:"#52c41a"}}),n.jsx(Ee,{title:"Reddedildi",value:g.REJECTED||0,valueStyle:{color:"#ff4d4f"}})]})}),n.jsxs(H,{children:[n.jsx(Tn,{style:{marginBottom:16},value:s,onChange:U=>a(U),options:[{label:`Tümü (${g.ALL})`,value:"ALL"},{label:`Yeni (${g.NEW||0})`,value:"NEW"},{label:`GörüÅüldü (${g.CONTACTED||0})`,value:"CONTACTED"},{label:`Onaylandı (${g.APPROVED||0})`,value:"APPROVED"},{label:`Reddedildi (${g.REJECTED||0})`,value:"REJECTED"}]}),n.jsx(Ie,{rowKey:"id",loading:r,dataSource:f,columns:R,pagination:{pageSize:20},locale:{emptyText:s==="ALL"?"Henüz eriÅim talebi yok.":"Bu filtreyle eÅleÅen talep yok."}})]}),n.jsx(Ja,{title:(c==null?void 0:c.company_name)||"Talep Detayı",width:520,open:!!c,onClose:()=>{d(null),m("")},footer:c&&c.status!=="APPROVED"&&c.status!=="REJECTED"?n.jsxs(W,{style:{width:"100%",justifyContent:"flex-end"},children:[n.jsx(T,{icon:n.jsx(Wc,{}),loading:h,onClick:()=>S("CONTACTED"),children:"GörüÅüldü"}),n.jsx(T,{danger:!0,icon:n.jsx(Wv,{}),loading:h,onClick:()=>S("REJECTED"),children:"Reddet"}),n.jsx(T,{type:"primary",icon:n.jsx(Dn,{}),loading:h,onClick:()=>S("APPROVED"),children:"Onayla"})]}):null,children:c&&n.jsxs(n.Fragment,{children:[n.jsxs(F,{column:1,bordered:!0,size:"small",style:{marginBottom:16},children:[n.jsx(F.Item,{label:"Firma",children:c.company_name}),n.jsx(F.Item,{label:"Talep Edilen Slug",children:c.requested_slug||"-"}),n.jsx(F.Item,{label:"Yetkili",children:c.contact_name}),n.jsx(F.Item,{label:"E-posta",children:n.jsx("a",{href:`mailto:${c.email}`,children:c.email})}),c.phone&&n.jsx(F.Item,{label:"Telefon",children:n.jsx("a",{href:`tel:${c.phone}`,children:c.phone})}),c.website&&n.jsx(F.Item,{label:"Web Sitesi",children:n.jsx("a",{href:c.website,target:"_blank",rel:"noreferrer",children:c.website})}),n.jsx(F.Item,{label:"Notlar",children:c.notes||"-"}),n.jsx(F.Item,{label:"Durum",children:n.jsx(ie,{color:(z=vs[c.status])==null?void 0:z.color,children:(P=vs[c.status])==null?void 0:P.label})}),n.jsx(F.Item,{label:"Talep Tarihi",children:Z(c.created_at).format("DD.MM.YYYY HH:mm")}),c.reviewed_at&&n.jsx(F.Item,{label:"DeÄerlendirildi",children:Z(c.reviewed_at).format("DD.MM.YYYY HH:mm")}),c.tenant&&n.jsx(F.Item,{label:"Açılan Tenant",children:n.jsx(ie,{color:"green",children:"BaÄlı tenant mevcut"})})]}),c.status==="APPROVED"||c.status==="REJECTED"?n.jsx(be,{type:"info",message:"Bu talep zaten deÄerlendirilmiÅ",description:c.review_notes||"DeÄerlendirme notu yok.",showIcon:!0}):n.jsxs(n.Fragment,{children:[n.jsx(Fa,{strong:!0,children:"DeÄerlendirme Notu"}),n.jsx(G.TextArea,{rows:3,value:u,onChange:U=>m(U.target.value),placeholder:"Karar gerekçesini yazın (opsiyonel)...",style:{marginTop:6}})]})]})})]})},Ox=()=>n.jsx("div",{className:"route-loading",children:n.jsx(mt,{size:"large"})}),Lx=({slug:t,path:e})=>(k.useEffect(()=>{Ts(t,e)},[e,t]),n.jsx(Ox,{})),Fx=({path:t})=>(k.useEffect(()=>{sl(t)},[t]),n.jsx(Ox,{})),Pz=()=>{const{isAuthenticated:t,isSuperuser:e,currentTenant:r,requiresTenantSelection:i,availableTenants:s}=He();return t?i&&!r?n.jsx(Yt,{to:"/tenant-select",replace:!0}):e&&!r?vi()||rn()?n.jsx(Yt,{to:"/admin/dashboard",replace:!0}):n.jsx(Fx,{path:"/admin/dashboard"}):r!=null&&r.slug?Br()&&!rn()?n.jsx(Lx,{slug:r.slug,path:"/dashboard"}):n.jsx(Yt,{to:"/dashboard",replace:!0}):s.length>0?n.jsx(Yt,{to:"/tenant-select",replace:!0}):n.jsx(Yt,{to:"/login",replace:!0}):Br()||rn()?n.jsx(iz,{}):n.jsx(Yt,{to:"/login",replace:!0})},zz=()=>He(e=>e.isAuthenticated)?n.jsx(Yt,{to:"/",replace:!0}):n.jsx(Ks,{}),Oz=()=>Br()||rn()?n.jsx(Ks,{}):n.jsx(Yt,{to:"/login",replace:!0}),Lz=()=>{const{isAuthenticated:t,currentTenant:e,requiresTenantSelection:r}=He();return!Br()&&!rn()?n.jsx(Yt,{to:"/",replace:!0}):t?e!=null&&e.slug&&!r?n.jsx(Yt,{to:"/",replace:!0}):n.jsx(gz,{}):n.jsx(Yt,{to:"/login",replace:!0})},Fz=()=>{const{isAuthenticated:t,currentTenant:e,requiresTenantSelection:r,isSuperuser:i}=He(),s=(e==null?void 0:e.slug)||yi();return t?r&&!e?n.jsx(Yt,{to:"/tenant-select",replace:!0}):vi()&&!i?n.jsx(Yt,{to:"/",replace:!0}):Br()&&s&&!rn()?n.jsx(Lx,{slug:s,path:window.location.pathname}):Br()&&i&&!s&&!rn()?n.jsx(Fx,{path:window.location.pathname}):n.jsx(Ob,{}):n.jsx(Yt,{to:"/login",replace:!0})},Bz=()=>{const{currentTenant:t,isSuperuser:e}=He();return t!=null&&t.slug||yi()?n.jsx(Ks,{}):e?n.jsx(Yt,{to:"/admin/dashboard",replace:!0}):n.jsx(Yt,{to:"/",replace:!0})},Yz=()=>{const{isSuperuser:t,currentTenant:e}=He(),r=!!(e!=null&&e.slug||yi());return t&&(vi()||rn()&&!r)?n.jsx(Ks,{}):r?n.jsx(Yt,{to:"/dashboard",replace:!0}):n.jsx(Yt,{to:"/",replace:!0})},Hz=tv([{path:"/",children:[{index:!0,element:n.jsx(Pz,{})},{path:"auth/complete",element:n.jsx(Bb,{})},{path:"verify/:reportNumber",element:n.jsx(DS,{})},{path:"privacy",element:n.jsx(az,{})},{element:n.jsx(zz,{}),children:[{path:"login",element:n.jsx(Ub,{})},{element:n.jsx(Oz,{}),children:[{path:"register",element:n.jsx(cz,{})},{path:"request-access",element:n.jsx(hz,{})}]}]},{path:"tenant-select",element:n.jsx(Lz,{})},{element:n.jsx(Fz,{}),children:[{element:n.jsx(Bz,{}),children:[{path:"dashboard",element:n.jsx(Vb,{})},{path:"companies",element:n.jsx(e_,{})},{path:"companies/new",element:n.jsx(Mu,{})},{path:"companies/:id/edit",element:n.jsx(Mu,{})},{path:"companies/:id",element:n.jsx(g_,{})},{path:"personnel",element:n.jsx(__,{})},{path:"personnel/new",element:n.jsx(zu,{})},{path:"personnel/:id/edit",element:n.jsx(zu,{})},{path:"personnel/:id",element:n.jsx(E_,{})},{path:"devices",element:n.jsx(N_,{})},{path:"devices/new",element:n.jsx(Lu,{})},{path:"devices/:id/edit",element:n.jsx(Lu,{})},{path:"devices/:id",element:n.jsx(B_,{})},{path:"scopes",element:n.jsx(LC,{})},{path:"equipment",element:n.jsx($C,{})},{path:"equipment/:id",element:n.jsx(GC,{})},{path:"documents",element:n.jsx(a0,{})},{path:"documents/new",element:n.jsx(Lm,{})},{path:"documents/:id/edit",element:n.jsx(Lm,{})},{path:"documents/:id",element:n.jsx(u0,{})},{path:"feedback",element:n.jsx(D0,{})},{path:"feedback/new",element:n.jsx(Ym,{})},{path:"feedback/:id/edit",element:n.jsx(Ym,{})},{path:"feedback/:id",element:n.jsx(I0,{})},{path:"corrective-actions",element:n.jsx(A0,{})},{path:"corrective-actions/:id",element:n.jsx(M0,{})},{path:"surveys",element:n.jsx(N0,{})},{path:"requests",element:n.jsx(zS,{})},{path:"requests/new",element:n.jsx(gm,{})},{path:"requests/:id/edit",element:n.jsx(gm,{})},{path:"requests/:id",element:n.jsx(LS,{})},{path:"proposals",element:n.jsx(BS,{})},{path:"proposals/new",element:n.jsx(Mm,{})},{path:"proposals/:id/edit",element:n.jsx(Mm,{})},{path:"proposals/:id",element:n.jsx(_C,{})},{path:"crm/leads",element:n.jsx(qP,{})},{path:"crm/leads/new",element:n.jsx(op,{})},{path:"crm/leads/:id/edit",element:n.jsx(op,{})},{path:"crm/leads/:id",element:n.jsx(GP,{})},{path:"crm/activities",element:n.jsx(VP,{})},{path:"crm/dashboard",element:n.jsx(QP,{})},{path:"analytics",element:n.jsx(zC,{})},{path:"services",element:n.jsx(mj,{})},{path:"services/new",element:n.jsx(Hu,{})},{path:"services/:id/edit",element:n.jsx(Hu,{})},{path:"services/:id",element:n.jsx(Qj,{})},{path:"calendar",element:n.jsx(wP,{})},{path:"vehicles",element:n.jsx(O0,{})},{path:"vehicles/new",element:n.jsx($m,{})},{path:"vehicles/:id/edit",element:n.jsx($m,{})},{path:"vehicles/:id",element:n.jsx(B0,{})},{path:"reports",element:n.jsx(mk,{})},{path:"reports/bulk-sign",element:n.jsx(NS,{})},{path:"reports/new",element:n.jsx(pm,{})},{path:"reports/:id/edit",element:n.jsx(pm,{})},{path:"reports/:id",element:n.jsx(wS,{})},{path:"notifications",element:n.jsx(TP,{})},{path:"settings/organization",element:n.jsx(_z,{})}]},{element:n.jsx(Yz,{}),children:[{path:"admin/dashboard",element:n.jsx(kz,{})},{path:"admin/tenants",element:n.jsx(Tz,{})},{path:"admin/account-requests",element:n.jsx(Nz,{})}]},{path:"settings",element:n.jsx(IP,{})},{path:"audit-log",element:n.jsx(tz,{})}]}]}]),Uz=new iv({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}}),qz=()=>{const t=al(s=>s.mode),[e,r]=k.useState(typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)").matches:!1);k.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const s=window.matchMedia("(prefers-color-scheme: dark)"),a=l=>r(l.matches);return s.addEventListener("change",a),()=>s.removeEventListener("change",a)},[]);const i=t==="dark"||t==="system"&&e;return k.useEffect(()=>{document.body.classList.toggle("theme-dark",i),document.body.classList.toggle("theme-light",!i),document.documentElement.setAttribute("data-theme",i?"dar
135k":"light")},[i]),n.jsx(sv,{client:Uz,children:n.jsx(Vv,{locale:Qv,theme:{algorithm:i?rc.darkAlgorithm:rc.defaultAlgorithm,token:{colorPrimary:i?"#3DA5DA":"#1B5E8C",borderRadius:6,fontFamily:"Inter, system-ui, sans-serif"},components:{Layout:{headerBg:i?"#0f172a":"#ffffff",siderBg:i?"#0f172a":"#ffffff",bodyBg:i?"#0b1220":"#f5f7fa"},Menu:{darkItemBg:"#0f172a",darkSubMenuItemBg:"#0b1220"},Card:{colorBgContainer:i?"#162033":"#ffffff"}}},children:n.jsx(nv,{router:Hz})})})};ev.createRoot(document.getElementById("root")).render(n.jsx(qt.StrictMode,{children:n.jsx(qz,{})}));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.