@grafana/ui
Version:
Grafana Components Library
130 lines (123 loc) • 3.28 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var lodash = require('lodash');
var tinycolor = require('tinycolor2');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var tinycolor__default = /*#__PURE__*/_interopDefaultCompat(tinycolor);
;
const PALETTE_ROWS = 4;
const DEFAULT_ANNOTATION_COLOR = "rgba(0, 211, 255, 1)";
const OK_COLOR = "rgba(11, 237, 50, 1)";
const ALERTING_COLOR = "rgba(237, 46, 24, 1)";
const NO_DATA_COLOR = "rgba(150, 150, 150, 1)";
const PENDING_COLOR = "rgba(247, 149, 32, 1)";
const REGION_FILL_ALPHA = 0.09;
const colors = [
"#7EB26D",
// 0: pale green
"#EAB839",
// 1: mustard
"#6ED0E0",
// 2: light blue
"#EF843C",
// 3: orange
"#E24D42",
// 4: red
"#1F78C1",
// 5: ocean
"#BA43A9",
// 6: purple
"#705DA0",
// 7: violet
"#508642",
// 8: dark green
"#CCA300",
// 9: dark sand
"#447EBC",
"#C15C17",
"#890F02",
"#0A437C",
"#6D1F62",
"#584477",
"#B7DBAB",
"#F4D598",
"#70DBED",
"#F9BA8F",
"#F29191",
"#82B5D8",
"#E5A8E2",
"#AEA2E0",
"#629E51",
"#E5AC0E",
"#64B0C8",
"#E0752D",
"#BF1B00",
"#0A50A1",
"#962D82",
"#614D93",
"#9AC48A",
"#F2C96D",
"#65C5DB",
"#F9934E",
"#EA6460",
"#5195CE",
"#D683CE",
"#806EB7",
"#3F6833",
"#967302",
"#2F575E",
"#99440A",
"#58140C",
"#052B51",
"#511749",
"#3F2B5B",
"#E0F9D7",
"#FCEACA",
"#CFFAFF",
"#F9E2D2",
"#FCE2DE",
"#BADFF4",
"#F9D9F9",
"#DEDAF7"
];
function sortColorsByHue(hexColors) {
const hslColors = lodash.map(hexColors, hexToHsl);
const sortedHSLColors = lodash.sortBy(hslColors, ["h"]);
const chunkedHSLColors = lodash.chunk(sortedHSLColors, PALETTE_ROWS);
const sortedChunkedHSLColors = lodash.map(chunkedHSLColors, (chunk2) => {
return lodash.sortBy(chunk2, "l");
});
const flattenedZippedSortedChunkedHSLColors = lodash.flattenDeep(lodash.zip(...sortedChunkedHSLColors));
return lodash.map(flattenedZippedSortedChunkedHSLColors, hslToHex);
}
function hexToHsl(color) {
return tinycolor__default.default(color).toHsl();
}
function hslToHex(color) {
return tinycolor__default.default(color).toHexString();
}
function getTextColorForBackground(color) {
const b = tinycolor__default.default(color).getBrightness();
return b > 180 ? "rgb(32, 34, 38)" : "rgb(247, 248, 250)";
}
function getTextColorForAlphaBackground(color, themeIsDark) {
const tcolor = tinycolor__default.default(color);
const b = tcolor.getBrightness();
const a = tcolor.getAlpha();
if (a < 0.3) {
return themeIsDark ? "rgb(247, 248, 250)" : "rgb(32, 34, 38)";
}
return b > 180 ? "rgb(32, 34, 38)" : "rgb(247, 248, 250)";
}
let sortedColors = sortColorsByHue(colors);
exports.ALERTING_COLOR = ALERTING_COLOR;
exports.DEFAULT_ANNOTATION_COLOR = DEFAULT_ANNOTATION_COLOR;
exports.NO_DATA_COLOR = NO_DATA_COLOR;
exports.OK_COLOR = OK_COLOR;
exports.PENDING_COLOR = PENDING_COLOR;
exports.REGION_FILL_ALPHA = REGION_FILL_ALPHA;
exports.colors = colors;
exports.getTextColorForAlphaBackground = getTextColorForAlphaBackground;
exports.getTextColorForBackground = getTextColorForBackground;
exports.sortedColors = sortedColors;
//# sourceMappingURL=colors.cjs.map