search static method

List<VoCountry> search(
  1. String query, [
  2. List<VoCountry>? countries
])

Countries whose name, ISO code or dial code matches query.

Implementation

static List<VoCountry> search(String query, [List<VoCountry>? countries]) {
  final q = query.trim().toLowerCase();
  final source = countries ?? all;
  if (q.isEmpty) return source;

  final digits = q.replaceAll(RegExp(r'[^0-9]'), '');
  return source.where((c) {
    if (c.name.toLowerCase().contains(q)) return true;
    if (c.code.toLowerCase() == q) return true;
    return digits.isNotEmpty &&
        c.e164DialCode.substring(1).startsWith(digits);
  }).toList();
}