/* ═══════════════════════════════════════════════════════════ 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 ``; }, };