// Live filter daftar pemilih by owner (V11). Tanpa JS: form GET ?q= tetap jalan. (function () { 'use strict'; var input = document.getElementById('search-input'); var rows = document.getElementById('rows'); var pager = document.getElementById('pager'); var result = document.getElementById('search-result'); if (!input || !rows || !pager) { return; } var timer = null; var originalRows = null; var originalPager = null; var originalBands = null; var DEBOUNCE_MS = 200; var GROUP_LABEL = { baru: 'BARU', revote: 'REVOTE', valid: 'VALID', kadaluarsa: 'KADALUARSA' }; function escapeHtml(text) { var el = document.createElement('div'); el.textContent = text == null ? '' : String(text); return el.innerHTML; } function vex(value) { return Number(value).toLocaleString('id-ID', { minimumFractionDigits: 4, maximumFractionDigits: 4 }); } function shortdate(value) { if (!value) { return '—'; } return String(value).slice(0, 10); } function hideBands(on) { var bands = document.querySelectorAll('.band-list'); if (on && originalBands === null) { originalBands = Array.prototype.map.call(bands, function (el) { return el.style.display || ''; }); Array.prototype.forEach.call(bands, function (el) { el.style.display = 'none'; }); } else if (!on && originalBands !== null) { Array.prototype.forEach.call(bands, function (el, i) { el.style.display = originalBands[i] || ''; }); originalBands = null; } } function setSearchMode(on) { if (on && originalRows === null) { originalRows = rows.innerHTML; originalPager = pager.style.display || ''; hideBands(true); } else if (!on && originalRows !== null) { rows.innerHTML = originalRows; pager.style.display = originalPager; originalRows = null; originalPager = null; hideBands(false); if (result) { result.textContent = ''; } } } function renderResults(data) { if (!data.results.length) { rows.innerHTML = '