From 79a90cecf24d80d759c643b155cfe85f5fac8f5c Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Sat, 30 Jun 2018 11:25:21 +0200 Subject: [PATCH] Refs #6: use flag library --- lib/celement.dart | 18 +- lib/country_code_picker.dart | 41 +- lib/country_codes.dart | 722 ++++++++++++----------------------- lib/selection_dialog.dart | 51 ++- pubspec.yaml | 5 +- 5 files changed, 325 insertions(+), 512 deletions(-) diff --git a/lib/celement.dart b/lib/celement.dart index 92ab3f5..80ad905 100644 --- a/lib/celement.dart +++ b/lib/celement.dart @@ -1,12 +1,10 @@ -import 'package:flutter/foundation.dart'; - /// Country element. This is the element that contains all the information class CElement { /// the name of the country String name; /// the flag of the country - String flag; + String flagUri; /// the country code (IT,AF..) String code; @@ -14,18 +12,10 @@ class CElement { /// the dial code (+39,+93..) String dialCode; - CElement({this.name, this.flag, this.code, this.dialCode}); + CElement({this.name, this.flagUri, this.code, this.dialCode}); @override - String toString() { - return defaultTargetPlatform == TargetPlatform.android - ? "$flag $dialCode" - : dialCode; - } + String toString() => "$dialCode"; - String toLongString() { - return defaultTargetPlatform == TargetPlatform.android - ? "$flag $dialCode $name" - : "$dialCode $name"; - } + String toLongString() => "$dialCode $name"; } diff --git a/lib/country_code_picker.dart b/lib/country_code_picker.dart index 6dd6b60..0b060d7 100644 --- a/lib/country_code_picker.dart +++ b/lib/country_code_picker.dart @@ -14,12 +14,7 @@ class CountryCodePicker extends StatefulWidget { final TextStyle textStyle; final EdgeInsetsGeometry padding; - CountryCodePicker( - {this.onChanged, - this.initialSelection, - this.favorite, - this.textStyle, - this.padding}); + CountryCodePicker({this.onChanged, this.initialSelection, this.favorite, this.textStyle, this.padding}); @override State createState() { @@ -30,9 +25,10 @@ class CountryCodePicker extends StatefulWidget { name: s['name'], code: s['code'], dialCode: s['dial_code'], - flag: s['flag'], + flagUri: 'icons/flags/${s['code'].toLowerCase()}.png', )) .toList(); + return new _CountryCodePickerState(elements); } } @@ -46,9 +42,27 @@ class _CountryCodePickerState extends State { @override Widget build(BuildContext context) => new FlatButton( - child: new Text( - "${selectedItem.toString()}", - style: widget.textStyle ?? Theme.of(context).textTheme.button, + child: Flex( + direction: Axis.horizontal, + mainAxisSize: MainAxisSize.min, + children: [ + Flexible( + child: Padding( + padding: const EdgeInsets.only(right: 16.0), + child: Image.asset( + selectedItem.flagUri, + package: 'country_icons', + width: 32.0, + ), + ), + ), + Flexible( + child: Text( + selectedItem.toString(), + style: widget.textStyle ?? Theme.of(context).textTheme.button, + ), + ), + ], ), padding: widget.padding, onPressed: _showSelectionDialog, @@ -68,9 +82,8 @@ class _CountryCodePickerState extends State { favoriteElements = elements .where((e) => - widget.favorite.firstWhere( - (f) => e.code == f.toUpperCase() || e.dialCode == f.toString(), - orElse: () => null) != + widget.favorite + .firstWhere((f) => e.code == f.toUpperCase() || e.dialCode == f.toString(), orElse: () => null) != null) .toList(); super.initState(); @@ -79,7 +92,7 @@ class _CountryCodePickerState extends State { void _showSelectionDialog() { showDialog( context: context, - child: new SelectionDialog(elements, favoriteElements), + builder: (_) => new SelectionDialog(elements, favoriteElements), ).then((e) { if (e != null) { setState(() { diff --git a/lib/country_codes.dart b/lib/country_codes.dart index d4ba025..14127cb 100644 --- a/lib/country_codes.dart +++ b/lib/country_codes.dart @@ -1,478 +1,248 @@ List codes = [ - {"name": "Afghanistan", "flag": "๐Ÿ‡ฆ๐Ÿ‡ซ", "code": "AF", "dial_code": "+93"}, - {"name": "ร…land Islands", "flag": "๐Ÿ‡ฆ๐Ÿ‡ฝ", "code": "AX", "dial_code": "+358"}, - {"name": "Albania", "flag": "๐Ÿ‡ฆ๐Ÿ‡ฑ", "code": "AL", "dial_code": "+355"}, - {"name": "Algeria", "flag": "๐Ÿ‡ฉ๐Ÿ‡ฟ", "code": "DZ", "dial_code": "+213"}, - { - "name": "American Samoa", - "flag": "๐Ÿ‡ฆ๐Ÿ‡ธ", - "code": "AS", - "dial_code": "+1684" - }, - {"name": "Andorra", "flag": "๐Ÿ‡ฆ๐Ÿ‡ฉ", "code": "AD", "dial_code": "+376"}, - {"name": "Angola", "flag": "๐Ÿ‡ฆ๐Ÿ‡ด", "code": "AO", "dial_code": "+244"}, - {"name": "Anguilla", "flag": "๐Ÿ‡ฆ๐Ÿ‡ฎ", "code": "AI", "dial_code": "+1264"}, - {"name": "Antarctica", "flag": "๐Ÿ‡ฆ๐Ÿ‡ถ", "code": "AQ", "dial_code": "+672"}, - { - "name": "Antigua and Barbuda", - "flag": "๐Ÿ‡ฆ๐Ÿ‡ฌ", - "code": "AG", - "dial_code": "+1268" - }, - {"name": "Argentina", "flag": "๐Ÿ‡ฆ๐Ÿ‡ท", "code": "AR", "dial_code": "+54"}, - {"name": "Armenia", "flag": "๐Ÿ‡ฆ๐Ÿ‡ฒ", "code": "AM", "dial_code": "+374"}, - {"name": "Aruba", "flag": "๐Ÿ‡ฆ๐Ÿ‡ผ", "code": "AW", "dial_code": "+297"}, - {"name": "Australia", "flag": "๐Ÿ‡ฆ๐Ÿ‡บ", "code": "AU", "dial_code": "+61"}, - {"name": "Austria", "flag": "๐Ÿ‡ฆ๐Ÿ‡น", "code": "AT", "dial_code": "+43"}, - {"name": "Azerbaijan", "flag": "๐Ÿ‡ฆ๐Ÿ‡ฟ", "code": "AZ", "dial_code": "+994"}, - {"name": "Bahamas", "flag": "๐Ÿ‡ง๐Ÿ‡ธ", "code": "BS", "dial_code": "+1242"}, - {"name": "Bahrain", "flag": "๐Ÿ‡ง๐Ÿ‡ญ", "code": "BH", "dial_code": "+973"}, - {"name": "Bangladesh", "flag": "๐Ÿ‡ง๐Ÿ‡ฉ", "code": "BD", "dial_code": "+880"}, - {"name": "Barbados", "flag": "๐Ÿ‡ง๐Ÿ‡ง", "code": "BB", "dial_code": "+1246"}, - {"name": "Belarus", "flag": "๐Ÿ‡ง๐Ÿ‡พ", "code": "BY", "dial_code": "+375"}, - {"name": "Belgium", "flag": "๐Ÿ‡ง๐Ÿ‡ช", "code": "BE", "dial_code": "+32"}, - {"name": "Belize", "flag": "๐Ÿ‡ง๐Ÿ‡ฟ", "code": "BZ", "dial_code": "+501"}, - {"name": "Benin", "flag": "๐Ÿ‡ง๐Ÿ‡ฏ", "code": "BJ", "dial_code": "+229"}, - {"name": "Bermuda", "flag": "๐Ÿ‡ง๐Ÿ‡ฒ", "code": "BM", "dial_code": "+1441"}, - {"name": "Bhutan", "flag": "๐Ÿ‡ง๐Ÿ‡น", "code": "BT", "dial_code": "+975"}, - { - "name": "Bolivia, Plurinational State of bolivia", - "flag": "๐Ÿ‡ง๐Ÿ‡ด", - "code": "BO", - "dial_code": "+591" - }, - { - "name": "Bosnia and Herzegovina", - "flag": "๐Ÿ‡ง๐Ÿ‡ฆ", - "code": "BA", - "dial_code": "+387" - }, - {"name": "Botswana", "flag": "๐Ÿ‡ง๐Ÿ‡ผ", "code": "BW", "dial_code": "+267"}, - {"name": "Bouvet Island", "flag": "๐Ÿ‡ง๐Ÿ‡ป", "code": "BV", "dial_code": "+47"}, - {"name": "Brazil", "flag": "๐Ÿ‡ง๐Ÿ‡ท", "code": "BR", "dial_code": "+55"}, - { - "name": "British Indian Ocean Territory", - "flag": "๐Ÿ‡ฎ๐Ÿ‡ด", - "code": "IO", - "dial_code": "+246" - }, - { - "name": "Brunei Darussalam", - "flag": "๐Ÿ‡ง๐Ÿ‡ณ", - "code": "BN", - "dial_code": "+673" - }, - {"name": "Bulgaria", "flag": "๐Ÿ‡ง๐Ÿ‡ฌ", "code": "BG", "dial_code": "+359"}, - {"name": "Burkina Faso", "flag": "๐Ÿ‡ง๐Ÿ‡ซ", "code": "BF", "dial_code": "+226"}, - {"name": "Burundi", "flag": "๐Ÿ‡ง๐Ÿ‡ฎ", "code": "BI", "dial_code": "+257"}, - {"name": "Cambodia", "flag": "๐Ÿ‡ฐ๐Ÿ‡ญ", "code": "KH", "dial_code": "+855"}, - {"name": "Cameroon", "flag": "๐Ÿ‡จ๐Ÿ‡ฒ", "code": "CM", "dial_code": "+237"}, - {"name": "Canada", "flag": "๐Ÿ‡จ๐Ÿ‡ฆ", "code": "CA", "dial_code": "+1"}, - {"name": "Cape Verde", "flag": "๐Ÿ‡จ๐Ÿ‡ป", "code": "CV", "dial_code": "+238"}, - { - "name": "Cayman Islands", - "flag": "๐Ÿ‡ฐ๐Ÿ‡พ", - "code": "KY", - "dial_code": "+ 345" - }, - { - "name": "Central African Republic", - "flag": "๐Ÿ‡จ๐Ÿ‡ซ", - "code": "CF", - "dial_code": "+236" - }, - {"name": "Chad", "flag": "๐Ÿ‡น๐Ÿ‡ฉ", "code": "TD", "dial_code": "+235"}, - {"name": "Chile", "flag": "๐Ÿ‡จ๐Ÿ‡ฑ", "code": "CL", "dial_code": "+56"}, - {"name": "China", "flag": "๐Ÿ‡จ๐Ÿ‡ณ", "code": "CN", "dial_code": "+86"}, - { - "name": "Christmas Island", - "flag": "๐Ÿ‡จ๐Ÿ‡ฝ", - "code": "CX", - "dial_code": "+61" - }, - { - "name": "Cocos (Keeling) Islands", - "flag": "๐Ÿ‡จ๐Ÿ‡จ", - "code": "CC", - "dial_code": "+61" - }, - {"name": "Colombia", "flag": "๐Ÿ‡จ๐Ÿ‡ด", "code": "CO", "dial_code": "+57"}, - {"name": "Comoros", "flag": "๐Ÿ‡ฐ๐Ÿ‡ฒ", "code": "KM", "dial_code": "+269"}, - {"name": "Congo", "flag": "๐Ÿ‡จ๐Ÿ‡ฌ", "code": "CG", "dial_code": "+242"}, - { - "name": "Congo, The Democratic Republic of the Congo", - "flag": "๐Ÿ‡จ๐Ÿ‡ฉ", - "code": "CD", - "dial_code": "+243" - }, - {"name": "Cook Islands", "flag": "๐Ÿ‡จ๐Ÿ‡ฐ", "code": "CK", "dial_code": "+682"}, - {"name": "Costa Rica", "flag": "๐Ÿ‡จ๐Ÿ‡ท", "code": "CR", "dial_code": "+506"}, - {"name": "Cote d'Ivoire", "flag": "๐Ÿ‡จ๐Ÿ‡ฎ", "code": "CI", "dial_code": "+225"}, - {"name": "Croatia", "flag": "๐Ÿ‡ญ๐Ÿ‡ท", "code": "HR", "dial_code": "+385"}, - {"name": "Cuba", "flag": "๐Ÿ‡จ๐Ÿ‡บ", "code": "CU", "dial_code": "+53"}, - {"name": "Cyprus", "flag": "๐Ÿ‡จ๐Ÿ‡พ", "code": "CY", "dial_code": "+357"}, - {"name": "Czech Republic", "flag": "๐Ÿ‡จ๐Ÿ‡ฟ", "code": "CZ", "dial_code": "+420"}, - {"name": "Denmark", "flag": "๐Ÿ‡ฉ๐Ÿ‡ฐ", "code": "DK", "dial_code": "+45"}, - {"name": "Djibouti", "flag": "๐Ÿ‡ฉ๐Ÿ‡ฏ", "code": "DJ", "dial_code": "+253"}, - {"name": "Dominica", "flag": "๐Ÿ‡ฉ๐Ÿ‡ฒ", "code": "DM", "dial_code": "+1767"}, - { - "name": "Dominican Republic", - "flag": "๐Ÿ‡ฉ๐Ÿ‡ด", - "code": "DO", - "dial_code": "+1849" - }, - {"name": "Ecuador", "flag": "๐Ÿ‡ช๐Ÿ‡จ", "code": "EC", "dial_code": "+593"}, - {"name": "Egypt", "flag": "๐Ÿ‡ช๐Ÿ‡ฌ", "code": "EG", "dial_code": "+20"}, - {"name": "El Salvador", "flag": "๐Ÿ‡ธ๐Ÿ‡ป", "code": "SV", "dial_code": "+503"}, - { - "name": "Equatorial Guinea", - "flag": "๐Ÿ‡ฌ๐Ÿ‡ถ", - "code": "GQ", - "dial_code": "+240" - }, - {"name": "Eritrea", "flag": "๐Ÿ‡ช๐Ÿ‡ท", "code": "ER", "dial_code": "+291"}, - {"name": "Estonia", "flag": "๐Ÿ‡ช๐Ÿ‡ช", "code": "EE", "dial_code": "+372"}, - {"name": "Ethiopia", "flag": "๐Ÿ‡ช๐Ÿ‡น", "code": "ET", "dial_code": "+251"}, - { - "name": "Falkland Islands (Malvinas)", - "flag": "๐Ÿ‡ซ๐Ÿ‡ฐ", - "code": "FK", - "dial_code": "+500" - }, - {"name": "Faroe Islands", "flag": "๐Ÿ‡ซ๐Ÿ‡ด", "code": "FO", "dial_code": "+298"}, - {"name": "Fiji", "flag": "๐Ÿ‡ซ๐Ÿ‡ฏ", "code": "FJ", "dial_code": "+679"}, - {"name": "Finland", "flag": "๐Ÿ‡ซ๐Ÿ‡ฎ", "code": "FI", "dial_code": "+358"}, - {"name": "France", "flag": "๐Ÿ‡ซ๐Ÿ‡ท", "code": "FR", "dial_code": "+33"}, - {"name": "French Guiana", "flag": "๐Ÿ‡ฌ๐Ÿ‡ซ", "code": "GF", "dial_code": "+594"}, - { - "name": "French Polynesia", - "flag": "๐Ÿ‡ต๐Ÿ‡ซ", - "code": "PF", - "dial_code": "+689" - }, - { - "name": "French Southern Territories", - "flag": "๐Ÿ‡น๐Ÿ‡ซ", - "code": "TF", - "dial_code": "+262" - }, - {"name": "Gabon", "flag": "๐Ÿ‡ฌ๐Ÿ‡ฆ", "code": "GA", "dial_code": "+241"}, - {"name": "Gambia", "flag": "๐Ÿ‡ฌ๐Ÿ‡ฒ", "code": "GM", "dial_code": "+220"}, - {"name": "Georgia", "flag": "๐Ÿ‡ฌ๐Ÿ‡ช", "code": "GE", "dial_code": "+995"}, - {"name": "Germany", "flag": "๐Ÿ‡ฉ๐Ÿ‡ช", "code": "DE", "dial_code": "+49"}, - {"name": "Ghana", "flag": "๐Ÿ‡ฌ๐Ÿ‡ญ", "code": "GH", "dial_code": "+233"}, - {"name": "Gibraltar", "flag": "๐Ÿ‡ฌ๐Ÿ‡ฎ", "code": "GI", "dial_code": "+350"}, - {"name": "Greece", "flag": "๐Ÿ‡ฌ๐Ÿ‡ท", "code": "GR", "dial_code": "+30"}, - {"name": "Greenland", "flag": "๐Ÿ‡ฌ๐Ÿ‡ฑ", "code": "GL", "dial_code": "+299"}, - {"name": "Grenada", "flag": "๐Ÿ‡ฌ๐Ÿ‡ฉ", "code": "GD", "dial_code": "+1473"}, - {"name": "Guadeloupe", "flag": "๐Ÿ‡ฌ๐Ÿ‡ต", "code": "GP", "dial_code": "+590"}, - {"name": "Guam", "flag": "๐Ÿ‡ฌ๐Ÿ‡บ", "code": "GU", "dial_code": "+1671"}, - {"name": "Guatemala", "flag": "๐Ÿ‡ฌ๐Ÿ‡น", "code": "GT", "dial_code": "+502"}, - {"name": "Guernsey", "flag": "๐Ÿ‡ฌ๐Ÿ‡ฌ", "code": "GG", "dial_code": "+44"}, - {"name": "Guinea", "flag": "๐Ÿ‡ฌ๐Ÿ‡ณ", "code": "GN", "dial_code": "+224"}, - {"name": "Guinea-Bissau", "flag": "๐Ÿ‡ฌ๐Ÿ‡ผ", "code": "GW", "dial_code": "+245"}, - {"name": "Guyana", "flag": "๐Ÿ‡ฌ๐Ÿ‡พ", "code": "GY", "dial_code": "+592"}, - {"name": "Haiti", "flag": "๐Ÿ‡ญ๐Ÿ‡น", "code": "HT", "dial_code": "+509"}, - { - "name": "Heard Island and Mcdonald Islands", - "flag": "๐Ÿ‡ญ๐Ÿ‡ฒ", - "code": "HM", - "dial_code": "+0" - }, - { - "name": "Holy See (Vatican City State)", - "flag": "๐Ÿ‡ป๐Ÿ‡ฆ", - "code": "VA", - "dial_code": "+379" - }, - {"name": "Honduras", "flag": "๐Ÿ‡ญ๐Ÿ‡ณ", "code": "HN", "dial_code": "+504"}, - {"name": "Hong Kong", "flag": "๐Ÿ‡ญ๐Ÿ‡ฐ", "code": "HK", "dial_code": "+852"}, - {"name": "Hungary", "flag": "๐Ÿ‡ญ๐Ÿ‡บ", "code": "HU", "dial_code": "+36"}, - {"name": "Iceland", "flag": "๐Ÿ‡ฎ๐Ÿ‡ธ", "code": "IS", "dial_code": "+354"}, - {"name": "India", "flag": "๐Ÿ‡ฎ๐Ÿ‡ณ", "code": "IN", "dial_code": "+91"}, - {"name": "Indonesia", "flag": "๐Ÿ‡ฎ๐Ÿ‡ฉ", "code": "ID", "dial_code": "+62"}, - { - "name": "Iran, Islamic Republic of Persian Gulf", - "flag": "๐Ÿ‡ฎ๐Ÿ‡ท", - "code": "IR", - "dial_code": "+98" - }, - {"name": "Iraq", "flag": "๐Ÿ‡ฎ๐Ÿ‡ถ", "code": "IQ", "dial_code": "+964"}, - {"name": "Ireland", "flag": "๐Ÿ‡ฎ๐Ÿ‡ช", "code": "IE", "dial_code": "+353"}, - {"name": "Isle of Man", "flag": "๐Ÿ‡ฎ๐Ÿ‡ฒ", "code": "IM", "dial_code": "+44"}, - {"name": "Israel", "flag": "๐Ÿ‡ฎ๐Ÿ‡ฑ", "code": "IL", "dial_code": "+972"}, - {"name": "Italy", "flag": "๐Ÿ‡ฎ๐Ÿ‡น", "code": "IT", "dial_code": "+39"}, - {"name": "Jamaica", "flag": "๐Ÿ‡ฏ๐Ÿ‡ฒ", "code": "JM", "dial_code": "+1876"}, - {"name": "Japan", "flag": "๐Ÿ‡ฏ๐Ÿ‡ต", "code": "JP", "dial_code": "+81"}, - {"name": "Jersey", "flag": "๐Ÿ‡ฏ๐Ÿ‡ช", "code": "JE", "dial_code": "+44"}, - {"name": "Jordan", "flag": "๐Ÿ‡ฏ๐Ÿ‡ด", "code": "JO", "dial_code": "+962"}, - {"name": "Kazakhstan", "flag": "๐Ÿ‡ฐ๐Ÿ‡ฟ", "code": "KZ", "dial_code": "+7"}, - {"name": "Kenya", "flag": "๐Ÿ‡ฐ๐Ÿ‡ช", "code": "KE", "dial_code": "+254"}, - {"name": "Kiribati", "flag": "๐Ÿ‡ฐ๐Ÿ‡ฎ", "code": "KI", "dial_code": "+686"}, - { - "name": "Korea, Democratic People's Republic of Korea", - "flag": "๐Ÿ‡ฐ๐Ÿ‡ต", - "code": "KP", - "dial_code": "+850" - }, - { - "name": "Korea, Republic of South Korea", - "flag": "๐Ÿ‡ฐ๐Ÿ‡ท", - "code": "KR", - "dial_code": "+82" - }, - {"name": "Kosovo", "flag": "๐Ÿ‡ฝ๐Ÿ‡ฐ", "code": "XK", "dial_code": "+383"}, - {"name": "Kuwait", "flag": "๐Ÿ‡ฐ๐Ÿ‡ผ", "code": "KW", "dial_code": "+965"}, - {"name": "Kyrgyzstan", "flag": "๐Ÿ‡ฐ๐Ÿ‡ฌ", "code": "KG", "dial_code": "+996"}, - {"name": "Laos", "flag": "๐Ÿ‡ฑ๐Ÿ‡ฆ", "code": "LA", "dial_code": "+856"}, - {"name": "Latvia", "flag": "๐Ÿ‡ฑ๐Ÿ‡ป", "code": "LV", "dial_code": "+371"}, - {"name": "Lebanon", "flag": "๐Ÿ‡ฑ๐Ÿ‡ง", "code": "LB", "dial_code": "+961"}, - {"name": "Lesotho", "flag": "๐Ÿ‡ฑ๐Ÿ‡ธ", "code": "LS", "dial_code": "+266"}, - {"name": "Liberia", "flag": "๐Ÿ‡ฑ๐Ÿ‡ท", "code": "LR", "dial_code": "+231"}, - { - "name": "Libyan Arab Jamahiriya", - "flag": "๐Ÿ‡ฑ๐Ÿ‡พ", - "code": "LY", - "dial_code": "+218" - }, - {"name": "Liechtenstein", "flag": "๐Ÿ‡ฑ๐Ÿ‡ฎ", "code": "LI", "dial_code": "+423"}, - {"name": "Lithuania", "flag": "๐Ÿ‡ฑ๐Ÿ‡น", "code": "LT", "dial_code": "+370"}, - {"name": "Luxembourg", "flag": "๐Ÿ‡ฑ๐Ÿ‡บ", "code": "LU", "dial_code": "+352"}, - {"name": "Macao", "flag": "๐Ÿ‡ฒ๐Ÿ‡ด", "code": "MO", "dial_code": "+853"}, - {"name": "Macedonia", "flag": "๐Ÿ‡ฒ๐Ÿ‡ฐ", "code": "MK", "dial_code": "+389"}, - {"name": "Madagascar", "flag": "๐Ÿ‡ฒ๐Ÿ‡ฌ", "code": "MG", "dial_code": "+261"}, - {"name": "Malawi", "flag": "๐Ÿ‡ฒ๐Ÿ‡ผ", "code": "MW", "dial_code": "+265"}, - {"name": "Malaysia", "flag": "๐Ÿ‡ฒ๐Ÿ‡พ", "code": "MY", "dial_code": "+60"}, - {"name": "Maldives", "flag": "๐Ÿ‡ฒ๐Ÿ‡ป", "code": "MV", "dial_code": "+960"}, - {"name": "Mali", "flag": "๐Ÿ‡ฒ๐Ÿ‡ฑ", "code": "ML", "dial_code": "+223"}, - {"name": "Malta", "flag": "๐Ÿ‡ฒ๐Ÿ‡น", "code": "MT", "dial_code": "+356"}, - { - "name": "Marshall Islands", - "flag": "๐Ÿ‡ฒ๐Ÿ‡ญ", - "code": "MH", - "dial_code": "+692" - }, - {"name": "Martinique", "flag": "๐Ÿ‡ฒ๐Ÿ‡ถ", "code": "MQ", "dial_code": "+596"}, - {"name": "Mauritania", "flag": "๐Ÿ‡ฒ๐Ÿ‡ท", "code": "MR", "dial_code": "+222"}, - {"name": "Mauritius", "flag": "๐Ÿ‡ฒ๐Ÿ‡บ", "code": "MU", "dial_code": "+230"}, - {"name": "Mayotte", "flag": "๐Ÿ‡พ๐Ÿ‡น", "code": "YT", "dial_code": "+262"}, - {"name": "Mexico", "flag": "๐Ÿ‡ฒ๐Ÿ‡ฝ", "code": "MX", "dial_code": "+52"}, - { - "name": "Micronesia, Federated States of Micronesia", - "flag": "๐Ÿ‡ซ๐Ÿ‡ฒ", - "code": "FM", - "dial_code": "+691" - }, - {"name": "Moldova", "flag": "๐Ÿ‡ฒ๐Ÿ‡ฉ", "code": "MD", "dial_code": "+373"}, - {"name": "Monaco", "flag": "๐Ÿ‡ฒ๐Ÿ‡จ", "code": "MC", "dial_code": "+377"}, - {"name": "Mongolia", "flag": "๐Ÿ‡ฒ๐Ÿ‡ณ", "code": "MN", "dial_code": "+976"}, - {"name": "Montenegro", "flag": "๐Ÿ‡ฒ๐Ÿ‡ช", "code": "ME", "dial_code": "+382"}, - {"name": "Montserrat", "flag": "๐Ÿ‡ฒ๐Ÿ‡ธ", "code": "MS", "dial_code": "+1664"}, - {"name": "Morocco", "flag": "๐Ÿ‡ฒ๐Ÿ‡ฆ", "code": "MA", "dial_code": "+212"}, - {"name": "Mozambique", "flag": "๐Ÿ‡ฒ๐Ÿ‡ฟ", "code": "MZ", "dial_code": "+258"}, - {"name": "Myanmar", "flag": "๐Ÿ‡ฒ๐Ÿ‡ฒ", "code": "MM", "dial_code": "+95"}, - {"name": "Namibia", "flag": "๐Ÿ‡ณ๐Ÿ‡ฆ", "code": "NA", "dial_code": "+264"}, - {"name": "Nauru", "flag": "๐Ÿ‡ณ๐Ÿ‡ท", "code": "NR", "dial_code": "+674"}, - {"name": "Nepal", "flag": "๐Ÿ‡ณ๐Ÿ‡ต", "code": "NP", "dial_code": "+977"}, - {"name": "Netherlands", "flag": "๐Ÿ‡ณ๐Ÿ‡ฑ", "code": "NL", "dial_code": "+31"}, - { - "name": "Netherlands Antilles", - "flag": "", - "code": "AN", - "dial_code": "+599" - }, - {"name": "New Caledonia", "flag": "๐Ÿ‡ณ๐Ÿ‡จ", "code": "NC", "dial_code": "+687"}, - {"name": "New Zealand", "flag": "๐Ÿ‡ณ๐Ÿ‡ฟ", "code": "NZ", "dial_code": "+64"}, - {"name": "Nicaragua", "flag": "๐Ÿ‡ณ๐Ÿ‡ฎ", "code": "NI", "dial_code": "+505"}, - {"name": "Niger", "flag": "๐Ÿ‡ณ๐Ÿ‡ช", "code": "NE", "dial_code": "+227"}, - {"name": "Nigeria", "flag": "๐Ÿ‡ณ๐Ÿ‡ฌ", "code": "NG", "dial_code": "+234"}, - {"name": "Niue", "flag": "๐Ÿ‡ณ๐Ÿ‡บ", "code": "NU", "dial_code": "+683"}, - {"name": "Norfolk Island", "flag": "๐Ÿ‡ณ๐Ÿ‡ซ", "code": "NF", "dial_code": "+672"}, - { - "name": "Northern Mariana Islands", - "flag": "๐Ÿ‡ฒ๐Ÿ‡ต", - "code": "MP", - "dial_code": "+1670" - }, - {"name": "Norway", "flag": "๐Ÿ‡ณ๐Ÿ‡ด", "code": "NO", "dial_code": "+47"}, - {"name": "Oman", "flag": "๐Ÿ‡ด๐Ÿ‡ฒ", "code": "OM", "dial_code": "+968"}, - {"name": "Pakistan", "flag": "๐Ÿ‡ต๐Ÿ‡ฐ", "code": "PK", "dial_code": "+92"}, - {"name": "Palau", "flag": "๐Ÿ‡ต๐Ÿ‡ผ", "code": "PW", "dial_code": "+680"}, - { - "name": "Palestinian Territory, Occupied", - "flag": "๐Ÿ‡ต๐Ÿ‡ธ", - "code": "PS", - "dial_code": "+970" - }, - {"name": "Panama", "flag": "๐Ÿ‡ต๐Ÿ‡ฆ", "code": "PA", "dial_code": "+507"}, - { - "name": "Papua New Guinea", - "flag": "๐Ÿ‡ต๐Ÿ‡ฌ", - "code": "PG", - "dial_code": "+675" - }, - {"name": "Paraguay", "flag": "๐Ÿ‡ต๐Ÿ‡พ", "code": "PY", "dial_code": "+595"}, - {"name": "Peru", "flag": "๐Ÿ‡ต๐Ÿ‡ช", "code": "PE", "dial_code": "+51"}, - {"name": "Philippines", "flag": "๐Ÿ‡ต๐Ÿ‡ญ", "code": "PH", "dial_code": "+63"}, - {"name": "Pitcairn", "flag": "๐Ÿ‡ต๐Ÿ‡ณ", "code": "PN", "dial_code": "+64"}, - {"name": "Poland", "flag": "๐Ÿ‡ต๐Ÿ‡ฑ", "code": "PL", "dial_code": "+48"}, - {"name": "Portugal", "flag": "๐Ÿ‡ต๐Ÿ‡น", "code": "PT", "dial_code": "+351"}, - {"name": "Puerto Rico", "flag": "๐Ÿ‡ต๐Ÿ‡ท", "code": "PR", "dial_code": "+1939"}, - {"name": "Qatar", "flag": "๐Ÿ‡ถ๐Ÿ‡ฆ", "code": "QA", "dial_code": "+974"}, - {"name": "Romania", "flag": "๐Ÿ‡ท๐Ÿ‡ด", "code": "RO", "dial_code": "+40"}, - {"name": "Russia", "flag": "๐Ÿ‡ท๐Ÿ‡บ", "code": "RU", "dial_code": "+7"}, - {"name": "Rwanda", "flag": "๐Ÿ‡ท๐Ÿ‡ผ", "code": "RW", "dial_code": "+250"}, - {"name": "Reunion", "flag": "๐Ÿ‡ท๐Ÿ‡ช", "code": "RE", "dial_code": "+262"}, - { - "name": "Saint Barthelemy", - "flag": "๐Ÿ‡ง๐Ÿ‡ฑ", - "code": "BL", - "dial_code": "+590" - }, - { - "name": "Saint Helena, Ascension and Tristan Da Cunha", - "flag": "๐Ÿ‡ธ๐Ÿ‡ญ", - "code": "SH", - "dial_code": "+290" - }, - { - "name": "Saint Kitts and Nevis", - "flag": "๐Ÿ‡ฐ๐Ÿ‡ณ", - "code": "KN", - "dial_code": "+1869" - }, - {"name": "Saint Lucia", "flag": "๐Ÿ‡ฑ๐Ÿ‡จ", "code": "LC", "dial_code": "+1758"}, - {"name": "Saint Martin", "flag": "๐Ÿ‡ฒ๐Ÿ‡ซ", "code": "MF", "dial_code": "+590"}, - { - "name": "Saint Pierre and Miquelon", - "flag": "๐Ÿ‡ต๐Ÿ‡ฒ", - "code": "PM", - "dial_code": "+508" - }, - { - "name": "Saint Vincent and the Grenadines", - "flag": "๐Ÿ‡ป๐Ÿ‡จ", - "code": "VC", - "dial_code": "+1784" - }, - {"name": "Samoa", "flag": "๐Ÿ‡ผ๐Ÿ‡ธ", "code": "WS", "dial_code": "+685"}, - {"name": "San Marino", "flag": "๐Ÿ‡ธ๐Ÿ‡ฒ", "code": "SM", "dial_code": "+378"}, - { - "name": "Sao Tome and Principe", - "flag": "๐Ÿ‡ธ๐Ÿ‡น", - "code": "ST", - "dial_code": "+239" - }, - {"name": "Saudi Arabia", "flag": "๐Ÿ‡ธ๐Ÿ‡ฆ", "code": "SA", "dial_code": "+966"}, - {"name": "Senegal", "flag": "๐Ÿ‡ธ๐Ÿ‡ณ", "code": "SN", "dial_code": "+221"}, - {"name": "Serbia", "flag": "๐Ÿ‡ท๐Ÿ‡ธ", "code": "RS", "dial_code": "+381"}, - {"name": "Seychelles", "flag": "๐Ÿ‡ธ๐Ÿ‡จ", "code": "SC", "dial_code": "+248"}, - {"name": "Sierra Leone", "flag": "๐Ÿ‡ธ๐Ÿ‡ฑ", "code": "SL", "dial_code": "+232"}, - {"name": "Singapore", "flag": "๐Ÿ‡ธ๐Ÿ‡ฌ", "code": "SG", "dial_code": "+65"}, - {"name": "Slovakia", "flag": "๐Ÿ‡ธ๐Ÿ‡ฐ", "code": "SK", "dial_code": "+421"}, - {"name": "Slovenia", "flag": "๐Ÿ‡ธ๐Ÿ‡ฎ", "code": "SI", "dial_code": "+386"}, - { - "name": "Solomon Islands", - "flag": "๐Ÿ‡ธ๐Ÿ‡ง", - "code": "SB", - "dial_code": "+677" - }, - {"name": "Somalia", "flag": "๐Ÿ‡ธ๐Ÿ‡ด", "code": "SO", "dial_code": "+252"}, - {"name": "South Africa", "flag": "๐Ÿ‡ฟ๐Ÿ‡ฆ", "code": "ZA", "dial_code": "+27"}, - {"name": "South Sudan", "flag": "๐Ÿ‡ธ๐Ÿ‡ธ", "code": "SS", "dial_code": "+211"}, - { - "name": "South Georgia and the South Sandwich Islands", - "flag": "๐Ÿ‡ฌ๐Ÿ‡ธ", - "code": "GS", - "dial_code": "+500" - }, - {"name": "Spain", "flag": "๐Ÿ‡ช๐Ÿ‡ธ", "code": "ES", "dial_code": "+34"}, - {"name": "Sri Lanka", "flag": "๐Ÿ‡ฑ๐Ÿ‡ฐ", "code": "LK", "dial_code": "+94"}, - {"name": "Sudan", "flag": "๐Ÿ‡ธ๐Ÿ‡ฉ", "code": "SD", "dial_code": "+249"}, - {"name": "Suriname", "flag": "๐Ÿ‡ธ๐Ÿ‡ท", "code": "SR", "dial_code": "+597"}, - { - "name": "Svalbard and Jan Mayen", - "flag": "๐Ÿ‡ธ๐Ÿ‡ฏ", - "code": "SJ", - "dial_code": "+47" - }, - {"name": "Swaziland", "flag": "๐Ÿ‡ธ๐Ÿ‡ฟ", "code": "SZ", "dial_code": "+268"}, - {"name": "Sweden", "flag": "๐Ÿ‡ธ๐Ÿ‡ช", "code": "SE", "dial_code": "+46"}, - {"name": "Switzerland", "flag": "๐Ÿ‡จ๐Ÿ‡ญ", "code": "CH", "dial_code": "+41"}, - { - "name": "Syrian Arab Republic", - "flag": "๐Ÿ‡ธ๐Ÿ‡พ", - "code": "SY", - "dial_code": "+963" - }, - {"name": "Taiwan", "flag": "๐Ÿ‡น๐Ÿ‡ผ", "code": "TW", "dial_code": "+886"}, - {"name": "Tajikistan", "flag": "๐Ÿ‡น๐Ÿ‡ฏ", "code": "TJ", "dial_code": "+992"}, - { - "name": "Tanzania, United Republic of Tanzania", - "flag": "๐Ÿ‡น๐Ÿ‡ฟ", - "code": "TZ", - "dial_code": "+255" - }, - {"name": "Thailand", "flag": "๐Ÿ‡น๐Ÿ‡ญ", "code": "TH", "dial_code": "+66"}, - {"name": "Timor-Leste", "flag": "๐Ÿ‡น๐Ÿ‡ฑ", "code": "TL", "dial_code": "+670"}, - {"name": "Togo", "flag": "๐Ÿ‡น๐Ÿ‡ฌ", "code": "TG", "dial_code": "+228"}, - {"name": "Tokelau", "flag": "๐Ÿ‡น๐Ÿ‡ฐ", "code": "TK", "dial_code": "+690"}, - {"name": "Tonga", "flag": "๐Ÿ‡น๐Ÿ‡ด", "code": "TO", "dial_code": "+676"}, - { - "name": "Trinidad and Tobago", - "flag": "๐Ÿ‡น๐Ÿ‡น", - "code": "TT", - "dial_code": "+1868" - }, - {"name": "Tunisia", "flag": "๐Ÿ‡น๐Ÿ‡ณ", "code": "TN", "dial_code": "+216"}, - {"name": "Turkey", "flag": "๐Ÿ‡น๐Ÿ‡ท", "code": "TR", "dial_code": "+90"}, - {"name": "Turkmenistan", "flag": "๐Ÿ‡น๐Ÿ‡ฒ", "code": "TM", "dial_code": "+993"}, - { - "name": "Turks and Caicos Islands", - "flag": "๐Ÿ‡น๐Ÿ‡จ", - "code": "TC", - "dial_code": "+1649" - }, - {"name": "Tuvalu", "flag": "๐Ÿ‡น๐Ÿ‡ป", "code": "TV", "dial_code": "+688"}, - {"name": "Uganda", "flag": "๐Ÿ‡บ๐Ÿ‡ฌ", "code": "UG", "dial_code": "+256"}, - {"name": "Ukraine", "flag": "๐Ÿ‡บ๐Ÿ‡ฆ", "code": "UA", "dial_code": "+380"}, - { - "name": "United Arab Emirates", - "flag": "๐Ÿ‡ฆ๐Ÿ‡ช", - "code": "AE", - "dial_code": "+971" - }, - {"name": "United Kingdom", "flag": "๐Ÿ‡ฌ๐Ÿ‡ง", "code": "GB", "dial_code": "+44"}, - {"name": "United States", "flag": "๐Ÿ‡บ๐Ÿ‡ธ", "code": "US", "dial_code": "+1"}, - {"name": "Uruguay", "flag": "๐Ÿ‡บ๐Ÿ‡พ", "code": "UY", "dial_code": "+598"}, - {"name": "Uzbekistan", "flag": "๐Ÿ‡บ๐Ÿ‡ฟ", "code": "UZ", "dial_code": "+998"}, - {"name": "Vanuatu", "flag": "๐Ÿ‡ป๐Ÿ‡บ", "code": "VU", "dial_code": "+678"}, - { - "name": "Venezuela, Bolivarian Republic of Venezuela", - "flag": "๐Ÿ‡ป๐Ÿ‡ช", - "code": "VE", - "dial_code": "+58" - }, - {"name": "Vietnam", "flag": "๐Ÿ‡ป๐Ÿ‡ณ", "code": "VN", "dial_code": "+84"}, - { - "name": "Virgin Islands, British", - "flag": "๐Ÿ‡ป๐Ÿ‡ฌ", - "code": "VG", - "dial_code": "+1284" - }, - { - "name": "Virgin Islands, U.S.", - "flag": "๐Ÿ‡ป๐Ÿ‡ฎ", - "code": "VI", - "dial_code": "+1340" - }, - { - "name": "Wallis and Futuna", - "flag": "๐Ÿ‡ผ๐Ÿ‡ซ", - "code": "WF", - "dial_code": "+681" - }, - {"name": "Yemen", "flag": "๐Ÿ‡พ๐Ÿ‡ช", "code": "YE", "dial_code": "+967"}, - {"name": "Zambia", "flag": "๐Ÿ‡ฟ๐Ÿ‡ฒ", "code": "ZM", "dial_code": "+260"}, - {"name": "Zimbabwe", "flag": "๐Ÿ‡ฟ๐Ÿ‡ผ", "code": "ZW", "dial_code": "+263"} + {"name": "Afghanistan", "code": "AF", "dial_code": "+93"}, + {"name": "ร…land Islands", "code": "AX", "dial_code": "+358"}, + {"name": "Albania", "code": "AL", "dial_code": "+355"}, + {"name": "Algeria", "code": "DZ", "dial_code": "+213"}, + {"name": "American Samoa", "code": "AS", "dial_code": "+1684"}, + {"name": "Andorra", "code": "AD", "dial_code": "+376"}, + {"name": "Angola", "code": "AO", "dial_code": "+244"}, + {"name": "Anguilla", "code": "AI", "dial_code": "+1264"}, + {"name": "Antarctica", "code": "AQ", "dial_code": "+672"}, + {"name": "Antigua and Barbuda", "code": "AG", "dial_code": "+1268"}, + {"name": "Argentina", "code": "AR", "dial_code": "+54"}, + {"name": "Armenia", "code": "AM", "dial_code": "+374"}, + {"name": "Aruba", "code": "AW", "dial_code": "+297"}, + {"name": "Australia", "code": "AU", "dial_code": "+61"}, + {"name": "Austria", "code": "AT", "dial_code": "+43"}, + {"name": "Azerbaijan", "code": "AZ", "dial_code": "+994"}, + {"name": "Bahamas", "code": "BS", "dial_code": "+1242"}, + {"name": "Bahrain", "code": "BH", "dial_code": "+973"}, + {"name": "Bangladesh", "code": "BD", "dial_code": "+880"}, + {"name": "Barbados", "code": "BB", "dial_code": "+1246"}, + {"name": "Belarus", "code": "BY", "dial_code": "+375"}, + {"name": "Belgium", "code": "BE", "dial_code": "+32"}, + {"name": "Belize", "code": "BZ", "dial_code": "+501"}, + {"name": "Benin", "code": "BJ", "dial_code": "+229"}, + {"name": "Bermuda", "code": "BM", "dial_code": "+1441"}, + {"name": "Bhutan", "code": "BT", "dial_code": "+975"}, + {"name": "Bolivia, Plurinational State of bolivia", "code": "BO", "dial_code": "+591"}, + {"name": "Bosnia and Herzegovina", "code": "BA", "dial_code": "+387"}, + {"name": "Botswana", "code": "BW", "dial_code": "+267"}, + {"name": "Bouvet Island", "code": "BV", "dial_code": "+47"}, + {"name": "Brazil", "code": "BR", "dial_code": "+55"}, + {"name": "British Indian Ocean Territory", "code": "IO", "dial_code": "+246"}, + {"name": "Brunei Darussalam", "code": "BN", "dial_code": "+673"}, + {"name": "Bulgaria", "code": "BG", "dial_code": "+359"}, + {"name": "Burkina Faso", "code": "BF", "dial_code": "+226"}, + {"name": "Burundi", "code": "BI", "dial_code": "+257"}, + {"name": "Cambodia", "code": "KH", "dial_code": "+855"}, + {"name": "Cameroon", "code": "CM", "dial_code": "+237"}, + {"name": "Canada", "code": "CA", "dial_code": "+1"}, + {"name": "Cape Verde", "code": "CV", "dial_code": "+238"}, + {"name": "Cayman Islands", "code": "KY", "dial_code": "+ 345"}, + {"name": "Central African Republic", "code": "CF", "dial_code": "+236"}, + {"name": "Chad", "code": "TD", "dial_code": "+235"}, + {"name": "Chile", "code": "CL", "dial_code": "+56"}, + {"name": "China", "code": "CN", "dial_code": "+86"}, + {"name": "Christmas Island", "code": "CX", "dial_code": "+61"}, + {"name": "Cocos (Keeling) Islands", "code": "CC", "dial_code": "+61"}, + {"name": "Colombia", "code": "CO", "dial_code": "+57"}, + {"name": "Comoros", "code": "KM", "dial_code": "+269"}, + {"name": "Congo", "code": "CG", "dial_code": "+242"}, + {"name": "Congo, The Democratic Republic of the Congo", "code": "CD", "dial_code": "+243"}, + {"name": "Cook Islands", "code": "CK", "dial_code": "+682"}, + {"name": "Costa Rica", "code": "CR", "dial_code": "+506"}, + {"name": "Cote d'Ivoire", "code": "CI", "dial_code": "+225"}, + {"name": "Croatia", "code": "HR", "dial_code": "+385"}, + {"name": "Cuba", "code": "CU", "dial_code": "+53"}, + {"name": "Cyprus", "code": "CY", "dial_code": "+357"}, + {"name": "Czech Republic", "code": "CZ", "dial_code": "+420"}, + {"name": "Denmark", "code": "DK", "dial_code": "+45"}, + {"name": "Djibouti", "code": "DJ", "dial_code": "+253"}, + {"name": "Dominica", "code": "DM", "dial_code": "+1767"}, + {"name": "Dominican Republic", "code": "DO", "dial_code": "+1849"}, + {"name": "Ecuador", "code": "EC", "dial_code": "+593"}, + {"name": "Egypt", "code": "EG", "dial_code": "+20"}, + {"name": "El Salvador", "code": "SV", "dial_code": "+503"}, + {"name": "Equatorial Guinea", "code": "GQ", "dial_code": "+240"}, + {"name": "Eritrea", "code": "ER", "dial_code": "+291"}, + {"name": "Estonia", "code": "EE", "dial_code": "+372"}, + {"name": "Ethiopia", "code": "ET", "dial_code": "+251"}, + {"name": "Falkland Islands (Malvinas)", "code": "FK", "dial_code": "+500"}, + {"name": "Faroe Islands", "code": "FO", "dial_code": "+298"}, + {"name": "Fiji", "code": "FJ", "dial_code": "+679"}, + {"name": "Finland", "code": "FI", "dial_code": "+358"}, + {"name": "France", "code": "FR", "dial_code": "+33"}, + {"name": "French Guiana", "code": "GF", "dial_code": "+594"}, + {"name": "French Polynesia", "code": "PF", "dial_code": "+689"}, + {"name": "French Southern Territories", "code": "TF", "dial_code": "+262"}, + {"name": "Gabon", "code": "GA", "dial_code": "+241"}, + {"name": "Gambia", "code": "GM", "dial_code": "+220"}, + {"name": "Georgia", "code": "GE", "dial_code": "+995"}, + {"name": "Germany", "code": "DE", "dial_code": "+49"}, + {"name": "Ghana", "code": "GH", "dial_code": "+233"}, + {"name": "Gibraltar", "code": "GI", "dial_code": "+350"}, + {"name": "Greece", "code": "GR", "dial_code": "+30"}, + {"name": "Greenland", "code": "GL", "dial_code": "+299"}, + {"name": "Grenada", "code": "GD", "dial_code": "+1473"}, + {"name": "Guadeloupe", "code": "GP", "dial_code": "+590"}, + {"name": "Guam", "code": "GU", "dial_code": "+1671"}, + {"name": "Guatemala", "code": "GT", "dial_code": "+502"}, + {"name": "Guernsey", "code": "GG", "dial_code": "+44"}, + {"name": "Guinea", "code": "GN", "dial_code": "+224"}, + {"name": "Guinea-Bissau", "code": "GW", "dial_code": "+245"}, + {"name": "Guyana", "code": "GY", "dial_code": "+592"}, + {"name": "Haiti", "code": "HT", "dial_code": "+509"}, + {"name": "Heard Island and Mcdonald Islands", "code": "HM", "dial_code": "+0"}, + {"name": "Holy See (Vatican City State)", "code": "VA", "dial_code": "+379"}, + {"name": "Honduras", "code": "HN", "dial_code": "+504"}, + {"name": "Hong Kong", "code": "HK", "dial_code": "+852"}, + {"name": "Hungary", "code": "HU", "dial_code": "+36"}, + {"name": "Iceland", "code": "IS", "dial_code": "+354"}, + {"name": "India", "code": "IN", "dial_code": "+91"}, + {"name": "Indonesia", "code": "ID", "dial_code": "+62"}, + {"name": "Iran, Islamic Republic of Persian Gulf", "code": "IR", "dial_code": "+98"}, + {"name": "Iraq", "code": "IQ", "dial_code": "+964"}, + {"name": "Ireland", "code": "IE", "dial_code": "+353"}, + {"name": "Isle of Man", "code": "IM", "dial_code": "+44"}, + {"name": "Israel", "code": "IL", "dial_code": "+972"}, + {"name": "Italy", "code": "IT", "dial_code": "+39"}, + {"name": "Jamaica", "code": "JM", "dial_code": "+1876"}, + {"name": "Japan", "code": "JP", "dial_code": "+81"}, + {"name": "Jersey", "code": "JE", "dial_code": "+44"}, + {"name": "Jordan", "code": "JO", "dial_code": "+962"}, + {"name": "Kazakhstan", "code": "KZ", "dial_code": "+7"}, + {"name": "Kenya", "code": "KE", "dial_code": "+254"}, + {"name": "Kiribati", "code": "KI", "dial_code": "+686"}, + {"name": "Korea, Democratic People's Republic of Korea", "code": "KP", "dial_code": "+850"}, + {"name": "Korea, Republic of South Korea", "code": "KR", "dial_code": "+82"}, + {"name": "Kosovo", "code": "XK", "dial_code": "+383"}, + {"name": "Kuwait", "code": "KW", "dial_code": "+965"}, + {"name": "Kyrgyzstan", "code": "KG", "dial_code": "+996"}, + {"name": "Laos", "code": "LA", "dial_code": "+856"}, + {"name": "Latvia", "code": "LV", "dial_code": "+371"}, + {"name": "Lebanon", "code": "LB", "dial_code": "+961"}, + {"name": "Lesotho", "code": "LS", "dial_code": "+266"}, + {"name": "Liberia", "code": "LR", "dial_code": "+231"}, + {"name": "Libyan Arab Jamahiriya", "code": "LY", "dial_code": "+218"}, + {"name": "Liechtenstein", "code": "LI", "dial_code": "+423"}, + {"name": "Lithuania", "code": "LT", "dial_code": "+370"}, + {"name": "Luxembourg", "code": "LU", "dial_code": "+352"}, + {"name": "Macao", "code": "MO", "dial_code": "+853"}, + {"name": "Macedonia", "code": "MK", "dial_code": "+389"}, + {"name": "Madagascar", "code": "MG", "dial_code": "+261"}, + {"name": "Malawi", "code": "MW", "dial_code": "+265"}, + {"name": "Malaysia", "code": "MY", "dial_code": "+60"}, + {"name": "Maldives", "code": "MV", "dial_code": "+960"}, + {"name": "Mali", "code": "ML", "dial_code": "+223"}, + {"name": "Malta", "code": "MT", "dial_code": "+356"}, + {"name": "Marshall Islands", "code": "MH", "dial_code": "+692"}, + {"name": "Martinique", "code": "MQ", "dial_code": "+596"}, + {"name": "Mauritania", "code": "MR", "dial_code": "+222"}, + {"name": "Mauritius", "code": "MU", "dial_code": "+230"}, + {"name": "Mayotte", "code": "YT", "dial_code": "+262"}, + {"name": "Mexico", "code": "MX", "dial_code": "+52"}, + {"name": "Micronesia, Federated States of Micronesia", "code": "FM", "dial_code": "+691"}, + {"name": "Moldova", "code": "MD", "dial_code": "+373"}, + {"name": "Monaco", "code": "MC", "dial_code": "+377"}, + {"name": "Mongolia", "code": "MN", "dial_code": "+976"}, + {"name": "Montenegro", "code": "ME", "dial_code": "+382"}, + {"name": "Montserrat", "code": "MS", "dial_code": "+1664"}, + {"name": "Morocco", "code": "MA", "dial_code": "+212"}, + {"name": "Mozambique", "code": "MZ", "dial_code": "+258"}, + {"name": "Myanmar", "code": "MM", "dial_code": "+95"}, + {"name": "Namibia", "code": "NA", "dial_code": "+264"}, + {"name": "Nauru", "code": "NR", "dial_code": "+674"}, + {"name": "Nepal", "code": "NP", "dial_code": "+977"}, + {"name": "Netherlands", "code": "NL", "dial_code": "+31"}, + {"name": "Netherlands Antilles", "code": "AN", "dial_code": "+599"}, + {"name": "New Caledonia", "code": "NC", "dial_code": "+687"}, + {"name": "New Zealand", "code": "NZ", "dial_code": "+64"}, + {"name": "Nicaragua", "code": "NI", "dial_code": "+505"}, + {"name": "Niger", "code": "NE", "dial_code": "+227"}, + {"name": "Nigeria", "code": "NG", "dial_code": "+234"}, + {"name": "Niue", "code": "NU", "dial_code": "+683"}, + {"name": "Norfolk Island", "code": "NF", "dial_code": "+672"}, + {"name": "Northern Mariana Islands", "code": "MP", "dial_code": "+1670"}, + {"name": "Norway", "code": "NO", "dial_code": "+47"}, + {"name": "Oman", "code": "OM", "dial_code": "+968"}, + {"name": "Pakistan", "code": "PK", "dial_code": "+92"}, + {"name": "Palau", "code": "PW", "dial_code": "+680"}, + {"name": "Palestinian Territory, Occupied", "code": "PS", "dial_code": "+970"}, + {"name": "Panama", "code": "PA", "dial_code": "+507"}, + {"name": "Papua New Guinea", "code": "PG", "dial_code": "+675"}, + {"name": "Paraguay", "code": "PY", "dial_code": "+595"}, + {"name": "Peru", "code": "PE", "dial_code": "+51"}, + {"name": "Philippines", "code": "PH", "dial_code": "+63"}, + {"name": "Pitcairn", "code": "PN", "dial_code": "+64"}, + {"name": "Poland", "code": "PL", "dial_code": "+48"}, + {"name": "Portugal", "code": "PT", "dial_code": "+351"}, + {"name": "Puerto Rico", "code": "PR", "dial_code": "+1939"}, + {"name": "Qatar", "code": "QA", "dial_code": "+974"}, + {"name": "Romania", "code": "RO", "dial_code": "+40"}, + {"name": "Russia", "code": "RU", "dial_code": "+7"}, + {"name": "Rwanda", "code": "RW", "dial_code": "+250"}, + {"name": "Reunion", "code": "RE", "dial_code": "+262"}, + {"name": "Saint Barthelemy", "code": "BL", "dial_code": "+590"}, + {"name": "Saint Helena, Ascension and Tristan Da Cunha", "code": "SH", "dial_code": "+290"}, + {"name": "Saint Kitts and Nevis", "code": "KN", "dial_code": "+1869"}, + {"name": "Saint Lucia", "code": "LC", "dial_code": "+1758"}, + {"name": "Saint Martin", "code": "MF", "dial_code": "+590"}, + {"name": "Saint Pierre and Miquelon", "code": "PM", "dial_code": "+508"}, + {"name": "Saint Vincent and the Grenadines", "code": "VC", "dial_code": "+1784"}, + {"name": "Samoa", "code": "WS", "dial_code": "+685"}, + {"name": "San Marino", "code": "SM", "dial_code": "+378"}, + {"name": "Sao Tome and Principe", "code": "ST", "dial_code": "+239"}, + {"name": "Saudi Arabia", "code": "SA", "dial_code": "+966"}, + {"name": "Senegal", "code": "SN", "dial_code": "+221"}, + {"name": "Serbia", "code": "RS", "dial_code": "+381"}, + {"name": "Seychelles", "code": "SC", "dial_code": "+248"}, + {"name": "Sierra Leone", "code": "SL", "dial_code": "+232"}, + {"name": "Singapore", "code": "SG", "dial_code": "+65"}, + {"name": "Slovakia", "code": "SK", "dial_code": "+421"}, + {"name": "Slovenia", "code": "SI", "dial_code": "+386"}, + {"name": "Solomon Islands", "code": "SB", "dial_code": "+677"}, + {"name": "Somalia", "code": "SO", "dial_code": "+252"}, + {"name": "South Africa", "code": "ZA", "dial_code": "+27"}, + {"name": "South Sudan", "code": "SS", "dial_code": "+211"}, + {"name": "South Georgia and the South Sandwich Islands", "code": "GS", "dial_code": "+500"}, + {"name": "Spain", "code": "ES", "dial_code": "+34"}, + {"name": "Sri Lanka", "code": "LK", "dial_code": "+94"}, + {"name": "Sudan", "code": "SD", "dial_code": "+249"}, + {"name": "Suriname", "code": "SR", "dial_code": "+597"}, + {"name": "Svalbard and Jan Mayen", "code": "SJ", "dial_code": "+47"}, + {"name": "Swaziland", "code": "SZ", "dial_code": "+268"}, + {"name": "Sweden", "code": "SE", "dial_code": "+46"}, + {"name": "Switzerland", "code": "CH", "dial_code": "+41"}, + {"name": "Syrian Arab Republic", "code": "SY", "dial_code": "+963"}, + {"name": "Taiwan", "code": "TW", "dial_code": "+886"}, + {"name": "Tajikistan", "code": "TJ", "dial_code": "+992"}, + {"name": "Tanzania, United Republic of Tanzania", "code": "TZ", "dial_code": "+255"}, + {"name": "Thailand", "code": "TH", "dial_code": "+66"}, + {"name": "Timor-Leste", "code": "TL", "dial_code": "+670"}, + {"name": "Togo", "code": "TG", "dial_code": "+228"}, + {"name": "Tokelau", "code": "TK", "dial_code": "+690"}, + {"name": "Tonga", "code": "TO", "dial_code": "+676"}, + {"name": "Trinidad and Tobago", "code": "TT", "dial_code": "+1868"}, + {"name": "Tunisia", "code": "TN", "dial_code": "+216"}, + {"name": "Turkey", "code": "TR", "dial_code": "+90"}, + {"name": "Turkmenistan", "code": "TM", "dial_code": "+993"}, + {"name": "Turks and Caicos Islands", "code": "TC", "dial_code": "+1649"}, + {"name": "Tuvalu", "code": "TV", "dial_code": "+688"}, + {"name": "Uganda", "code": "UG", "dial_code": "+256"}, + {"name": "Ukraine", "code": "UA", "dial_code": "+380"}, + {"name": "United Arab Emirates", "code": "AE", "dial_code": "+971"}, + {"name": "United Kingdom", "code": "GB", "dial_code": "+44"}, + {"name": "United States", "code": "US", "dial_code": "+1"}, + {"name": "Uruguay", "code": "UY", "dial_code": "+598"}, + {"name": "Uzbekistan", "code": "UZ", "dial_code": "+998"}, + {"name": "Vanuatu", "code": "VU", "dial_code": "+678"}, + {"name": "Venezuela, Bolivarian Republic of Venezuela", "code": "VE", "dial_code": "+58"}, + {"name": "Vietnam", "code": "VN", "dial_code": "+84"}, + {"name": "Virgin Islands, British", "code": "VG", "dial_code": "+1284"}, + {"name": "Virgin Islands, U.S.", "code": "VI", "dial_code": "+1340"}, + {"name": "Wallis and Futuna", "code": "WF", "dial_code": "+681"}, + {"name": "Yemen", "code": "YE", "dial_code": "+967"}, + {"name": "Zambia", "code": "ZM", "dial_code": "+260"}, + {"name": "Zimbabwe", "code": "ZW", "dial_code": "+263"} ]; diff --git a/lib/selection_dialog.dart b/lib/selection_dialog.dart index 8917d1d..10402bf 100644 --- a/lib/selection_dialog.dart +++ b/lib/selection_dialog.dart @@ -36,7 +36,28 @@ class _SelectionDialogState extends State { children: [] ..addAll(widget.favoriteElements.map((f) { return new SimpleDialogOption( - child: new Text(f.toLongString()), + child: Flex( + direction: Axis.horizontal, + children: [ + Flexible( + child: Padding( + padding: const EdgeInsets.only(right: 16.0), + child: Image.asset( + f.flagUri, + package: 'country_icons', + width: 32.0, + ), + ), + ), + Flexible( + fit: FlexFit.tight, + child: new Text( + f.toLongString(), + overflow: TextOverflow.fade, + ), + ), + ], + ), onPressed: () { _selectItem(f); }); @@ -44,7 +65,28 @@ class _SelectionDialogState extends State { ..add(new Divider())), ]..addAll(showedElements .map((e) => new SimpleDialogOption( - child: new Text(e.toLongString()), + child: Flex( + direction: Axis.horizontal, + children: [ + Flexible( + child: Padding( + padding: const EdgeInsets.only(right: 16.0), + child: Image.asset( + e.flagUri, + package: 'country_icons', + width: 32.0, + ), + ), + ), + Flexible( + fit: FlexFit.tight, + child: Text( + e.toLongString(), + overflow: TextOverflow.fade, + ), + ), + ], + ), onPressed: () { _selectItem(e); })) @@ -60,10 +102,7 @@ class _SelectionDialogState extends State { s = s.toUpperCase(); setState(() { showedElements = widget.elements - .where((e) => - e.code.contains(s) || - e.dialCode.contains(s) || - e.name.toUpperCase().contains(s)) + .where((e) => e.code.contains(s) || e.dialCode.contains(s) || e.name.toUpperCase().contains(s)) .toList(); }); } diff --git a/pubspec.yaml b/pubspec.yaml index 0be31ab..f7600b7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: country_code_picker description: A flutter package for showing a country code selector. version: 0.2.2 -author: Salvatore-Giordano +author: Salvatore-Giordano homepage: https://github.com/Salvatore-Giordano/CountryCodePicker environment: @@ -9,4 +9,5 @@ environment: dependencies: flutter: - sdk: flutter \ No newline at end of file + sdk: flutter + country_icons: "^0.0.2"