/* Feature Detectors */ /* Valid values for ${type}: localstorage, sessionstorage */ async function storageAvailable(type) { try { var storage = window[type], x = '__storage_test__'; storage.setItem(x, x); storage.getItem(x); log(`lib.main.storageAvailable: ${type} is available`) return true; } catch (err) { log(`lib.main.storageAvailable: ${type} is not available`) return false; } } /* Timeouts */ /* Usage: '' */ const delay = ms => new Promise(res => setTimeout(res, ms)); /* Log Helper */ /* Values for level: 1, 2, 3 */ /* Maintains backwards compatibility for previous implementation of log helper */ async function log(msg, type) { var time = new Date().toISOString(); switch (type) { case "ERR": console.error(`${time} - ${msg}`); break; case "WARN": console.warn(`${time} - ${msg}`); break; case "INFO": console.info(`${time} - ${msg}`); break; default: console.log(`${time} - ${msg}`); break; }; }; /* Menu Control */ async function sidebarOpen() { document.getElementById("sidebar").style.width = "50%"; document.getElementById("sidebar_open_short").style.display = "none"; document.getElementById("sidebar_close_short").style.display = "block"; } async function sidebarClose() { document.getElementById("sidebar").style.width = "0%" document.getElementById("sidebar_open_short").style.display = "block"; document.getElementById("sidebar_close_short").style.display = "none"; } /* Loading Box Control */ async function hideLoading() { document.getElementById("loading").style = "display: none;"; } /* DEPRECIATED: Alias for hideLoading() - Marked for removal*/ async function clearLoading() { log("Depreciated function called - clearLoading() - Alias to hideLoading()", "WARN") await hideLoading(); } async function showLoading() { document.getElementById("loading").style = "display: block;"; } async function setLoadingDesc(desc) { document.getElementById("loading_desc").textContent = `${desc}`; } /* Fetch User Settings */ async function getQuickLinks() { try { var data = JSON.parse(localStorage.getItem("qlOpt")); } catch (err) { var data = ["bri","lwh","srd","mtp","rda","cfn", "sml","shh","pri","avn","sar","svb"]; } return data; }