azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 2.01 kB
JavaScript
function darken(e,r){r=1-r;return{red:e.red*r,green:e.green*r,blue:e.blue*r}}function getColorString(e){return`rgb(${e.red}, ${e.green}, ${e.blue})`}function isDark(e){return.299*e.red+.587*e.green+.114*e.blue<=128}function rgbToHex(e){return("#"+rgbValueToString(e.red)+rgbValueToString(e.green)+rgbValueToString(e.blue)).toUpperCase()}function hexToRgb(e){if(7!==e.length||"#"!==e[0])throw new Error("Expected color in format #AABBCC");return{red:parseInt(e.substr(1,2),16),green:parseInt(e.substr(3,2),16),blue:parseInt(e.substr(5,2),16)}}function generateRandomColor(){var e=Math.floor(256*Math.random()),r=Math.floor(256*Math.random());return{red:Math.floor(256*Math.random()),blue:e,green:r}}function generateRandomColorHex(){return rgbToHex(generateRandomColor())}function parseColor(r){if(r){let e=void 0;if(7===r.length)try{e=hexToRgb(r)}catch(e){console.log(e)}return e}}function adjustHighlightedTextColors(e,r,o){var n,t,l=[],a=parseCssColor(null!=r?r:""),s=parseCssColor(null!=o?o:""),g=r&&a&&!isDark(a)?r:"#ffffff",u=o&&s&&isDark(s)?o:"#000000";for(const c of e){var i=c.style.backgroundColor;if(i){i=parseCssColor(i);if(i){var f=isDark(i)?g:u,d=null==(d=null==(d=c.ownerDocument)?void 0:d.defaultView)?void 0:d.getComputedStyle(c).color;if(d){d=parseCssColor(d);if(d&&isDark(i)!==isDark(d))continue}l.push({element:c,color:f})}}}for({element:n,color:t}of l)n.style.color=t}const hexRegex=new RegExp("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"),rgbRegex=new RegExp("^rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)(?:\\s*,\\s*[\\d.]+)?\\s*\\)");function testForHexString(e){return e.match(hexRegex)}function rgbValueToString(e){let r=e.toString(16);return r=1===r.length?"0"+r:r}function parseCssColor(e){var r=e.trim().match(rgbRegex);return 4===(null==r?void 0:r.length)?{red:parseInt(r[1]),green:parseInt(r[2]),blue:parseInt(r[3])}:parseColor(e)}export{darken,getColorString,isDark,rgbToHex,hexToRgb,generateRandomColor,generateRandomColorHex,parseColor,adjustHighlightedTextColors,testForHexString};