summaryrefslogtreecommitdiffstats
path: root/web/gui/src/dashboard.js/colors.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/gui/src/dashboard.js/colors.js')
-rw-r--r--web/gui/src/dashboard.js/colors.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/web/gui/src/dashboard.js/colors.js b/web/gui/src/dashboard.js/colors.js
new file mode 100644
index 000000000..4b98c017c
--- /dev/null
+++ b/web/gui/src/dashboard.js/colors.js
@@ -0,0 +1,34 @@
+NETDATA.colorHex2Rgb = function (hex) {
+ // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
+ let shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
+ hex = hex.replace(shorthandRegex, function (m, r, g, b) {
+ return r + r + g + g + b + b;
+ });
+
+ let result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
+ return result ? {
+ r: parseInt(result[1], 16),
+ g: parseInt(result[2], 16),
+ b: parseInt(result[3], 16)
+ } : null;
+};
+
+NETDATA.colorLuminance = function (hex, lum) {
+ // validate hex string
+ hex = String(hex).replace(/[^0-9a-f]/gi, '');
+ if (hex.length < 6) {
+ hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
+ }
+
+ lum = lum || 0;
+
+ // convert to decimal and change luminosity
+ let rgb = "#";
+ for (let i = 0; i < 3; i++) {
+ let c = parseInt(hex.substr(i * 2, 2), 16);
+ c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);
+ rgb += ("00" + c).substr(c.length);
+ }
+
+ return rgb;
+};