import 'package:country_code_picker/country_codes.dart'; import 'package:country_code_picker/country_localizations.dart'; import 'package:flutter/cupertino.dart'; mixin ToAlias {} @deprecated class CElement = CountryCode with ToAlias; /// Country element. This is the element that contains all the information class CountryCode { /// the name of the country String name; /// the flag of the country final String flagUri; /// the country code (IT,AF..) final String code; /// the dial code (+39,+93..) final String dialCode; CountryCode({ this.name, this.flagUri, this.code, this.dialCode, }); factory CountryCode.fromCode(String isoCode) { final Map jsonCode = codes.firstWhere( (code) => code['code'] == isoCode, orElse: () => null, ); if (jsonCode == null) { return null; } return CountryCode.fromJson(jsonCode); } factory CountryCode.fromJson(Map json) { return CountryCode( name: json['name'], code: json['code'], dialCode: json['dial_code'], flagUri: 'flags/${json['code'].toLowerCase()}.png', ); } @override String toString() => "$dialCode"; String toLongString([BuildContext context]) => "$dialCode ${toCountryStringOnly(context)}"; String toCountryStringOnly([BuildContext context]) { if (context != null) { return CountryLocalizations.of(context)?.translate(code) ?? name; } return '$name'; } }