33 lines
777 B
Plaintext
33 lines
777 B
Plaintext
import { hex } from './hex.mjs';
|
|
import { hsla } from './hsla.mjs';
|
|
import { rgba } from './rgba.mjs';
|
|
|
|
const color = {
|
|
test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),
|
|
parse: (v) => {
|
|
if (rgba.test(v)) {
|
|
return rgba.parse(v);
|
|
}
|
|
else if (hsla.test(v)) {
|
|
return hsla.parse(v);
|
|
}
|
|
else {
|
|
return hex.parse(v);
|
|
}
|
|
},
|
|
transform: (v) => {
|
|
return typeof v === "string"
|
|
? v
|
|
: v.hasOwnProperty("red")
|
|
? rgba.transform(v)
|
|
: hsla.transform(v);
|
|
},
|
|
getAnimatableNone: (v) => {
|
|
const parsed = color.parse(v);
|
|
parsed.alpha = 0;
|
|
return color.transform(parsed);
|
|
},
|
|
};
|
|
|
|
export { color };
|