getCssClasses method

List<String> getCssClasses()

Implementation

List<String> getCssClasses() {
  OpAttributes attrs = op.attributes;

  if (_supportInlineStyles()) {
    return <String>[];
  }

  List<String> propsArr = <String>['indent', 'align', 'direction', 'font', 'size', 'line-height'];
  if (options.allowBackgroundClasses == true) {
    propsArr.add('background');
  }

  List<String> props = propsArr
      .where((String prop) => isTruthy(attrs[prop]) && (prop != 'background' || OpAttributeSanitizer.isValidColorLiteral(attrs[prop])))
      .map((String prop) => '$prop-${attrs[prop]}')
      .toList();
  if (op.isFormula()) props.add('formula');
  if (op.isVideo()) props.add('video');
  if (op.isImage()) props.add('image');
  props = props.map((String prop) => prefixClass(prop)).toList();

  final List<String>? customClasses = getCustomCssClasses();
  if (customClasses != null) props.insertAll(0, customClasses);

  return props;
}