asCssStyleDeclaration function

CSSStyleDeclaration asCssStyleDeclaration(
  1. Object? css
)

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");
}