maybeFromDynamic static method

JsonListTileBuilderModel? maybeFromDynamic(
  1. dynamic map, {
  2. Map<String, dynamic> args = const {},
  3. JsonWidgetRegistry? registry,
})

Implementation

static JsonListTileBuilderModel? maybeFromDynamic(
  dynamic map, {
  Map<String, dynamic> args = const {},
  JsonWidgetRegistry? registry,
}) {
  JsonListTileBuilderModel? result;

  if (map != null) {
    if (map is String) {
      map = yaon.parse(
        map,
        normalize: true,
      );
    }

    if (map is JsonListTileBuilderModel) {
      result = map;
    } else {
      registry ??= JsonWidgetRegistry.instance;
      map = registry.processArgs(map, <String>{}).value;
      result = JsonListTileBuilderModel(
        args,
        autofocus: JsonClass.parseBool(
          map['autofocus'],
          whenNull: false,
        ),
        contentPadding: () {
          dynamic parsed = ThemeDecoder.decodeEdgeInsetsGeometry(
            map['contentPadding'],
            validate: false,
          );

          return parsed;
        }(),
        dense: JsonClass.maybeParseBool(
          map['dense'],
        ),
        enableFeedback: JsonClass.maybeParseBool(
          map['enableFeedback'],
        ),
        enabled: JsonClass.parseBool(
          map['enabled'],
          whenNull: true,
        ),
        focusColor: () {
          dynamic parsed = ThemeDecoder.decodeColor(
            map['focusColor'],
            validate: false,
          );

          return parsed;
        }(),
        focusNode: map['focusNode'],
        horizontalTitleGap: () {
          dynamic parsed =
              JsonClass.maybeParseDouble(map['horizontalTitleGap']);

          return parsed;
        }(),
        hoverColor: () {
          dynamic parsed = ThemeDecoder.decodeColor(
            map['hoverColor'],
            validate: false,
          );

          return parsed;
        }(),
        iconColor: () {
          dynamic parsed = ThemeDecoder.decodeColor(
            map['iconColor'],
            validate: false,
          );

          return parsed;
        }(),
        isThreeLine: JsonClass.parseBool(
          map['isThreeLine'],
          whenNull: false,
        ),
        leading: () {
          dynamic parsed = JsonWidgetData.maybeFromDynamic(
            map['leading'],
            registry: registry,
          );

          return parsed;
        }(),
        leadingAndTrailingTextStyle: () {
          dynamic parsed = ThemeDecoder.decodeTextStyle(
            map['leadingAndTrailingTextStyle'],
            validate: false,
          );

          return parsed;
        }(),
        minLeadingWidth: () {
          dynamic parsed = JsonClass.maybeParseDouble(map['minLeadingWidth']);

          return parsed;
        }(),
        minTileHeight: () {
          dynamic parsed = JsonClass.maybeParseDouble(map['minTileHeight']);

          return parsed;
        }(),
        minVerticalPadding: () {
          dynamic parsed =
              JsonClass.maybeParseDouble(map['minVerticalPadding']);

          return parsed;
        }(),
        mouseCursor: () {
          dynamic parsed = ThemeDecoder.decodeMouseCursor(
            map['mouseCursor'],
            validate: false,
          );

          return parsed;
        }(),
        onFocusChange: map['onFocusChange'],
        onLongPress: map['onLongPress'],
        onTap: map['onTap'],
        selected: JsonClass.parseBool(
          map['selected'],
          whenNull: false,
        ),
        selectedColor: () {
          dynamic parsed = ThemeDecoder.decodeColor(
            map['selectedColor'],
            validate: false,
          );

          return parsed;
        }(),
        selectedTileColor: () {
          dynamic parsed = ThemeDecoder.decodeColor(
            map['selectedTileColor'],
            validate: false,
          );

          return parsed;
        }(),
        shape: () {
          dynamic parsed = ThemeDecoder.decodeShapeBorder(
            map['shape'],
            validate: false,
          );

          return parsed;
        }(),
        splashColor: () {
          dynamic parsed = ThemeDecoder.decodeColor(
            map['splashColor'],
            validate: false,
          );

          return parsed;
        }(),
        style: () {
          dynamic parsed = ThemeDecoder.decodeListTileStyle(
            map['style'],
            validate: false,
          );

          return parsed;
        }(),
        subtitle: () {
          dynamic parsed = JsonWidgetData.maybeFromDynamic(
            map['subtitle'],
            registry: registry,
          );

          return parsed;
        }(),
        subtitleTextStyle: () {
          dynamic parsed = ThemeDecoder.decodeTextStyle(
            map['subtitleTextStyle'],
            validate: false,
          );

          return parsed;
        }(),
        textColor: () {
          dynamic parsed = ThemeDecoder.decodeColor(
            map['textColor'],
            validate: false,
          );

          return parsed;
        }(),
        tileColor: () {
          dynamic parsed = ThemeDecoder.decodeColor(
            map['tileColor'],
            validate: false,
          );

          return parsed;
        }(),
        title: () {
          dynamic parsed = JsonWidgetData.maybeFromDynamic(
            map['title'],
            registry: registry,
          );

          return parsed;
        }(),
        titleAlignment: () {
          dynamic parsed = ThemeDecoder.decodeListTileTitleAlignment(
            map['titleAlignment'],
            validate: false,
          );

          return parsed;
        }(),
        titleTextStyle: () {
          dynamic parsed = ThemeDecoder.decodeTextStyle(
            map['titleTextStyle'],
            validate: false,
          );

          return parsed;
        }(),
        trailing: () {
          dynamic parsed = JsonWidgetData.maybeFromDynamic(
            map['trailing'],
            registry: registry,
          );

          return parsed;
        }(),
        visualDensity: () {
          dynamic parsed = ThemeDecoder.decodeVisualDensity(
            map['visualDensity'],
            validate: false,
          );

          return parsed;
        }(),
      );
    }
  }

  return result;
}