getCssStyles method
Implementation
List<String> getCssStyles() {
final OpAttributes attrs = op.attributes;
final List<List<String>> propsArr = <List<String>>[
<String>['color']
];
final bool inlineStyles = _supportInlineStyles();
if (inlineStyles || options.allowBackgroundClasses != true) {
propsArr.add(<String>['background', 'background-color']);
}
if (inlineStyles) {
propsArr.addAll(<List<String>>[
<String>['indent'],
<String>['align', 'text-align'],
<String>['direction'],
<String>['line-height'],
<String>['font', 'font-family'],
<String>['size'],
<String>['list'],
]);
}
final List<String> props = propsArr
.where((List<String> item) => isTruthy(attrs[item[0]]))
.map((List<String> item) {
final String attribute = item[0];
final attrValue = attrs[attribute];
final InlineStyleType? attributeConverter =
(_supportInlineStyles() ? (options.inlineStyles?[attribute]) : null) ?? defaultInlineStyles[attribute];
if (attributeConverter?.map != null) {
return attributeConverter!.map![attrValue];
} else if (attributeConverter?.fn != null) {
return attributeConverter!.fn!(attrValue.toString(), op);
} else {
return '${arr.preferSecond(item)}:$attrValue';
}
})
.where((String? item) => item != null)
.map((String? item) => item!)
.toList();
final List<String>? customCssStyles = getCustomCssStyles();
if (customCssStyles != null) props.insertAll(0, customCssStyles);
return props;
}