appendClasses method

void appendClasses(
  1. Object? classes1, [
  2. Object? classes2
])

Implementation

void appendClasses(Object? classes1, [Object? classes2]) {
  List<String> classesNames;
  if (classes1 != null && classes2 != null) {
    classesNames = <String>[
      ...parseClasses(classes1),
      ...parseClasses(classes2)
    ];
  } else if (classes1 != null) {
    classesNames = parseClasses(classes1);
  } else if (classes2 != null) {
    classesNames = parseClasses(classes2);
  } else {
    return;
  }

  var classesNamesRemove = classesNames
      .where((e) => e.startsWith('!'))
      .map((e) => e.substring(1))
      .toList();

  if (classesNamesRemove.isNotEmpty) {
    classesNames.removeWhere((s) => s.startsWith('!'));
  }

  var content = this.content!;
  content.classes.addAll(classesNames);

  if (classesNamesRemove.isNotEmpty) {
    content.classes.removeAll(classesNamesRemove);
  }
}