playable
Version:
Video player based on HTML5Video
29 lines (23 loc) • 642 B
text/typescript
const SHORTHAND_HEX_COLOR_PATTERN = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
const HEX_COLOR_PATTERN = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;
type IRGB = {
r: number;
g: number;
b: number;
};
function hexToRgb(hex: string): IRGB {
hex = hex.replace(
SHORTHAND_HEX_COLOR_PATTERN,
(_, r, g, b) => r + r + g + g + b + b,
);
const result = hex.match(HEX_COLOR_PATTERN);
if (result) {
return {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16),
};
}
throw new Error('Playable.js: Color passed to theme should be in HEX format');
}
export default hexToRgb;