2 lines
7.3 KiB
JavaScript
2 lines
7.3 KiB
JavaScript
(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const o of e)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&t(l)}).observe(document,{childList:!0,subtree:!0});function r(e){const o={};return e.integrity&&(o.integrity=e.integrity),e.referrerPolicy&&(o.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?o.credentials="include":e.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function t(e){if(e.ep)return;e.ep=!0;const o=r(e);fetch(e.href,o)}})();const m=[{id:"edebiyat",label:"Edebiyat",color:12597547,range:"800–899",desc:"Roman, öykü, şiir ve deneme rafı. Türk ve dünya edebiyatı bir arada."},{id:"tarih",label:"Tarih",color:9329195,range:"900–999",desc:"Osmanlı, Cumhuriyet ve dünya tarihi; kronikler ve biyografiler."},{id:"bilim",label:"Bilim & Teknik",color:2388387,range:"500–599",desc:"Matematik, fizik, biyoloji ve mühendislik temel kaynakları."},{id:"felsefe",label:"Felsefe",color:7091331,range:"100–199",desc:"Antik çağdan çağdaş düşünceye felsefe klasikleri."},{id:"sanat",label:"Sanat & Tasarım",color:12154638,range:"700–799",desc:"Resim, mimarlık, müzik ve grafik tasarım albümleri."},{id:"cografya",label:"Coğrafya & Seyahat",color:1999945,range:"910–919",desc:"Atlaslar, haritalar, gezi notları ve bölge incelemeleri."},{id:"cocuk",label:"Çocuk Kitapları",color:13849600,range:"Ç-000",desc:"Okul öncesi ve ilkokul; resimli kitaplar, masal ve etkinlik."},{id:"hukuk",label:"Hukuk & Sosyal",color:5662067,range:"340–349",desc:"Mevzuat, anayasa, sosyoloji ve kamu yönetimi."},{id:"tip",label:"Tıp & Sağlık",color:1347447,range:"610–619",desc:"Anatomi atlasları, halk sağlığı ve ilk yardım el kitapları."},{id:"dil",label:"Dil & Sözlük",color:10124554,range:"400–499",desc:"Sözlükler, dil bilgisi ve çeviri kuramı."},{id:"dijital",label:"Bilişim",color:3031123,range:"004–006",desc:"Yazılım, veri, yapay zekâ ve dijital okuryazarlık."},{id:"referans",label:"Referans",color:8218120,range:"030–039",desc:"Ansiklopediler, yıllıklar ve başvuru kaynakları (yalnız yerinde okunur)."}],f=[{id:"S1",x:-11.5,z:3.2,rotY:0,floor:0,categoryIndex:0,length:6,label:"Edebiyat A"},{id:"S2",x:-8.3,z:3.2,rotY:0,floor:0,categoryIndex:0,length:6,label:"Edebiyat B"},{id:"S3",x:-5.1,z:3.2,rotY:0,floor:0,categoryIndex:1,length:6,label:"Tarih A"},{id:"S4",x:-1.9,z:3.2,rotY:0,floor:0,categoryIndex:1,length:6,label:"Tarih B"},{id:"S5",x:13.4,z:5,rotY:0,floor:0,categoryIndex:2,length:6.4,label:"Bilim & Teknik"},{id:"S6",x:13.4,z:-1.8,rotY:0,floor:0,categoryIndex:3,length:6.4,label:"Felsefe"},{id:"S7",x:13.4,z:-8.2,rotY:0,floor:0,categoryIndex:7,length:5.6,label:"Hukuk & Sosyal"},{id:"S8",x:5,z:-9.4,rotY:Math.PI/2,floor:0,categoryIndex:6,length:6,label:"Çocuk Kitapları"},{id:"S9",x:-11.6,z:-6.4,rotY:Math.PI/2,floor:1,categoryIndex:4,length:5.4,label:"Sanat & Tasarım"},{id:"S10",x:-11,z:8.4,rotY:0,floor:1,categoryIndex:5,length:6,label:"Coğrafya & Seyahat"},{id:"S11",x:11.4,z:8.4,rotY:0,floor:1,categoryIndex:10,length:6,label:"Bilişim"},{id:"S12",x:11.4,z:-8.6,rotY:Math.PI/2,floor:1,categoryIndex:11,length:5,label:"Referans"}];function g(){return m.map((a,n)=>({...a,shelfCount:f.filter(r=>r.categoryIndex===n).length}))}function k(){const a=document.getElementById("colGrid");if(!a)return;const n=g(),r=document.createDocumentFragment();for(const t of n){const e=`#${t.color.toString(16).padStart(6,"0")}`,o=document.createElement("li");o.className="col-card reveal",o.style.setProperty("--cat",e);const l=document.createElement("div");l.className="col-top";const i=document.createElement("h3");i.className="col-name",i.textContent=t.label;const c=document.createElement("span");c.className="col-range",c.textContent=t.range,l.append(i,c);const s=document.createElement("p");s.className="col-desc",s.textContent=t.desc;const d=document.createElement("span");d.className="col-count",d.textContent=t.shelfCount>0?`${t.shelfCount} kitaplık`:"Referans salonu",o.append(l,s,d),r.appendChild(o)}a.appendChild(r)}const y=[{title:"Sessiz çalışma alanı",text:"Zemin katta pencere boyunca uzanan okuma masaları. Her masada okuma lambası ve priz.",icon:'<path d="M4 18h16M6 18V9l6-4 6 4v9M9 18v-5h6v5"/>'},{title:"Çocuk bölümü",text:"Alt raf yüksekliğinde, renkli sırtlı kitaplarla ayrılmış okuma köşesi ve minderler.",icon:'<circle cx="12" cy="8" r="3.2"/><path d="M5.5 19c0-3.3 2.9-5.5 6.5-5.5s6.5 2.2 6.5 5.5"/>'},{title:"Referans kaynaklar",text:"Ansiklopedi, sözlük ve atlas rafları. Yerinde kullanım; fotokopi için danışma bankosu.",icon:'<path d="M5 4h9a3 3 0 013 3v13H8a3 3 0 00-3 3V4z"/><path d="M5 4v13"/>'},{title:"Dijital erişim",text:"Üst katta altı istasyon: katalog tarama, e-kitap erişimi ve internet.",icon:'<rect x="3" y="5" width="18" height="12" rx="2"/><path d="M8 21h8M12 17v4"/>'},{title:"Etkinlik alanı",text:"Üst kat balkonunun arkasında seminer ve atölye için esnek oturma düzeni.",icon:'<path d="M4 20V9l8-4 8 4v11"/><path d="M9 20v-6h6v6"/>'},{title:"Katalog tarama",text:"Raf kodu ve Dewey aralığına göre arama. 3D gezintide her raf tıklanabilir.",icon:'<circle cx="11" cy="11" r="6.5"/><path d="M16 16l4.5 4.5"/>'}];function p(){const a=document.getElementById("svcGrid");if(!a)return;const n=document.createDocumentFragment();for(const r of y){const t=document.createElement("article");t.className="svc-card reveal";const e=document.createElement("div");e.className="svc-icon",e.innerHTML=`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${r.icon}</svg>`;const o=document.createElement("h3");o.textContent=r.title;const l=document.createElement("p");l.textContent=r.text,t.append(e,o,l),n.appendChild(t)}a.appendChild(n)}function h(){const a=document.getElementById("nav"),n=document.getElementById("navToggle");if(!a)return;const r=()=>{a.classList.toggle("is-solid",window.scrollY>24)};if(r(),window.addEventListener("scroll",r,{passive:!0}),!n)return;const t=e=>{a.classList.toggle("menu-open",e),n.setAttribute("aria-expanded",String(e)),n.setAttribute("aria-label",e?"Menüyü kapat":"Menüyü aç")};n.addEventListener("click",()=>{t(!a.classList.contains("menu-open"))}),a.querySelectorAll(".nav-links a").forEach(e=>{e.addEventListener("click",()=>t(!1))}),document.addEventListener("keydown",e=>{e.key==="Escape"&&a.classList.contains("menu-open")&&(t(!1),n.focus())})}function v(){const a=Array.from(document.querySelectorAll("[data-count]"));if(a.length!==0)for(const n of a){const r=Number(n.dataset.count??"0");!Number.isFinite(r)||r<=0||(n.textContent=r.toLocaleString("tr-TR"))}}function b(){const a=Array.from(document.querySelectorAll(".reveal"));if(a.length===0)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){a.forEach(t=>t.classList.add("in-view"));return}const r=new IntersectionObserver(t=>{for(const e of t)e.isIntersecting&&(e.target.classList.add("in-view"),r.unobserve(e.target))},{threshold:.12,rootMargin:"0px 0px -8% 0px"});a.forEach(t=>r.observe(t))}function u(){k(),p(),h(),v(),b()}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",u,{once:!0}):u();
|