// Track visible work by page so unrelated preloads cannot hold the bar open. const DeltaLoading = (() => { const bar = document.getElementById("site-loading"); const pending = new Set(); function refresh() { const page = document.body.dataset.page; bar.hidden = !Array.from(pending).some(pages => !pages.length || pages.includes(page)); } function start(...pages) { pending.add(pages); refresh(); return () => { pending.delete(pages); refresh(); }; } function track(promise, ...pages) { const finish = start(...pages); return Promise.resolve(promise).finally(finish); } if (document.readyState !== "complete") { window.addEventListener("load", start(), { once: true }); } return { refresh, start, track }; })();