const AppState = {
errors: [],
filteredErrors: [],
hashLookup: {}, components: {},
primaries: {},
sequences: {},
severities: {},
searchQuery: '',
activeSeverities: new Set(['critical', 'error', 'warning', 'info', 'debug', 'trace']),
activeCategory: null,
activeCategoryType: null, activeTag: null,
documentRole: 'public', viewingAs: null,
selectedErrorCode: null,
expandedCards: new Set(),
openSections: new Map(), sequenceFormat: 'numeric',
activeSidebarTab: 'browse', expandedTreeNodes: new Set(),
};
const SEVERITY_ORDER = ['error', 'blocked', 'critical', 'warning', 'help', 'success', 'completed', 'info', 'trace'];
const SEVERITY_ICONS = {
error: '\u274C',
blocked: '\u26D4',
critical: '\uD83D\uDD25',
warning: '\u26A0\uFE0F',
help: '\uD83D\uDCA1',
success: '\u2705',
completed: '\u2714\uFE0F',
info: '\u2139\uFE0F',
trace: '\uD83D\uDD0D'
};
const VISIBILITY_LEVELS = {
public: 0, developer: 1, internal: 2 };
const DOM = {};
function initDOMReferences() {
DOM.searchInput = document.getElementById('searchInput');
DOM.searchClear = document.getElementById('searchClear');
DOM.activeFilters = document.getElementById('activeFilters');
DOM.queryBuilderToggle = document.getElementById('queryBuilderToggle');
DOM.queryBuilder = document.getElementById('queryBuilderDropdown');
DOM.autocompleteDropdown = document.getElementById('autocompleteDropdown');
DOM.severityBar = document.getElementById('severityFilterBar');
DOM.visibilityRow = document.getElementById('visibilityRow');
DOM.resultsContainer = document.getElementById('results');
DOM.resultsCount = document.getElementById('resultCount');
DOM.statsRow = document.getElementById('statsRow');
DOM.browseList = document.getElementById('browseList');
DOM.browseTabs = document.getElementById('browseTabs');
DOM.detailSection = document.getElementById('detailSection');
DOM.detailPanel = document.getElementById('detailPanel');
DOM.detailContent = document.getElementById('detailContent');
DOM.themeToggle = document.getElementById('themeToggle');
DOM.formatToggle = document.getElementById('formatToggle');
DOM.hamburgerBtn = document.getElementById('hamburgerBtn');
DOM.sidebar = document.getElementById('sidebar');
DOM.toastContainer = document.getElementById('toastContainer');
DOM.builderPreview = document.getElementById('builderPreview');
DOM.builderCloseBtn = document.getElementById('builderCloseBtn');
DOM.builderClearBtn = document.getElementById('builderClearBtn');
DOM.builderSearchBtn = document.getElementById('builderSearchBtn');
}
function getEffectiveVisibility() {
return AppState.viewingAs || AppState.documentRole;
}
function isErrorVisible(error) {
const viewingLevel = VISIBILITY_LEVELS[getEffectiveVisibility()] || 0;
const errorRole = (error.role || error.visibility || 'public').toLowerCase();
const errorLevel = VISIBILITY_LEVELS[errorRole] || 0;
return viewingLevel >= errorLevel;
}