maybeFromDynamic static method

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

Implementation

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

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

    if (map is JsonTooltipBuilderModel) {
      result = map;
    } else {
      registry ??= JsonWidgetRegistry.instance;
      map = registry.processArgs(map, <String>{}).value;
      result = JsonTooltipBuilderModel(
        args,
        decoration: map['decoration'],
        enableFeedback: JsonClass.maybeParseBool(
          map['enableFeedback'],
        ),
        enableTapToDismiss: JsonClass.parseBool(
          map['enableTapToDismiss'],
          whenNull: true,
        ),
        excludeFromSemantics: JsonClass.maybeParseBool(
          map['excludeFromSemantics'],
        ),
        exitDuration: () {
          dynamic parsed =
              JsonClass.maybeParseDurationFromMillis(map['exitDuration']);

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

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

          return parsed;
        }(),
        message: map['message'],
        onTriggered: map['onTriggered'],
        padding: () {
          dynamic parsed = ThemeDecoder.decodeEdgeInsetsGeometry(
            map['padding'],
            validate: false,
          );

          return parsed;
        }(),
        preferBelow: JsonClass.maybeParseBool(
          map['preferBelow'],
        ),
        richMessage: map['richMessage'],
        showDuration: () {
          dynamic parsed =
              JsonClass.maybeParseDurationFromMillis(map['showDuration']);

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

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

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

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

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

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

          return parsed;
        }(),
      );
    }
  }

  return result;
}