GrxPostalCodeRule.fromMap constructor

GrxPostalCodeRule.fromMap(
  1. Map<String, dynamic>? map
)

Implementation

factory GrxPostalCodeRule.fromMap(Map<String, dynamic>? map) {
  if (map == null) return const GrxPostalCodeRule();
  final regex = map['regex'] as String? ?? map['regex_pattern'] as String?;
  final hint = map['hint'] as String? ?? map['hint_text'] as String?;
  List<String>? patterns;
  final patternsRaw = map['patterns'] ??
      map['regex_patterns'] ??
      map['regexList'] ??
      map['regex_list'];
  if (patternsRaw is List) {
    patterns = patternsRaw
        .map((e) => e?.toString().trim())
        .where((s) => s != null && s.isNotEmpty)
        .cast<String>()
        .toList();
    if (patterns.isEmpty) patterns = null;
  }
  final stripNonDigits =
      map['stripNonDigits'] == true || map['strip_non_digits'] == true;
  List<String>? examples;
  final examplesRaw = map['examples'];
  if (examplesRaw is List) {
    examples = examplesRaw
        .map((e) => e?.toString().trim())
        .where((s) => s != null && s.isNotEmpty)
        .cast<String>()
        .toList();
    if (examples.isEmpty) examples = null;
  }
  return GrxPostalCodeRule(
    regex: regex,
    patterns: patterns,
    hint: hint,
    stripNonDigits: stripNonDigits,
    examples: examples,
  );
}