/**
* This file is part of the Tracy (https://tracy.nette.org)
*/
'use strict';
(function(){
class BlueScreen
{
static init(ajax) {
let blueScreen = document.getElementById('tracy-bs');
let styles = [];
for (let i = 0; i < document.styleSheets.length; i++) {
let style = document.styleSheets[i];
if (!style.ownerNode.classList.contains('tracy-debug')) {
style.oldDisabled = style.disabled;
style.disabled = true;
styles.push(style);
}
}
if (navigator.platform.indexOf('Mac') > -1) {
blueScreen.classList.add('mac');
}
document.getElementById('tracy-bs-toggle').addEventListener('tracy-toggle', function() {
let collapsed = this.classList.contains('tracy-collapsed');
for (let i = 0; i < styles.length; i++) {
styles[i].disabled = collapsed ? styles[i].oldDisabled : true;
}
});
if (!ajax) {
document.body.appendChild(blueScreen);
let id = location.href + document.getElementById('tracy-bs-error').textContent;
Tracy.Toggle.persist(blueScreen, sessionStorage.getItem('tracy-toggles-bskey') === id);
sessionStorage.setItem('tracy-toggles-bskey', id);
}
if (inited) {
return;
}
inited = true;
// enables toggling via ESC
document.addEventListener('keyup', (e) => {
if (e.keyCode === 27 && !e.shiftKey && !e.altKey && !e.ctrlKey && !e.metaKey) { // ESC
Tracy.Toggle.toggle(document.getElementById('tracy-bs-toggle'));
}
});
Tracy.TableSort.init();
}
static loadAjax(content) {
let ajaxBs = document.getElementById('tracy-bs');
if (ajaxBs) {
ajaxBs.parentNode.removeChild(ajaxBs);
}
document.body.insertAdjacentHTML('beforeend', content);
ajaxBs = document.getElementById('tracy-bs');
Tracy.Dumper.init(ajaxBs);
BlueScreen.init(true);
window.scrollTo(0, 0);
}
}
let inited;
let Tracy = window.Tracy = window.Tracy || {};
Tracy.BlueScreen = BlueScreen;
})();
|