import {regionNames, presetStart} from './history-core.mjs'; const rows=JSON.parse(document.getElementById('archive-chart-data').textContent); const plot=document.getElementById('archive-plot'); const period=document.getElementById('archive-period'); const slider=document.getElementById('archive-date'); const detail=document.getElementById('archive-chart-detail'); const colors=['#c81e2b','#343e50','#aa6840','#737ea2']; const dashes=['','9 3','3 3','12 3 2 3']; const money=new Intl.NumberFormat('tr-TR',{maximumFractionDigits:0}); const date=s=>new Date(s+'T12:00:00Z').toLocaleDateString('tr-TR',{day:'numeric',month:'long',year:'numeric',timeZone:'UTC'}); let selected=[],x,y; function inspect(){ const row=selected[Number(slider.value)];if(!row)return; slider.setAttribute('aria-valuetext',date(row.date)); detail.innerHTML=`${date(row.date)} ↗
${regionNames.map((name,i)=>`
${name}${money.format(row.values[i])} ₺/ton
`).join('')}
`; const cursor=plot.querySelector('#archive-cursor'); cursor.innerHTML=`${row.values.map((v,i)=>``).join('')}`; } function draw(reset=false){ const start=presetStart(rows.at(-1).date,period.value,rows[0].date); selected=rows.filter(r=>r.date>=start); const width=Math.max(250,plot.clientWidth),height=320,left=55,right=15,top=20,bottom=270; const values=selected.flatMap(r=>r.values),low=Math.min(...values),high=Math.max(...values),padding=Math.max(100,(high-low)*.12); const min=Math.max(0,low-padding),max=high+padding; const first=Date.parse(selected[0].date),last=Date.parse(selected.at(-1).date); x=r=>last===first?(left+width-right)/2:left+(Date.parse(r.date)-first)/(last-first)*(width-left-right); y=v=>bottom-(v-min)/(max-min)*(bottom-top); const grid=Array.from({length:5},(_,i)=>{const v=min+(max-min)*i/4,yy=y(v);return `${money.format(v)}`;}).join(''); const count=width<500?3:6; const labels=Array.from({length:count},(_,i)=>{const r=selected[Math.round(i*(selected.length-1)/(count-1))];return `${r.date.slice(8)}.${r.date.slice(5,7)}.${r.date.slice(0,4)}`;}).join(''); plot.innerHTML=`Dört bölgenin demir fiyatları${date(selected[0].date)} ile ${date(selected.at(-1).date)} arasındaki ${selected.length} kayıt. Bölge fiyatlarını okumak için grafiğin altındaki tarih kaydırıcısını kullanın.${grid}${labels}${regionNames.map((_,i)=>``).join('')}`; slider.max=selected.length-1;if(reset)slider.value=selected.length-1; document.getElementById('archive-chart-range').textContent=`${date(selected[0].date)} – ${date(selected.at(-1).date)} · ${selected.length.toLocaleString('tr-TR')} tarihli kayıt`; inspect(); } period.addEventListener('change',()=>draw(true)); slider.addEventListener('input',inspect); plot.addEventListener('pointerdown',event=>{ const target=event.clientX-plot.getBoundingClientRect().left; let best=0;selected.forEach((r,i)=>{if(Math.abs(x(r)-target)draw()).observe(plot);