Files

2 lines
7.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(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();