maybeFromDynamic static method
JsonSemanticsBuilderModel?
maybeFromDynamic(
- dynamic map, {
- Map<
String, dynamic> args = const {}, - JsonWidgetRegistry? registry,
Implementation
static JsonSemanticsBuilderModel? maybeFromDynamic(
dynamic map, {
Map<String, dynamic> args = const {},
JsonWidgetRegistry? registry,
}) {
JsonSemanticsBuilderModel? result;
if (map != null) {
if (map is String) {
map = yaon.parse(
map,
normalize: true,
);
}
if (map is JsonSemanticsBuilderModel) {
result = map;
} else {
registry ??= JsonWidgetRegistry.instance;
map = registry.processArgs(map, <String>{}).value;
result = JsonSemanticsBuilderModel(
args,
attributedDecreasedValue: map['attributedDecreasedValue'],
attributedHint: map['attributedHint'],
attributedIncreasedValue: map['attributedIncreasedValue'],
attributedLabel: map['attributedLabel'],
attributedValue: map['attributedValue'],
blockUserActions: JsonClass.parseBool(
map['blockUserActions'],
whenNull: false,
),
button: JsonClass.maybeParseBool(
map['button'],
),
checked: JsonClass.maybeParseBool(
map['checked'],
),
container: JsonClass.parseBool(
map['container'],
whenNull: false,
),
currentValueLength: () {
dynamic parsed = JsonClass.maybeParseInt(map['currentValueLength']);
return parsed;
}(),
customSemanticsActions: map['customSemanticsActions'],
decreasedValue: map['decreasedValue'],
enabled: JsonClass.maybeParseBool(
map['enabled'],
),
excludeSemantics: JsonClass.parseBool(
map['excludeSemantics'],
whenNull: false,
),
expanded: JsonClass.maybeParseBool(
map['expanded'],
),
explicitChildNodes: JsonClass.parseBool(
map['explicitChildNodes'],
whenNull: false,
),
focusable: JsonClass.maybeParseBool(
map['focusable'],
),
focused: JsonClass.maybeParseBool(
map['focused'],
),
header: JsonClass.maybeParseBool(
map['header'],
),
hidden: JsonClass.maybeParseBool(
map['hidden'],
),
hint: map['hint'],
identifier: map['identifier'],
image: JsonClass.maybeParseBool(
map['image'],
),
inMutuallyExclusiveGroup: JsonClass.maybeParseBool(
map['inMutuallyExclusiveGroup'],
),
increasedValue: map['increasedValue'],
keyboardKey: JsonClass.maybeParseBool(
map['keyboardKey'],
),
label: map['label'],
link: JsonClass.maybeParseBool(
map['link'],
),
liveRegion: JsonClass.maybeParseBool(
map['liveRegion'],
),
maxValueLength: () {
dynamic parsed = JsonClass.maybeParseInt(map['maxValueLength']);
return parsed;
}(),
mixed: JsonClass.maybeParseBool(
map['mixed'],
),
multiline: JsonClass.maybeParseBool(
map['multiline'],
),
namesRoute: JsonClass.maybeParseBool(
map['namesRoute'],
),
obscured: JsonClass.maybeParseBool(
map['obscured'],
),
onCopy: map['onCopy'],
onCut: map['onCut'],
onDecrease: map['onDecrease'],
onDidGainAccessibilityFocus: map['onDidGainAccessibilityFocus'],
onDidLoseAccessibilityFocus: map['onDidLoseAccessibilityFocus'],
onDismiss: map['onDismiss'],
onIncrease: map['onIncrease'],
onLongPress: map['onLongPress'],
onLongPressHint: map['onLongPressHint'],
onMoveCursorBackwardByCharacter:
map['onMoveCursorBackwardByCharacter'],
onMoveCursorForwardByCharacter: map['onMoveCursorForwardByCharacter'],
onPaste: map['onPaste'],
onScrollDown: map['onScrollDown'],
onScrollLeft: map['onScrollLeft'],
onScrollRight: map['onScrollRight'],
onScrollUp: map['onScrollUp'],
onSetSelection: map['onSetSelection'],
onSetText: map['onSetText'],
onTap: map['onTap'],
onTapHint: map['onTapHint'],
readOnly: JsonClass.maybeParseBool(
map['readOnly'],
),
scopesRoute: JsonClass.maybeParseBool(
map['scopesRoute'],
),
selected: JsonClass.maybeParseBool(
map['selected'],
),
slider: JsonClass.maybeParseBool(
map['slider'],
),
sortKey: map['sortKey'],
tagForChildren: () {
dynamic parsed = ThemeDecoder.decodeSemanticsTag(
map['tagForChildren'],
validate: false,
);
return parsed;
}(),
textDirection: () {
dynamic parsed = ThemeDecoder.decodeTextDirection(
map['textDirection'],
validate: false,
);
return parsed;
}(),
textField: JsonClass.maybeParseBool(
map['textField'],
),
toggled: JsonClass.maybeParseBool(
map['toggled'],
),
tooltip: map['tooltip'],
value: map['value'],
child: () {
dynamic parsed = JsonWidgetData.maybeFromDynamic(
map['child'],
registry: registry,
);
return parsed;
}(),
);
}
}
return result;
}