asCssStyleDeclaration function
Parses dynamic css
as CSSStyleDeclaration.
Implementation
CSSStyleDeclaration asCssStyleDeclaration(Object? css) {
if (css == null) return newCSSStyleDeclaration();
final jsAny = css.asJSAny;
if (jsAny.isA<CSSStyleDeclaration>()) return jsAny as CSSStyleDeclaration;
if (jsAny.isA<JSString>()) {
return newCSSStyleDeclaration(cssText: (jsAny as JSString).toDart);
}
if (jsAny.isA<JSFunction>()) {
return asCssStyleDeclaration((jsAny as JSFunction).callAsFunction());
}
if (css is String) return newCSSStyleDeclaration(cssText: css);
if (css is Function) return asCssStyleDeclaration(css());
throw StateError("Can't convert to CSS: $css");
}