maybeFromDynamic static method
JsonPopupMenuButtonBuilderModel?
maybeFromDynamic(
- dynamic map, {
- Map<
String, dynamic> args = const {}, - JsonWidgetRegistry? registry,
Implementation
static JsonPopupMenuButtonBuilderModel? maybeFromDynamic(
dynamic map, {
Map<String, dynamic> args = const {},
JsonWidgetRegistry? registry,
}) {
JsonPopupMenuButtonBuilderModel? result;
if (map != null) {
if (map is String) {
map = yaon.parse(
map,
normalize: true,
);
}
if (map is JsonPopupMenuButtonBuilderModel) {
result = map;
} else {
registry ??= JsonWidgetRegistry.instance;
map = registry.processArgs(map, <String>{}).value;
result = JsonPopupMenuButtonBuilderModel(
args,
clipBehavior: () {
dynamic parsed = ThemeDecoder.decodeClip(
map['clipBehavior'],
validate: false,
);
parsed ??= Clip.none;
return parsed;
}(),
color: () {
dynamic parsed = ThemeDecoder.decodeColor(
map['color'],
validate: false,
);
return parsed;
}(),
constraints: () {
dynamic parsed = ThemeDecoder.decodeBoxConstraints(
map['constraints'],
validate: false,
);
return parsed;
}(),
elevation: () {
dynamic parsed = JsonClass.maybeParseDouble(map['elevation']);
return parsed;
}(),
enableFeedback: JsonClass.maybeParseBool(
map['enableFeedback'],
),
enabled: JsonClass.parseBool(
map['enabled'],
whenNull: true,
),
icon: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['icon'],
registry: registry,
);
return parsed;
}(),
iconColor: () {
dynamic parsed = ThemeDecoder.decodeColor(
map['iconColor'],
validate: false,
);
return parsed;
}(),
iconSize: () {
dynamic parsed = JsonClass.maybeParseDouble(map['iconSize']);
return parsed;
}(),
initialValue: map['initialValue'],
itemBuilder: map['itemBuilder'],
offset: () {
dynamic parsed = ThemeDecoder.decodeOffset(
map['offset'],
validate: false,
);
parsed ??= Offset.zero;
return parsed;
}(),
onCanceled: map['onCanceled'],
onOpened: map['onOpened'],
onSelected: map['onSelected'],
padding: () {
dynamic parsed = ThemeDecoder.decodeEdgeInsetsGeometry(
map['padding'],
validate: false,
);
parsed ??= const EdgeInsets.all(8.0);
return parsed;
}(),
popUpAnimationStyle: map['popUpAnimationStyle'],
position: () {
dynamic parsed = ThemeDecoder.decodePopupMenuPosition(
map['position'],
validate: false,
);
return parsed;
}(),
routeSettings: map['routeSettings'],
shadowColor: () {
dynamic parsed = ThemeDecoder.decodeColor(
map['shadowColor'],
validate: false,
);
return parsed;
}(),
shape: () {
dynamic parsed = ThemeDecoder.decodeShapeBorder(
map['shape'],
validate: false,
);
return parsed;
}(),
splashRadius: () {
dynamic parsed = JsonClass.maybeParseDouble(map['splashRadius']);
return parsed;
}(),
style: () {
dynamic parsed = ThemeDecoder.decodeButtonStyle(
map['style'],
validate: false,
);
return parsed;
}(),
surfaceTintColor: () {
dynamic parsed = ThemeDecoder.decodeColor(
map['surfaceTintColor'],
validate: false,
);
return parsed;
}(),
tooltip: map['tooltip'],
useRootNavigator: JsonClass.parseBool(
map['useRootNavigator'],
whenNull: false,
),
child: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['child'],
registry: registry,
);
return parsed;
}(),
);
}
}
return result;
}