window.FuelTrack=window.FuelTrack||{}; FuelTrack.charts={}; FuelTrack.qs=(s,r=document)=>r.querySelector(s); FuelTrack.qsa=(s,r=document)=>[...r.querySelectorAll(s)]; FuelTrack.notify=(message,type='success')=>{let host=FuelTrack.qs('#live-alerts');if(!host){host=document.createElement('div');host.id='live-alerts';host.className='app-alert-host';document.body.append(host)}const el=document.createElement('div');el.className=`alert alert-${type} alert-dismissible fade show app-alert`;el.textContent=message;host.append(el);setTimeout(()=>el.remove(),3500)}; FuelTrack.debounce=(fn,delay=300)=>{let timer;return(...args)=>{clearTimeout(timer);timer=setTimeout(()=>fn(...args),delay)}};