/* ═══════════════════════════════════════════════════════════
6. POPUP BUILDERS
═══════════════════════════════════════════════════════════ */
const Popup = {
_row:(k,v)=>`
`,
_sect:t=>``,
_acts:(ln,id)=>``,
spbu(r){ const cfg=CFG.spbu,clr=cfg.color(r),bdg=cfg.badge(r);
return ``; },
jalan(r){ const cfg=CFG.jalan,bdg=cfg.badge(r);
return ``; },
parsil(r){ const cfg=CFG.parsil,bdg=cfg.badge(r);
return ``; },
warga(r){ const cfg=CFG.warga,clr=cfg.color(r),bdg=cfg.badge(r);
const ri=Store.all('rumahIbadah');
let nearestRI=null, nearestDist=Infinity;
ri.forEach(hub=>{
if(hub.lat==null||r.lat==null) return;
const d=L.latLng(r.lat,r.lng).distanceTo(L.latLng(hub.lat,hub.lng));
if(d
${covered?'Terjangkau Hub: '+H.esc(nearestRI.nama)+' ('+Math.round(nearestDist)+' m)':'Tidak Terjangkau ('+Math.round(nearestDist)+' m dari RI)'}
`
:'Belum ada Rumah Ibadah Hub
';
const histHtml=r.history_bansos?.length
?r.history_bansos.map(h=>`${H.esc(h.program)} (${h.tahun||'-'})${H.esc(h.status)}
`).join('')
:'Belum ada riwayat bansos
';
return ``; },
rumahIbadah(r){ const cfg=CFG.rumahIbadah,clr=cfg.color(r),bdg=cfg.badge(r);
return ``; },
};