getExtensions function
Map<String, List<Tuple2<String, Map<String, dynamic> > > >
getExtensions(
- Map<
String, dynamic> tokens, { - required BuilderConfig config,
Returns a map consisting of all available extensions.
The data is formatted as followed:
{
extensionName: [
[
extensionProperty1,
{
value: #000000,
type: color
}
],
[
extensionProperty2,
{
value: #ffffff,
type: color
}
]
]
}
Implementation
Map<String, List<Tuple2<String, Map<String, dynamic>>>> getExtensions(
Map<String, dynamic> tokens, {
required BuilderConfig config,
}) {
Map<String, List<Tuple2<String, Map<String, dynamic>>>> extensions = {};
final tokenSets = getTokenSets(
tokens,
includeDefaultSet: true,
config: config,
);
for (final tokenSet in tokenSets) {
final setData = tokens[tokenSet] as Map<String, dynamic>;
final setDataKeys = setData.keys.toList()..remove('sys');
for (final key in setDataKeys) {
if (!extensions.keys.contains(key)) {
final extension = setData[key] as Map<String, dynamic>;
// Only create an extension when the key does not have an value and
// therefore is a group.
if (!extension.containsKey('value')) {
extensions[key] = extension.keys
.map((e) => Tuple2(e, setData[key][e] as Map<String, dynamic>))
.toList();
}
}
}
}
return extensions;
}