UNPKG

mdx-m3-viewer

Version:

A browser WebGL model viewer. Mainly focused on models of the games Warcraft 3 and Starcraft 2.

89 lines (70 loc) 2.39 kB
class TestResults extends Component { constructor(results) { super(); this.results = results; this.nodes = []; let nodes = results.nodes; if (nodes.length) { for (let node of nodes) { this.nodes.push(new TestResultsNode(node, this.container)); } } else { this.nodes.push(new TestResultsNode({ type: 'bold', message: 'Passed' }, this.container)); } } filter(unused, warnings, severe, errors) { for (let node of this.nodes) { node.filter(unused, warnings, severe, errors); } } } class TestResultsNode extends Component { constructor(node, parentElement) { super(); let className = ''; let textContent = ''; if (node.type === 'node') { className = 'bold'; textContent = node.name; } else { className = node.type; textContent = node.message; } createElement({ className, textContent, container: this.container }); this.node = node; this.nodes = []; if (node.type === 'node') { if (node.nodes.length || node.uses === 0) { let container = createElement({ className: 'indent', container: this.container }); if (node.uses === 0) { this.nodes.push(new TestResultsNode({ type: 'unused', message: 'Not used' }, container)); } for (let child of node.nodes) { this.nodes.push(new TestResultsNode(child, container)); } } } parentElement.appendChild(this.container); } filter(unused, warnings, severe, errors) { if (this.matchFilters(unused, warnings, severe, errors)) { if (this.node.type === 'node') { for (let child of this.nodes) { child.filter(unused, warnings, severe, errors); } } this.show(); } else { this.hide(); } } matchFilters(unused, warnings, severe, errors) { let node = this.node; if (node.type === 'node') { return ((node.unused || node.uses === 0) && !unused) || (node.warnings && !warnings) || (node.severe && !severe) || (node.errors && !errors); } else { let type = node.type; return (type === 'unused' && !unused) || (type === 'warning' && !warnings) || (type === 'severe' && !severe) || (type === 'error' && !errors) || type === 'bold'; } } }