30 lines
964 B
JavaScript
30 lines
964 B
JavaScript
export function isNotGrey(color) {
|
|
// eslint-disable-next-line no-useless-escape
|
|
const match = (color || '').match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);
|
|
if (match && match[1] && match[2] && match[3]) {
|
|
return !(match[1] === match[2] && match[2] === match[3]);
|
|
}
|
|
return true;
|
|
}
|
|
export function isValidWaveColor(color) {
|
|
return color && color !== '#fff' && color !== '#ffffff' && color !== 'rgb(255, 255, 255)' && color !== 'rgba(255, 255, 255, 1)' && isNotGrey(color) && !/rgba\((?:\d*, ){3}0\)/.test(color) &&
|
|
// any transparent rgba color
|
|
color !== 'transparent';
|
|
}
|
|
export function getTargetWaveColor(node) {
|
|
const {
|
|
borderTopColor,
|
|
borderColor,
|
|
backgroundColor
|
|
} = getComputedStyle(node);
|
|
if (isValidWaveColor(borderTopColor)) {
|
|
return borderTopColor;
|
|
}
|
|
if (isValidWaveColor(borderColor)) {
|
|
return borderColor;
|
|
}
|
|
if (isValidWaveColor(backgroundColor)) {
|
|
return backgroundColor;
|
|
}
|
|
return null;
|
|
} |