saasykit/filament-country-field

Country dropdown with ISO 3166 options values

1.0.0 2024-06-08 09:33 UTC

This package is auto-updated.

Last update: 2024-11-08 15:33:00 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads Filament Version

The simplest way to list every country as a selectable dropdown 🤘

Features

  • Display a select field with every ISO 639-1 language. tl;dr: The two-letter code.
  • Built-in localization in 132 languages.
  • Supports all the native Select Field features.

Screenshot

filament-country-field

Getting Started

We have made things easy for you start. Here is the three steps your need to follow:

  1. Install the package
composer require parfaitementweb/filament-country-field
  1. Add the Country Form field in your Filament Resource.
use Parfaitementweb\FilamentCountryField\Forms\Components\Country;

Country::make('country')
  1. Add the Country Column field in your Filament Resource.
use Parfaitementweb\FilamentCountryField\Tables\CountryColumn;

CountryColumn::make('country')
  1. Enjoy.

Configuration

On top of all Select Field methods, you can use these three helpers for the Form Component.

  • exclude() removes an item from the list.
  • add() adds your own value to the list.
  • map() changes one key to another, such as GB to UK.
use Parfaitementweb\FilamentCountryField\Forms\Components\Country;

Country::make('country')
->exclude(['NL'])
->add(['MA' =>'Mars'])
->map(['GB' => 'UK', 'GF' => 'FR'])

Clearing the Cache

To ensure better performance and faster response times, the country list is stored in the cache for easy retrieval, leading to an overall snappier user experience.

To clear the cached country list, you can utilize the built-in artisan command provided by Laravel. The following command can be run in your terminal or command line interface:

php artisan countries-field:clear

Built-in translations

The country values are displayed according to the user's current locale settings, which are determined by the App::getLocale() value.

The field supports those 132 languages:

Afrikaans, Akan, Amharic, Arabic, Assamese, Azerbaijani, Belarusian, Bulgarian, Bambara, Bengali, Tibetan, Breton, Bosnian, Catalan, Chechen, Czech, Welsh, Danish, German, Dzongkha, Ewe, Greek, English, Esperanto, Spanish, Estonian, Basque, Persian, Fula, Finnish, Faroese, French, Western Frisian, Irish, Scottish Gaelic, Galician, Gujarati, Manx, Hausa, Hebrew, Hindi, Croatian, Hungarian, Armenian, Interlingua, Indonesian, Igbo, Sichuan Yi, Icelandic, Italian, Japanese, Javanese, Georgian, Kikuyu, Kazakh, Kalaallisut, Khmer, Kannada, Korean, Kashmiri, Kurdish, Cornish, Kyrgyz, Luxembourgish, Ganda, Lingala, Lao, Lithuanian, Luba-Katanga, Latvian, Malagasy, Maori, Macedonian, Malayalam, Mongolian, Marathi, Malay, Maltese, Burmese, Norwegian Bokmål, North Ndebele, Nepali, Dutch, Norwegian Nynorsk, Norwegian, Oromo, Odia, Ossetic, Punjabi, Polish, Pashto, Portuguese, Quechua, Romansh, Rundi, Romanian, Russian, Kinyarwanda, Sindhi, Northern Sami, Sango, Serbo-Croatian, Sinhala, Slovak, Slovenian, Shona, Somali, Albanian, Serbian, Swedish, Swahili, Tamil, Telugu, Tajik, Thai, Tigrinya, Turkmen, Tagalog, Tongan, Turkish, Tatar, Uighur, Ukrainian, Urdu, Uzbek, Vietnamese, Wolof, Xhosa, Yiddish, Yoruba, Chinese, Zulu

Built-in countries

You can check the entire country list here.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

This package used data from umpirsky/country-list. Thank you for the great work.

License

The MIT License (MIT). Please see License File for more information.