import config from "@/utils/config.json"; import { preferences, cache } from "@/utils/storage"; browser.devtools.panels.create("Poly+", "icon/128.png", "devtools.html"); for (const src of [ "/css/polytoria.css", "/css/preferences.css" ]) { const css = browser.runtime.getURL(src as any); const link = document.createElement('link'); link.rel = 'stylesheet'; link.href = css; document.head.appendChild(link); }; const modal: HTMLDialogElement = document.getElementsByTagName('dialog')[0]!; const openModal = (title: string, description: string, body: any, json: boolean) => { if (json) { body = `
${JSON.stringify((body || []), null, 2) .replaceAll('\n','
') .replaceAll(' ', ' ') .replaceAll('\t', '    ')}
`; }; modal.getElementsByTagName('h5')[0]!.textContent = title; modal.getElementsByTagName('span')[0]!.textContent = description; modal.getElementsByClassName('modal-body')[0]!.innerHTML = body; modal.showModal(); }; document.getElementById('view-preferences')!.addEventListener('click', async () => { openModal( "Preferences", "The following values are the user's preferences.", await preferences.getPreferences(), true ); }); document.getElementById('view-cache')!.addEventListener('click', async () => { openModal( "Cache", "The following values are saved for a certain period of time, before being \"replenished\" when next requested.", await cache.getValue(), true ); }); document.getElementById('expose-config')!.addEventListener('click', () => openModal( "Configuration", "The defining values for several features of the extension.", config, true )); document.getElementById('modal-close')!.addEventListener('click', () => modal.close());