ListDifference<T> constructor
ListDifference<T> ({})
Implementation
ListDifference({
List<T> initialValues = const [],
List<T> currentValues = const [],
this.containsValidator,
}) {
final List<T> _initial = initialValues.removeDuplicates();
final List<T> _current = currentValues.removeDuplicates();
if (!listEquals(_initial, _current)) {
if (_initial.isEmpty) {
added.addAll(_current);
} else {
for (final item in _initial) {
if (!_validator(_current, item)) removed.add(item);
}
for (final item in _current) {
if (!_validator(_initial, item)) added.add(item);
}
}
equals.addAll(currentValues.where((e) => _validator(initialValues, e)));
} else {
equals.addAll(_current);
}
}