UNPKG

kitchensink

Version:

Dispatch's awesome components and style guide

77 lines (69 loc) 1.73 kB
/*eslint-env browser*/ var clientOverlay = document.createElement('div'); var styles = { background: 'rgba(0,0,0,0.85)', color: '#E8E8E8', lineHeight: '1.2', whiteSpace: 'pre', fontFamily: 'Menlo, Consolas, monospace', fontSize: '13px', position: 'fixed', zIndex: 9999, padding: '10px', left: 0, right: 0, top: 0, bottom: 0, overflow: 'auto' }; for (var key in styles) { clientOverlay.style[key] = styles[key]; } var ansiHTML = require('ansi-html'); var colors = { reset: ['transparent', 'transparent'], black: '181818', red: 'E36049', green: 'B3CB74', yellow: 'FFD080', blue: '7CAFC2', magenta: '7FACCA', cyan: 'C3C2EF', lightgrey: 'EBE7E3', darkgrey: '6D7891' }; ansiHTML.setColors(colors); var Entities = require('html-entities').AllHtmlEntities; var entities = new Entities(); exports.showProblems = function showProblems(type, lines) { clientOverlay.innerHTML = ''; lines.forEach(function(msg) { msg = ansiHTML(entities.encode(msg)); var div = document.createElement('div'); div.style.marginBottom = '26px'; div.innerHTML = problemType(type) + ' in ' + msg; clientOverlay.appendChild(div); }); if (document.body) { document.body.appendChild(clientOverlay); } }; exports.clear = function clear() { if (document.body && clientOverlay.parentNode) { document.body.removeChild(clientOverlay); } }; var problemColors = { errors: colors.red, warnings: colors.yellow }; function problemType (type) { var color = problemColors[type] || colors.red; return ( '<span style="background-color:#' + color + '; color:#fff; padding:2px 4px; border-radius: 2px">' + type.slice(0, -1).toUpperCase() + '</span>' ); }