@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
27 lines • 3.91 kB
JavaScript
const DEFAULT = [0, 0, 0, 1];
export function tuiParseColor(color) {
const stripped = color
.replace('#', '')
.replace('rgba(', '')
.replace('rgb(', '')
.replace(')', '');
const array = stripped.split(',').map((item) => parseFloat(item));
if (array.length === 4) {
return array;
}
if (array.length === 3) {
return array.concat(1);
}
const matches = stripped.match(new RegExp(`(.{${stripped.length / 3}})`, 'g'));
if (!matches) {
return DEFAULT;
}
const parsed = matches.map((char) => parseInt(stripped.length % 2 ? char + char : char, 16));
return [
parsed[0] ?? DEFAULT[0],
parsed[1] ?? DEFAULT[1],
parsed[2] ?? DEFAULT[2],
parsed[3] ?? DEFAULT[3],
];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvdXRpbHMvY29sb3IvcGFyc2UtY29sb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLEdBQXFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFL0QsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFhO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLEtBQUs7U0FDakIsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7U0FDaEIsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7U0FDcEIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7U0FDbkIsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFbEUsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNwQixPQUFPLEtBQXlDLENBQUM7S0FDcEQ7SUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3BCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQXFDLENBQUM7S0FDOUQ7SUFFRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRS9FLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDVixPQUFPLE9BQU8sQ0FBQztLQUNsQjtJQUVELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNoQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FDekQsQ0FBQztJQUVGLE9BQU87UUFDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztLQUMxQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IERFRkFVTFQ6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0gWzAsIDAsIDAsIDFdO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpUGFyc2VDb2xvcihjb2xvcjogc3RyaW5nKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xuICAgIGNvbnN0IHN0cmlwcGVkID0gY29sb3JcbiAgICAgICAgLnJlcGxhY2UoJyMnLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJ3JnYmEoJywgJycpXG4gICAgICAgIC5yZXBsYWNlKCdyZ2IoJywgJycpXG4gICAgICAgIC5yZXBsYWNlKCcpJywgJycpO1xuICAgIGNvbnN0IGFycmF5ID0gc3RyaXBwZWQuc3BsaXQoJywnKS5tYXAoKGl0ZW0pID0+IHBhcnNlRmxvYXQoaXRlbSkpO1xuXG4gICAgaWYgKGFycmF5Lmxlbmd0aCA9PT0gNCkge1xuICAgICAgICByZXR1cm4gYXJyYXkgYXMgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gICAgfVxuXG4gICAgaWYgKGFycmF5Lmxlbmd0aCA9PT0gMykge1xuICAgICAgICByZXR1cm4gYXJyYXkuY29uY2F0KDEpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoZXMgPSBzdHJpcHBlZC5tYXRjaChuZXcgUmVnRXhwKGAoLnske3N0cmlwcGVkLmxlbmd0aCAvIDN9fSlgLCAnZycpKTtcblxuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gREVGQVVMVDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWQgPSBtYXRjaGVzLm1hcCgoY2hhcikgPT5cbiAgICAgICAgcGFyc2VJbnQoc3RyaXBwZWQubGVuZ3RoICUgMiA/IGNoYXIgKyBjaGFyIDogY2hhciwgMTYpLFxuICAgICk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgICBwYXJzZWRbMF0gPz8gREVGQVVMVFswXSxcbiAgICAgICAgcGFyc2VkWzFdID8/IERFRkFVTFRbMV0sXG4gICAgICAgIHBhcnNlZFsyXSA/PyBERUZBVUxUWzJdLFxuICAgICAgICBwYXJzZWRbM10gPz8gREVGQVVMVFszXSxcbiAgICBdO1xufVxuIl19