rn-inkpad
Version:
<img src="https://res.cloudinary.com/fercloudinary/image/upload/v1715452841/packages/inkpad-banner_acl0xl.png" />
44 lines (43 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.colorToRgba = void 0;
const colorToRgba = (color, alpha = 0.2) => {
const hexRegex = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;
const rgbRegex = /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/;
let result;
let r, g, b;
if (color.startsWith('rgba')) {
return color;
}
if (hexRegex.test(color)) {
result = hexRegex.exec(color);
if (result) {
r = parseInt(result[1], 16);
g = parseInt(result[2], 16);
b = parseInt(result[3], 16);
}
}
else if (rgbRegex.test(color)) {
result = rgbRegex.exec(color);
if (result) {
r = parseInt(result[1]);
g = parseInt(result[2]);
b = parseInt(result[3]);
}
}
else {
return undefined;
}
if (r !== undefined && g !== undefined && b !== undefined) {
if (r >= 0 && r <= 255 && g >= 0 && g <= 255 && b >= 0 && b <= 255) {
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
}
else {
return undefined;
}
}
else {
return undefined;
}
};
exports.colorToRgba = colorToRgba;