├── .babelrc ├── .editorconfig ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── index.d.ts ├── lang ├── ar.json ├── cn.json ├── de.json ├── es.json ├── fr.json ├── hu.json ├── id.json ├── ir.json ├── it.json ├── jp.json ├── ko.json ├── pl.json ├── pt.json ├── ru.json └── tr.json ├── package.json ├── src ├── CountryData.js ├── index.js ├── rawCountries.js ├── rawTerritories.js ├── style │ ├── bootstrap.less │ ├── common │ │ ├── flags.less │ │ ├── flags.png │ │ ├── high-res-flags.less │ │ └── high-res.png │ ├── high-res.less │ ├── material.less │ ├── plain.less │ ├── semantic-ui.less │ └── style.less └── utils │ └── prototypes.js ├── test ├── ReactPhoneInput.test.js ├── __mocks__ │ ├── fileMock.js │ └── styleMock.js ├── dev_css │ └── demo.js ├── dev_js │ └── demo.js ├── index │ └── index.html └── screenshot.png └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["babel-preset-react-app"] 3 | } 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.js,*.jsx] 2 | indent_style = tab 3 | indent_size = 2 4 | end_of_line = LF 5 | charset = utf-8 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | 9 | [*] 10 | charset = utf-8 11 | end_of_line = LF 12 | trim_trailing_whitespace = true 13 | insert_final_newline = true 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | .idea 3 | node_modules 4 | package-lock.json 5 | animation.gif 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 'node' 4 | install: 5 | - npm install 6 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 2.15.0 (February 3, 2022) 2 | * Hungarian, Polish, Korean translation 3 | * numerous fixes 4 | 5 | 6 | ## 2.13.8 (August 25, 2020) 7 | * `specialLabel`, `disableCountryGuess` 8 | * Add some missing flags to css 9 | * Minor fixes 10 | 11 | 12 | ## 2.13.7 (June 27, 2020) 13 | * Fix countryCodeEditable for single digit country [@kieshaherman](https://github.com/kieshaherman) 14 | * Add Turkish translation [@smddzcy](https://github.com/smddzcy) 15 | * Fix search of 'undefined' strings [@sackeyjason](https://github.com/sackeyjason) 16 | * Fix handleFlagDropdownClick [@Manimall](https://github.com/Manimall) 17 | * `disableInitialCountryGuess` [@xavieramoros](https://github.com/xavieramoros) 18 | * Screenreader aria attributes [@sackeyjason](https://github.com/sackeyjason) 19 | 20 | 21 | ## 2.13.1 (April 15, 2020) 22 | * `enableAreaCodeStretch` to handle area codes of different length on the same country 23 | * null passed as value will clear country, empty string will clear prefix 24 | * `enableClickOutside` to disable dropdown close handler 25 | * `showDropdown` to allow initially opened dropdowns 26 | * Always return unformatted value as 1st argument and formatted as 4th in onChange 27 | * Search by dialCode 28 | * `searchNotFound` to modify text showed when no entry is found 29 | * Do not use prefix and dialCode in custom masks 30 | * Add `hiddenAreaCodes` which is the array of disabled area codes used to compute correct country 31 | * Enable event propagation for onEnterKeyPress 32 | * Validation `defaultErrorMessage` on the top of the input 33 | * Derive errorMessage from isValid handler 34 | * Mexican area codes [@fleetofthemalden](https://github.com/fleetofthemalden) 35 | * Australia area codes 36 | * Typescript support 37 | 38 | 39 | ## 2.12.1 (March 11, 2020) 40 | * `priority`, `alwaysDefaultMask` 41 | * Custom `tabIndex` 42 | * Replace id usage to classes to avoid warnings [@J-theGit](https://github.com/J-theGit) 43 | * Dynamic mask creation 44 | * Move dependent territories to external file, add `enableTerritories` [@gillerg8](https://github.com/gillerg8) 45 | 46 | 47 | ## 2.11.0 (December 4, 2019) 48 | * Add languages: jp, cn, pt, it, ir, ar, id 49 | * Replace `disableAreaCodes` to `enableAreaCodes` 50 | * `defaultCountry` → `country` 51 | * `enableSearchField` → `enableSearch` 52 | * Search update, search countries firstly using iso2 codes 53 | * Set countries using dialCode 54 | * Add Kosovo, subregions: ex-yugos, baltic 55 | * Add `defaultMask`, `prefix` 56 | * Copy number from input without formatting 57 | * Select whole number when double click 58 | * Pass event object to onChange handler 59 | * Style update: style.css high-res.css material.css bootstrap.css semantic-ui.css plain.css 60 | 61 | 62 | ## 2.10.0 (September 18, 2019) 63 | * Add languages: es, de, ru, fr 64 | * Custom `areaCodes` 65 | * Search localized country name #123 66 | * `renderStringAsFlag` to show string instead of flag 67 | * Fix input freezing on area codes #119 68 | * Add `preserveOrder` #109 69 | * Better keyboard support 70 | * Make lib work inside shadow DOM #105 [@newying61](https://github.com/newying61) 71 | * IE Polyfyll startswith #102 72 | 73 | 74 | ## 2.9.3 (April 8, 2019) 75 | * SSR support (removed references to browser objects) 76 | * Change importing method 77 | * `defaultCountry` update fix #70 78 | * Add `disableSearchIcon`, `searchStyle` props 79 | * Tests 80 | 81 | 82 | ## 2.8.0 (February 20, 2019) 83 | * Custom phone `masks` 84 | * Localization using iso2 codes 85 | * Upgrade dependencies & webpack #65 [@jnsdls](https://github.com/jnsdls) 86 | * Remove lodash #44 87 | * Keep detection of area codes with `disableAreaCodes` #49 88 | * Drop setSelectionRange() check #50 89 | * Customizable placeholder for search field 90 | * Update phone masks 91 | * Fix first number cutting #72 92 | 93 | 94 | ## 2.7.1 (November 29, 2018) 95 | * Styles update, fix SearchField `autoFocus` 96 | * SearchField [@awthwathje](https://github.com/awthwathje) 97 | 98 | 99 | ## 2.6.1 (September 26, 2018) 100 | * Pass props into the input via `inputExtraProps` 101 | * Remove `autoFocus`, `name`, `required` props 102 | 103 | 104 | ## 2.5.1 (July 26, 2018) 105 | * Add `autoFocus` prop to input [@mikesholiu](https://github.com/mikesholiu) 106 | * Focus and highlight preferred country 107 | * Abstracts global document and document related properties [@Alex-ray](https://github.com/Alex-ray) 108 | 109 | 110 | ## 2.4.1 (July 1, 2018) 111 | * Fix backspace 112 | * Always show right bracket 113 | * Add containerStyle prop 114 | * Fix areaCodes doesn't change when same country selected 115 | * Make country code not editable by passing prop countryCodeEditable [@HasanShehryarJaffri](https://github.com/HasanShehryarJaffri) 116 | 117 | 118 | ## 2.3.0 (May 27, 2018) 119 | * Add localization feature 120 | * Add classname to the main container 121 | * Add custom class configurations [@Alex-ray](https://github.com/Alex-ray) 122 | 123 | 124 | ## 2.2.1 (March 15, 2018) 125 | * Add masks for disableCountryCode attribute 126 | * Add attribute to enable non-mask phone lengths 127 | * Make phone formatter to reject non-mask phone lengths 128 | 129 | 130 | ## 2.1.1 (January 23, 2018) 131 | * Add country object to be return to props functions [@shaypeleg1](https://github.com/shaypeleg1) 132 | * SearchCountry error fix 133 | * Add `disableDropdown` and `disableCountryCode` 134 | 135 | 136 | ## 2.0.0 (September 4, 2017) 137 | * Add feature to select from regions 138 | * Add regions and encapsulation 139 | * Styles changed, styles customization 140 | * Hide dropdown by click outside 141 | * String refs replaced by callback refs 142 | * Hide flag by default, custom placeholder 143 | * Add property to disable area codes 144 | * Fix preferred countires dropdown bug 145 | * Auto-update flag if value field used, caret right-auto-align 146 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017-2020 Nick Reiley (https://github.com/bl00mber) 4 | Copyright (c) 2015-2017 Raza Gill (https://github.com/razagill) 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React-Phone-Input-2 2 | Highly customizable phone input component with auto formatting. 3 | 4 | [![npm version](https://img.shields.io/npm/v/react-phone-input-2.svg?style=flat)](https://www.npmjs.com/package/react-phone-input-2) 5 | [![npm downloads](https://img.shields.io/npm/dm/react-phone-input-2.svg?style=flat)](https://www.npmjs.com/package/react-phone-input-2) 6 | [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/bl00mber/react-phone-input-2#contributing) 7 | [![travis build](https://travis-ci.org/bl00mber/react-phone-input-2.svg?branch=master)](https://travis-ci.org/bl00mber/react-phone-input-2) 8 | 9 | ![animation](https://media.giphy.com/media/xiORAWnqoTJDsH0UOI/giphy.gif) 10 | 11 | ## Installation 12 | ```shell-script 13 | npm install react-phone-input-2 --save 14 | ``` 15 | 16 | ## Usage 17 | ```jsx 18 | import PhoneInput from 'react-phone-input-2' 19 | import 'react-phone-input-2/lib/style.css' 20 | 21 | this.setState({ phone })} 25 | /> 26 | ``` 27 | **available styles** - style • high-res • material • bootstrap • semantic-ui • plain 28 | 29 | #### [Demo 1 (UI)](https://bl00mber.github.io/react-phone-input-2.html) - [Demo 2 (CSS)](https://bl00mber.github.io/react-phone-input-2-css.html) 30 | 31 | ![screenshot](https://raw.githubusercontent.com/bl00mber/react-phone-input-2/master/test/screenshot.png) 32 | 33 | ## Options 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 |
Name Type Description Example
country string initial country 'us' | 1
value string input state value
onlyCountries array country codes to be included ['cu','cw','kz']
preferredCountries array country codes to be at the top ['cu','cw','kz']
excludeCountries array array of country codes to be excluded ['cu','cw','kz']
placeholder string custom placeholder
inputProps object props to pass into the input
84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 |
Booleans Default Description
autoFormat true on/off phone formatting
disabled false disable input and dropdown
disableDropdown false disable dropdown only
disableCountryCode false
enableAreaCodes false enable local codes for all countries
enableTerritories false enable dependent territories with population of ~100,000 or lower
enableLongNumbers false boolean/number
countryCodeEditable true
enableSearch false enable search in the dropdown
disableSearchIcon false hide icon for the search field
142 | 143 | ```jsx 144 | 151 | ``` 152 | 153 | ### Contents 154 | - [Style](#style) 155 | - [Events](#events) 156 | - [Regions](#regions) 157 | - [Localization](#predefined-localization) 158 | - [Local area codes](#local-area-codes) 159 | - [Custom masks](#custom-masks) 160 | - [Custom area codes](#custom-area-codes) 161 | - [Other props](#other-props) 162 | - [Custom localization](#custom-localization) 163 | - [Guides](#guides) 164 | - [Phone without dialCode](#phone-without-dialcode) 165 | - [Check validity of the phone number](#check-validity-of-the-phone-number) 166 | - [CDN](#cdn) 167 | - [Contributing](#contributing) 168 | - [Support](https://www.paypal.me/bloomber/20) 169 | 170 | ### Style 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 |
containerClass string class for container
inputClass string class for input
buttonClass string class for dropdown button
dropdownClass string class for dropdown container
searchClass string class for search field
containerStyle object styles for container
inputStyle object styles for input
buttonStyle object styles for dropdown button
dropdownStyle object styles for dropdown container
searchStyle object styles for search field
224 | 225 | ### Events 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 |
onChange onFocus onBlur onClick onKeyDown
235 | 236 | onChange(value, country, e, formattedValue) 237 | 238 | Country data object not returns from onKeyDown event 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 |
Data Type Description
value/event string/object event or the phone number
country data object country object { name, dialCode, countryCode (iso2) }
257 | 258 | ### Regions 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 |
Name Type Description
regions array/string to show countries only from specified regions
271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 |
Regions
['america', 'europe', 'asia', 'oceania', 'africa']
Subregions
['north-america', 'south-america', 'central-america', 'carribean', 'eu-union', 'ex-ussr', 'ex-yugos', 'baltic', 'middle-east', 'north-africa']
286 | 287 | ```jsx 288 | 292 | 293 | 297 | ``` 298 | 299 | ### Predefined localization 300 | `es` Spanish, `de` Deutsch, `ru` Russian, `fr` French
301 | `jp` Japanese, `cn` Chinese, `pt` Portuguese, `it` Italian
302 | `ir` Iranian, `ar` Arabic, `tr` Turkish, `id` Indonesian
303 | `hu` Hungarian, `pl` Polish, `ko` Korean 304 | 305 | ```jsx 306 | import es from 'react-phone-input-2/lang/es.json' 307 | 308 | 311 | ``` 312 | 313 | ### Local area codes 314 | ```jsx 315 | 320 | ``` 321 | 322 | #### Flexible mask 323 | If `enableAreaCodeStretch` is added, the part of the mask with the area code will not stretch to length of the respective section of phone mask. 324 | Example: `+61 (2), +61 (02)` 325 | 326 | ### Custom masks 327 | ```jsx 328 | 332 | ``` 333 | 334 | ### Custom area codes 335 | ```jsx 336 | 340 | ``` 341 | 342 | ### Other props 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 |
defaultMask ... ... ... ... ..
alwaysDefaultMask false
prefix +
searchPlaceholder 'search'
searchNotFound 'No entries to show'
copyNumbersOnly true
renderStringAsFlag string
autocompleteSearch false
jumpCursorToEnd false
priority {{ca: 0, us: 1, kz: 0, ru: 1}}
enableClickOutside true
showDropdown false
defaultErrorMessage string
specialLabel string
disableInitialCountryGuess false
disableCountryGuess false
410 | 411 | ### Custom localization 412 | ```jsx 413 | 417 | 418 | 422 | ``` 423 | 424 | ### Preserve countries order 425 | ```jsx 426 | 430 | ``` 431 | 432 | ## Guides 433 | ### Phone without dialCode 434 | ```jsx 435 | handleOnChange(value, data, event, formattedValue) { 436 | this.setState({ rawPhone: value.slice(data.dialCode.length) }) 437 | } 438 | ``` 439 | 440 | ### Check validity of the phone number 441 | `isValid(value, country, countries, hiddenAreaCodes)` 442 | 443 | ```jsx 444 | { 446 | if (value.match(/12345/)) { 447 | return 'Invalid value: '+value+', '+country.name; 448 | } else if (value.match(/1234/)) { 449 | return false; 450 | } else { 451 | return true; 452 | } 453 | }} 454 | /> 455 | ``` 456 | 457 | ```jsx 458 | import startsWith from 'lodash.startswith'; 459 | 460 | { 462 | return countries.some((country) => { 463 | return startsWith(inputNumber, country.dialCode) || startsWith(country.dialCode, inputNumber); 464 | }); 465 | }} 466 | /> 467 | ``` 468 | 469 | ### Clear country 470 | To clear `country`, pass `null` as `value`. 471 | 472 | ### Dynamic placeholder 473 |
474 | Show 475 | 476 | ```jsx 477 | const phoneCountryFormat = useMemo(() => phoneCountry?.format || undefined, [phoneCountry]); 478 | const placeholder = useMemo(() => { 479 | if (phoneCountryFormat) { 480 | const words = phoneCountryFormat.split(' '); 481 | words.shift(); // I'm using only local numbers so here I remove the country code from the format 482 | let text = words.join(' '); 483 | // first digit is special on french numbers, these 3 lines could be removed 484 | if (country === 'fr') { 485 | text = text.replace('.', '6'); 486 | } 487 | while (text.indexOf('.') > -1) { 488 | text = text.replace('.', `${Math.min(9, Math.max(1, Math.floor(Math.random() * 10)))}`); 489 | } 490 | return text; 491 | } 492 | return ''; 493 | }, [phoneCountryFormat, country]); 494 | ``` 495 |
496 | 497 | ### CDN 498 | ```html 499 | 500 | ``` 501 | 502 | ## Contributing 503 | - Code style changes not allowed 504 | - Do not create issues about incorrect or missing country masks (of already present countries) or absent area codes (they will be closed). Only create issues if the subject is an actual mechanism that is not present in the component. Otherwise create a PR with a link that proves the correctness of your newly suggested mask or list of area codes 505 | - Do not send new languages 506 | 507 | ## License 508 | [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/bl00mber/react-phone-input-2/blob/master/LICENSE) 509 | 510 | Based on [react-phone-input](https://github.com/razagill/react-phone-input) 511 | 512 | Make sure you donated for lib maintenance [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.me/bloomber/20) 513 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "react-phone-input-2" { 2 | import React from "react"; 3 | 4 | export interface CountryData { 5 | name: string; 6 | dialCode: string; 7 | countryCode: string; 8 | format: string; 9 | } 10 | 11 | interface Style { 12 | containerClass?: string; 13 | inputClass?: string; 14 | buttonClass?: string; 15 | dropdownClass?: string; 16 | searchClass?: string; 17 | 18 | containerStyle?: React.CSSProperties; 19 | inputStyle?: React.CSSProperties; 20 | buttonStyle?: React.CSSProperties; 21 | dropdownStyle?: React.CSSProperties; 22 | searchStyle?: React.CSSProperties; 23 | } 24 | 25 | interface PhoneInputEventsProps { 26 | onChange?( 27 | value: string, 28 | data: CountryData | {}, 29 | event: React.ChangeEvent, 30 | formattedValue: string 31 | ): void; 32 | onFocus?( 33 | event: React.FocusEvent, 34 | data: CountryData | {} 35 | ): void; 36 | onBlur?( 37 | event: React.FocusEvent, 38 | data: CountryData | {} 39 | ): void; 40 | onClick?( 41 | event: React.MouseEvent, 42 | data: CountryData | {} 43 | ): void; 44 | onKeyDown?(event: React.KeyboardEvent): void; 45 | onEnterKeyPress?(event: React.KeyboardEvent): void; 46 | isValid?: (( 47 | value: string, 48 | country: object, 49 | countries: object[], 50 | hiddenAreaCodes: object[], 51 | ) => boolean | string) | boolean; 52 | onMount?( 53 | value: string, 54 | data: CountryData | {}, 55 | formattedValue: string 56 | ): void; 57 | } 58 | 59 | export interface PhoneInputProps extends PhoneInputEventsProps, Style { 60 | country?: string | number; 61 | value?: string | null; 62 | 63 | onlyCountries?: string[]; 64 | preferredCountries?: string[]; 65 | excludeCountries?: string[]; 66 | 67 | placeholder?: string; 68 | searchPlaceholder?: string; 69 | searchNotFound?: string; 70 | disabled?: boolean; 71 | 72 | autoFormat?: boolean; 73 | enableAreaCodes?: boolean; 74 | enableTerritories?: boolean; 75 | 76 | disableCountryCode?: boolean; 77 | disableDropdown?: boolean; 78 | enableLongNumbers?: boolean | number; 79 | countryCodeEditable?: boolean; 80 | enableSearch?: boolean; 81 | disableSearchIcon?: boolean; 82 | 83 | regions?: string | string[]; 84 | 85 | inputProps?: object; 86 | localization?: object; 87 | masks?: object; 88 | areaCodes?: object; 89 | 90 | preserveOrder?: string[]; 91 | 92 | defaultMask?: string; 93 | 94 | alwaysDefaultMask?: boolean; 95 | prefix?: string; 96 | copyNumbersOnly?: boolean; 97 | renderStringAsFlag?: string; 98 | autocompleteSearch?: boolean; 99 | jumpCursorToEnd?: boolean; 100 | priority?: object; 101 | enableAreaCodeStretch?: boolean; 102 | enableClickOutside?: boolean; 103 | showDropdown?: boolean; 104 | 105 | defaultErrorMessage?: string; 106 | specialLabel?: string; 107 | disableInitialCountryGuess?: boolean; 108 | disableCountryGuess?: boolean; 109 | } 110 | const PhoneInput: React.FC; 111 | export default PhoneInput; 112 | } 113 | -------------------------------------------------------------------------------- /lang/ar.json: -------------------------------------------------------------------------------- 1 | {"is":"آيسلندا","et":"إثيوبيا","az":"أذربيجان","am":"أرمينيا","aw":"أروبا","er":"إريتريا","es":"إسبانيا","au":"أستراليا","ee":"إستونيا","il":"إسرائيل","sz":"إسواتيني","af":"أفغانستان","ps":"الأراضي الفلسطينية","ar":"الأرجنتين","jo":"الأردن","tf":"الأقاليم الجنوبية الفرنسية","io":"الإقليم البريطاني في المحيط الهندي","ec":"الإكوادور","ae":"الإمارات العربية المتحدة","al":"ألبانيا","bh":"البحرين","br":"البرازيل","pt":"البرتغال","bs":"البهاما","ba":"البوسنة والهرسك","cz":"التشيك","me":"الجبل الأسود","dz":"الجزائر","dk":"الدانمرك","cv":"الرأس الأخضر","sv":"السلفادور","sn":"السنغال","sd":"السودان","se":"السويد","eh":"الصحراء الغربية","so":"الصومال","cn":"الصين","iq":"العراق","ga":"الغابون","va":"الفاتيكان","ph":"الفلبين","cm":"الكاميرون","cg":"الكونغو - برازافيل","cd":"الكونغو - كينشاسا","kw":"الكويت","de":"ألمانيا","ma":"المغرب","mx":"المكسيك","sa":"المملكة العربية السعودية","gb":"المملكة المتحدة","no":"النرويج","at":"النمسا","ne":"النيجر","in":"الهند","us":"الولايات المتحدة","jp":"اليابان","ye":"اليمن","gr":"اليونان","aq":"أنتاركتيكا","ag":"أنتيغوا وبربودا","ad":"أندورا","id":"إندونيسيا","ao":"أنغولا","ai":"أنغويلا","uy":"أورغواي","uz":"أوزبكستان","ug":"أوغندا","ua":"أوكرانيا","ir":"إيران","ie":"أيرلندا","it":"إيطاليا","pg":"بابوا غينيا الجديدة","py":"باراغواي","pk":"باكستان","pw":"بالاو","bb":"بربادوس","bm":"برمودا","bn":"بروناي","be":"بلجيكا","bg":"بلغاريا","bz":"بليز","bd":"بنغلاديش","pa":"بنما","bj":"بنين","bt":"بوتان","bw":"بوتسوانا","pr":"بورتوريكو","bf":"بوركينا فاسو","bi":"بوروندي","pl":"بولندا","bo":"بوليفيا","pf":"بولينيزيا الفرنسية","pe":"بيرو","by":"بيلاروس","th":"تايلاند","tw":"تايوان","tm":"تركمانستان","tr":"تركيا","ta":"تريستان دا كونا","tt":"ترينيداد وتوباغو","td":"تشاد","cl":"تشيلي","tz":"تنزانيا","tg":"توغو","tv":"توفالو","tk":"توكيلو","tn":"تونس","to":"تونغا","tl":"تيمور - ليشتي","jm":"جامايكا","gi":"جبل طارق","ax":"جزر آلاند","km":"جزر القمر","ic":"جزر الكناري","mq":"جزر المارتينيك","mv":"جزر المالديف","um":"جزر الولايات المتحدة النائية","pn":"جزر بيتكيرن","tc":"جزر توركس وكايكوس","sb":"جزر سليمان","fo":"جزر فارو","fk":"جزر فوكلاند","vg":"جزر فيرجن البريطانية","vi":"جزر فيرجن التابعة للولايات المتحدة","ky":"جزر كايمان","ck":"جزر كوك","cc":"جزر كوكوس","mh":"جزر مارشال","mp":"جزر ماريانا الشمالية","wf":"جزر والس وفوتونا","ac":"جزيرة أسينشيون","cx":"جزيرة كريسماس","im":"جزيرة مان","nf":"جزيرة نورفولك","cf":"جمهورية أفريقيا الوسطى","do":"جمهورية الدومينيكان","za":"جنوب أفريقيا","ss":"جنوب السودان","ge":"جورجيا","gs":"جورجيا الجنوبية وجزر ساندويتش الجنوبية","dj":"جيبوتي","je":"جيرسي","dm":"دومينيكا","dg":"دييغو غارسيا","rw":"رواندا","ru":"روسيا","ro":"رومانيا","re":"روينيون","zm":"زامبيا","zw":"زيمبابوي","ci":"ساحل العاج","ws":"ساموا","as":"ساموا الأمريكية","bl":"سان بارتليمي","pm":"سان بيير ومكويلون","mf":"سان مارتن","sm":"سان مارينو","vc":"سانت فنسنت وجزر غرينادين","kn":"سانت كيتس ونيفيس","lc":"سانت لوسيا","sx":"سانت مارتن","sh":"سانت هيلينا","st":"ساو تومي وبرينسيبي","lk":"سريلانكا","sj":"سفالبارد وجان ماين","sk":"سلوفاكيا","si":"سلوفينيا","sg":"سنغافورة","sy":"سوريا","sr":"سورينام","ch":"سويسرا","sl":"سيراليون","sc":"سيشل","ea":"سيوتا وميليلا","rs":"صربيا","tj":"طاجيكستان","om":"عُمان","gm":"غامبيا","gh":"غانا","gd":"غرينادا","gl":"غرينلاند","gt":"غواتيمالا","gp":"غوادلوب","gu":"غوام","gf":"غويانا الفرنسية","gy":"غيانا","gg":"غيرنزي","gn":"غينيا","gq":"غينيا الاستوائية","gw":"غينيا بيساو","vu":"فانواتو","fr":"فرنسا","ve":"فنزويلا","fi":"فنلندا","vn":"فيتنام","fj":"فيجي","cy":"قبرص","qa":"قطر","kg":"قيرغيزستان","kz":"كازاخستان","nc":"كاليدونيا الجديدة","hr":"كرواتيا","kh":"كمبوديا","ca":"كندا","cu":"كوبا","cw":"كوراساو","kr":"كوريا الجنوبية","kp":"كوريا الشمالية","cr":"كوستاريكا","xk":"كوسوفو","co":"كولومبيا","ki":"كيريباتي","ke":"كينيا","lv":"لاتفيا","la":"لاوس","lb":"لبنان","lu":"لوكسمبورغ","ly":"ليبيا","lr":"ليبيريا","lt":"ليتوانيا","li":"ليختنشتاين","ls":"ليسوتو","mt":"مالطا","ml":"مالي","my":"ماليزيا","yt":"مايوت","mg":"مدغشقر","eg":"مصر","mk":"مقدونيا","mo":"مكاو الصينية","mw":"ملاوي","mn":"منغوليا","mr":"موريتانيا","mu":"موريشيوس","mz":"موزمبيق","md":"مولدوفا","mc":"موناكو","ms":"مونتسرات","mm":"ميانمار","fm":"ميكرونيزيا","na":"ناميبيا","nr":"ناورو","np":"نيبال","ng":"نيجيريا","ni":"نيكاراغوا","nz":"نيوزيلندا","nu":"نيوي","ht":"هايتي","hn":"هندوراس","hu":"هنغاريا","nl":"هولندا","bq":"هولندا الكاريبية","hk":"هونغ كونغ الصينية"} -------------------------------------------------------------------------------- /lang/cn.json: -------------------------------------------------------------------------------- 1 | {"al":"阿尔巴尼亚","dz":"阿尔及利亚","af":"阿富汗","ar":"阿根廷","ae":"阿拉伯联合酋长国","aw":"阿鲁巴","om":"阿曼","az":"阿塞拜疆","ac":"阿森松岛","eg":"埃及","et":"埃塞俄比亚","ie":"爱尔兰","ee":"爱沙尼亚","ad":"安道尔","ao":"安哥拉","ai":"安圭拉","ag":"安提瓜和巴布达","at":"奥地利","ax":"奥兰群岛","au":"澳大利亚","bb":"巴巴多斯","pg":"巴布亚新几内亚","bs":"巴哈马","pk":"巴基斯坦","py":"巴拉圭","ps":"巴勒斯坦领土","bh":"巴林","pa":"巴拿马","br":"巴西","by":"白俄罗斯","bm":"百慕大","bg":"保加利亚","mp":"北马里亚纳群岛","mk":"北马其顿","bj":"贝宁","be":"比利时","is":"冰岛","pr":"波多黎各","pl":"波兰","ba":"波斯尼亚和黑塞哥维那","bo":"玻利维亚","bz":"伯利兹","bw":"博茨瓦纳","bt":"不丹","bf":"布基纳法索","bi":"布隆迪","kp":"朝鲜","gq":"赤道几内亚","dk":"丹麦","de":"德国","dg":"迪戈加西亚岛","tl":"东帝汶","tg":"多哥","do":"多米尼加共和国","dm":"多米尼克","ru":"俄罗斯","ec":"厄瓜多尔","er":"厄立特里亚","fr":"法国","fo":"法罗群岛","pf":"法属波利尼西亚","gf":"法属圭亚那","tf":"法属南部领地","mf":"法属圣马丁","va":"梵蒂冈","ph":"菲律宾","fj":"斐济","fi":"芬兰","cv":"佛得角","fk":"福克兰群岛","gm":"冈比亚","cg":"刚果(布)","cd":"刚果(金)","co":"哥伦比亚","cr":"哥斯达黎加","gd":"格林纳达","gl":"格陵兰","ge":"格鲁吉亚","gg":"根西岛","cu":"古巴","gp":"瓜德罗普","gu":"关岛","gy":"圭亚那","kz":"哈萨克斯坦","ht":"海地","kr":"韩国","nl":"荷兰","bq":"荷属加勒比区","sx":"荷属圣马丁","me":"黑山","hn":"洪都拉斯","ki":"基里巴斯","dj":"吉布提","kg":"吉尔吉斯斯坦","gn":"几内亚","gw":"几内亚比绍","ca":"加拿大","gh":"加纳","ic":"加纳利群岛","ga":"加蓬","kh":"柬埔寨","cz":"捷克","zw":"津巴布韦","cm":"喀麦隆","qa":"卡塔尔","ky":"开曼群岛","cc":"科科斯(基林)群岛","km":"科摩罗","xk":"科索沃","ci":"科特迪瓦","kw":"科威特","hr":"克罗地亚","ke":"肯尼亚","ck":"库克群岛","cw":"库拉索","lv":"拉脱维亚","ls":"莱索托","la":"老挝","lb":"黎巴嫩","lt":"立陶宛","lr":"利比里亚","ly":"利比亚","li":"列支敦士登","re":"留尼汪","lu":"卢森堡","rw":"卢旺达","ro":"罗马尼亚","mg":"马达加斯加","im":"马恩岛","mv":"马尔代夫","mt":"马耳他","mw":"马拉维","my":"马来西亚","ml":"马里","mh":"马绍尔群岛","mq":"马提尼克","yt":"马约特","mu":"毛里求斯","mr":"毛里塔尼亚","us":"美国","um":"美国本土外小岛屿","as":"美属萨摩亚","vi":"美属维尔京群岛","mn":"蒙古","ms":"蒙特塞拉特","bd":"孟加拉国","pe":"秘鲁","fm":"密克罗尼西亚","mm":"缅甸","md":"摩尔多瓦","ma":"摩洛哥","mc":"摩纳哥","mz":"莫桑比克","mx":"墨西哥","na":"纳米比亚","za":"南非","aq":"南极洲","gs":"南乔治亚和南桑威奇群岛","ss":"南苏丹","nr":"瑙鲁","ni":"尼加拉瓜","np":"尼泊尔","ne":"尼日尔","ng":"尼日利亚","nu":"纽埃","no":"挪威","nf":"诺福克岛","pw":"帕劳","pn":"皮特凯恩群岛","pt":"葡萄牙","jp":"日本","se":"瑞典","ch":"瑞士","sv":"萨尔瓦多","ws":"萨摩亚","rs":"塞尔维亚","sl":"塞拉利昂","sn":"塞内加尔","cy":"塞浦路斯","sc":"塞舌尔","sa":"沙特阿拉伯","bl":"圣巴泰勒米","cx":"圣诞岛","st":"圣多美和普林西比","sh":"圣赫勒拿","kn":"圣基茨和尼维斯","lc":"圣卢西亚","sm":"圣马力诺","pm":"圣皮埃尔和密克隆群岛","vc":"圣文森特和格林纳丁斯","lk":"斯里兰卡","sk":"斯洛伐克","si":"斯洛文尼亚","sj":"斯瓦尔巴和扬马延","sz":"斯威士兰","sd":"苏丹","sr":"苏里南","sb":"所罗门群岛","so":"索马里","tj":"塔吉克斯坦","tw":"台湾","th":"泰国","tz":"坦桑尼亚","to":"汤加","tc":"特克斯和凯科斯群岛","ta":"特里斯坦-达库尼亚群岛","tt":"特立尼达和多巴哥","tn":"突尼斯","tv":"图瓦卢","tr":"土耳其","tm":"土库曼斯坦","tk":"托克劳","wf":"瓦利斯和富图纳","vu":"瓦努阿图","gt":"危地马拉","ve":"委内瑞拉","bn":"文莱","ug":"乌干达","ua":"乌克兰","uy":"乌拉圭","uz":"乌兹别克斯坦","gr":"希腊","es":"西班牙","eh":"西撒哈拉","sg":"新加坡","nc":"新喀里多尼亚","nz":"新西兰","hu":"匈牙利","ea":"休达及梅利利亚","sy":"叙利亚","jm":"牙买加","am":"亚美尼亚","ye":"也门","iq":"伊拉克","ir":"伊朗","il":"以色列","it":"意大利","in":"印度","id":"印度尼西亚","gb":"英国","vg":"英属维尔京群岛","io":"英属印度洋领地","jo":"约旦","vn":"越南","zm":"赞比亚","je":"泽西岛","td":"乍得","gi":"直布罗陀","cl":"智利","cf":"中非共和国","cn":"中国","mo":"中国澳门特别行政区","hk":"中国香港特别行政区"} -------------------------------------------------------------------------------- /lang/de.json: -------------------------------------------------------------------------------- 1 | {"af":"Afghanistan","eg":"Ägypten","ax":"Ålandinseln","al":"Albanien","dz":"Algerien","as":"Amerikanisch-Samoa","vi":"Amerikanische Jungferninseln","um":"Amerikanische Überseeinseln","ad":"Andorra","ao":"Angola","ai":"Anguilla","aq":"Antarktis","ag":"Antigua und Barbuda","gq":"Äquatorialguinea","ar":"Argentinien","am":"Armenien","aw":"Aruba","ac":"Ascension","az":"Aserbaidschan","et":"Äthiopien","au":"Australien","bs":"Bahamas","bh":"Bahrain","bd":"Bangladesch","bb":"Barbados","by":"Belarus","be":"Belgien","bz":"Belize","bj":"Benin","bm":"Bermuda","bt":"Bhutan","bo":"Bolivien","bq":"Bonaire, Sint Eustatius und Saba","ba":"Bosnien und Herzegowina","bw":"Botsuana","br":"Brasilien","vg":"Britische Jungferninseln","io":"Britisches Territorium im Indischen Ozean","bn":"Brunei Darussalam","bg":"Bulgarien","bf":"Burkina Faso","bi":"Burundi","cv":"Cabo Verde","ea":"Ceuta und Melilla","cl":"Chile","cn":"China","ck":"Cookinseln","cr":"Costa Rica","ci":"Côte d’Ivoire","cw":"Curaçao","dk":"Dänemark","de":"Deutschland","dg":"Diego Garcia","dm":"Dominica","do":"Dominikanische Republik","dj":"Dschibuti","ec":"Ecuador","sv":"El Salvador","er":"Eritrea","ee":"Estland","fk":"Falklandinseln","fo":"Färöer","fj":"Fidschi","fi":"Finnland","fr":"Frankreich","gf":"Französisch-Guayana","pf":"Französisch-Polynesien","tf":"Französische Süd- und Antarktisgebiete","ga":"Gabun","gm":"Gambia","ge":"Georgien","gh":"Ghana","gi":"Gibraltar","gd":"Grenada","gr":"Griechenland","gl":"Grönland","gp":"Guadeloupe","gu":"Guam","gt":"Guatemala","gg":"Guernsey","gn":"Guinea","gw":"Guinea-Bissau","gy":"Guyana","ht":"Haiti","hn":"Honduras","in":"Indien","id":"Indonesien","iq":"Irak","ir":"Iran","ie":"Irland","is":"Island","im":"Isle of Man","il":"Israel","it":"Italien","jm":"Jamaika","jp":"Japan","ye":"Jemen","je":"Jersey","jo":"Jordanien","ky":"Kaimaninseln","kh":"Kambodscha","cm":"Kamerun","ca":"Kanada","ic":"Kanarische Inseln","kz":"Kasachstan","qa":"Katar","ke":"Kenia","kg":"Kirgisistan","ki":"Kiribati","cc":"Kokosinseln","co":"Kolumbien","km":"Komoren","cg":"Kongo-Brazzaville","cd":"Kongo-Kinshasa","xk":"Kosovo","hr":"Kroatien","cu":"Kuba","kw":"Kuwait","la":"Laos","ls":"Lesotho","lv":"Lettland","lb":"Libanon","lr":"Liberia","ly":"Libyen","li":"Liechtenstein","lt":"Litauen","lu":"Luxemburg","mg":"Madagaskar","mw":"Malawi","my":"Malaysia","mv":"Malediven","ml":"Mali","mt":"Malta","ma":"Marokko","mh":"Marshallinseln","mq":"Martinique","mr":"Mauretanien","mu":"Mauritius","yt":"Mayotte","mx":"Mexiko","fm":"Mikronesien","mc":"Monaco","mn":"Mongolei","me":"Montenegro","ms":"Montserrat","mz":"Mosambik","mm":"Myanmar","na":"Namibia","nr":"Nauru","np":"Nepal","nc":"Neukaledonien","nz":"Neuseeland","ni":"Nicaragua","nl":"Niederlande","ne":"Niger","ng":"Nigeria","nu":"Niue","kp":"Nordkorea","mp":"Nördliche Marianen","mk":"Nordmazedonien","nf":"Norfolkinsel","no":"Norwegen","om":"Oman","at":"Österreich","pk":"Pakistan","ps":"Palästinensische Autonomiegebiete","pw":"Palau","pa":"Panama","pg":"Papua-Neuguinea","py":"Paraguay","pe":"Peru","ph":"Philippinen","pn":"Pitcairninseln","pl":"Polen","pt":"Portugal","pr":"Puerto Rico","md":"Republik Moldau","re":"Réunion","rw":"Ruanda","ro":"Rumänien","ru":"Russland","sb":"Salomonen","zm":"Sambia","ws":"Samoa","sm":"San Marino","st":"São Tomé und Príncipe","sa":"Saudi-Arabien","se":"Schweden","ch":"Schweiz","sn":"Senegal","rs":"Serbien","sc":"Seychellen","sl":"Sierra Leone","zw":"Simbabwe","sg":"Singapur","sx":"Sint Maarten","sk":"Slowakei","si":"Slowenien","so":"Somalia","hk":"Sonderverwaltungsregion Hongkong","mo":"Sonderverwaltungsregion Macau","es":"Spanien","sj":"Spitzbergen und Jan Mayen","lk":"Sri Lanka","bl":"St. Barthélemy","sh":"St. Helena","kn":"St. Kitts und Nevis","lc":"St. Lucia","mf":"St. Martin","pm":"St. Pierre und Miquelon","vc":"St. Vincent und die Grenadinen","za":"Südafrika","sd":"Sudan","gs":"Südgeorgien und die Südlichen Sandwichinseln","kr":"Südkorea","ss":"Südsudan","sr":"Suriname","sz":"Swasiland","sy":"Syrien","tj":"Tadschikistan","tw":"Taiwan","tz":"Tansania","th":"Thailand","tl":"Timor-Leste","tg":"Togo","tk":"Tokelau","to":"Tonga","tt":"Trinidad und Tobago","ta":"Tristan da Cunha","td":"Tschad","cz":"Tschechien","tn":"Tunesien","tr":"Türkei","tm":"Turkmenistan","tc":"Turks- und Caicosinseln","tv":"Tuvalu","ug":"Uganda","ua":"Ukraine","hu":"Ungarn","uy":"Uruguay","uz":"Usbekistan","vu":"Vanuatu","va":"Vatikanstadt","ve":"Venezuela","ae":"Vereinigte Arabische Emirate","us":"Vereinigte Staaten","gb":"Vereinigtes Königreich","vn":"Vietnam","wf":"Wallis und Futuna","cx":"Weihnachtsinsel","eh":"Westsahara","cf":"Zentralafrikanische Republik","cy":"Zypern"} 2 | -------------------------------------------------------------------------------- /lang/es.json: -------------------------------------------------------------------------------- 1 | {"af":"Afganistán","al":"Albania","de":"Alemania","ad":"Andorra","ao":"Angola","ai":"Anguila","aq":"Antártida","ag":"Antigua y Barbuda","sa":"Arabia Saudí","dz":"Argelia","ar":"Argentina","am":"Armenia","aw":"Aruba","au":"Australia","at":"Austria","az":"Azerbaiyán","bs":"Bahamas","bd":"Bangladés","bb":"Barbados","bh":"Baréin","be":"Bélgica","bz":"Belice","bj":"Benín","bm":"Bermudas","by":"Bielorrusia","bo":"Bolivia","ba":"Bosnia y Herzegovina","bw":"Botsuana","br":"Brasil","bn":"Brunéi","bg":"Bulgaria","bf":"Burkina Faso","bi":"Burundi","bt":"Bután","cv":"Cabo Verde","kh":"Camboya","cm":"Camerún","ca":"Canadá","ic":"Canarias","bq":"Caribe neerlandés","qa":"Catar","ea":"Ceuta y Melilla","td":"Chad","cz":"Chequia","cl":"Chile","cn":"China","cy":"Chipre","va":"Ciudad del Vaticano","co":"Colombia","km":"Comoras","cg":"Congo","kp":"Corea del Norte","kr":"Corea del Sur","cr":"Costa Rica","ci":"Côte d’Ivoire","hr":"Croacia","cu":"Cuba","cw":"Curazao","dg":"Diego García","dk":"Dinamarca","dm":"Dominica","ec":"Ecuador","eg":"Egipto","sv":"El Salvador","ae":"Emiratos Árabes Unidos","er":"Eritrea","sk":"Eslovaquia","si":"Eslovenia","es":"España","us":"Estados Unidos","ee":"Estonia","sz":"Esuatini","et":"Etiopía","ph":"Filipinas","fi":"Finlandia","fj":"Fiyi","fr":"Francia","ga":"Gabón","gm":"Gambia","ge":"Georgia","gh":"Ghana","gi":"Gibraltar","gd":"Granada","gr":"Grecia","gl":"Groenlandia","gp":"Guadalupe","gu":"Guam","gt":"Guatemala","gf":"Guayana Francesa","gg":"Guernsey","gn":"Guinea","gq":"Guinea Ecuatorial","gw":"Guinea-Bisáu","gy":"Guyana","ht":"Haití","hn":"Honduras","hu":"Hungría","in":"India","id":"Indonesia","iq":"Irak","ir":"Irán","ie":"Irlanda","ac":"Isla de la Ascensión","im":"Isla de Man","cx":"Isla de Navidad","nf":"Isla Norfolk","is":"Islandia","ax":"Islas Åland","ky":"Islas Caimán","cc":"Islas Cocos","ck":"Islas Cook","fo":"Islas Feroe","gs":"Islas Georgia del Sur y Sandwich del Sur","fk":"Islas Malvinas","mp":"Islas Marianas del Norte","mh":"Islas Marshall","um":"Islas menores alejadas de EE. UU.","pn":"Islas Pitcairn","sb":"Islas Salomón","tc":"Islas Turcas y Caicos","vg":"Islas Vírgenes Británicas","vi":"Islas Vírgenes de EE. UU.","il":"Israel","it":"Italia","jm":"Jamaica","jp":"Japón","je":"Jersey","jo":"Jordania","kz":"Kazajistán","ke":"Kenia","kg":"Kirguistán","ki":"Kiribati","xk":"Kosovo","kw":"Kuwait","la":"Laos","ls":"Lesoto","lv":"Letonia","lb":"Líbano","lr":"Liberia","ly":"Libia","li":"Liechtenstein","lt":"Lituania","lu":"Luxemburgo","mk":"Macedonia","mg":"Madagascar","my":"Malasia","mw":"Malaui","mv":"Maldivas","ml":"Mali","mt":"Malta","ma":"Marruecos","mq":"Martinica","mu":"Mauricio","mr":"Mauritania","yt":"Mayotte","mx":"México","fm":"Micronesia","md":"Moldavia","mc":"Mónaco","mn":"Mongolia","me":"Montenegro","ms":"Montserrat","mz":"Mozambique","mm":"Myanmar","na":"Namibia","nr":"Nauru","np":"Nepal","ni":"Nicaragua","ne":"Níger","ng":"Nigeria","nu":"Niue","no":"Noruega","nc":"Nueva Caledonia","nz":"Nueva Zelanda","om":"Omán","nl":"Países Bajos","pk":"Pakistán","pw":"Palaos","pa":"Panamá","pg":"Papúa Nueva Guinea","py":"Paraguay","pe":"Perú","pf":"Polinesia Francesa","pl":"Polonia","pt":"Portugal","pr":"Puerto Rico","hk":"RAE de Hong Kong","mo":"RAE de Macao","gb":"Reino Unido","cf":"República Centroafricana","cd":"República Democrática del Congo","do":"República Dominicana","re":"Reunión","rw":"Ruanda","ro":"Rumanía","ru":"Rusia","eh":"Sáhara Occidental","ws":"Samoa","as":"Samoa Americana","bl":"San Bartolomé","kn":"San Cristóbal y Nieves","sm":"San Marino","mf":"San Martín","pm":"San Pedro y Miquelón","vc":"San Vicente y las Granadinas","sh":"Santa Elena","lc":"Santa Lucía","st":"Santo Tomé y Príncipe","sn":"Senegal","rs":"Serbia","sc":"Seychelles","sl":"Sierra Leona","sg":"Singapur","sx":"Sint Maarten","sy":"Siria","so":"Somalia","lk":"Sri Lanka","za":"Sudáfrica","sd":"Sudán","ss":"Sudán del Sur","se":"Suecia","ch":"Suiza","sr":"Surinam","sj":"Svalbard y Jan Mayen","th":"Tailandia","tw":"Taiwán","tz":"Tanzania","tj":"Tayikistán","io":"Territorio Británico del Océano Índico","tf":"Territorios Australes Franceses","ps":"Territorios Palestinos","tl":"Timor-Leste","tg":"Togo","tk":"Tokelau","to":"Tonga","tt":"Trinidad y Tobago","ta":"Tristán de Acuña","tn":"Túnez","tm":"Turkmenistán","tr":"Turquía","tv":"Tuvalu","ua":"Ucrania","ug":"Uganda","uy":"Uruguay","uz":"Uzbekistán","vu":"Vanuatu","ve":"Venezuela","vn":"Vietnam","wf":"Wallis y Futuna","ye":"Yemen","dj":"Yibuti","zm":"Zambia","zw":"Zimbabue"} 2 | -------------------------------------------------------------------------------- /lang/fr.json: -------------------------------------------------------------------------------- 1 | {"af":"Afghanistan","za":"Afrique du Sud","al":"Albanie","dz":"Algérie","de":"Allemagne","ad":"Andorre","ao":"Angola","ai":"Anguilla","aq":"Antarctique","ag":"Antigua-et-Barbuda","sa":"Arabie saoudite","ar":"Argentine","am":"Arménie","aw":"Aruba","au":"Australie","at":"Autriche","az":"Azerbaïdjan","bs":"Bahamas","bh":"Bahreïn","bd":"Bangladesh","bb":"Barbade","be":"Belgique","bz":"Belize","bj":"Bénin","bm":"Bermudes","bt":"Bhoutan","by":"Biélorussie","bo":"Bolivie","ba":"Bosnie-Herzégovine","bw":"Botswana","br":"Brésil","bn":"Brunéi Darussalam","bg":"Bulgarie","bf":"Burkina Faso","bi":"Burundi","kh":"Cambodge","cm":"Cameroun","ca":"Canada","cv":"Cap-Vert","ea":"Ceuta et Melilla","cl":"Chili","cn":"Chine","cy":"Chypre","co":"Colombie","km":"Comores","cg":"Congo-Brazzaville","cd":"Congo-Kinshasa","kp":"Corée du Nord","kr":"Corée du Sud","cr":"Costa Rica","ci":"Côte d’Ivoire","hr":"Croatie","cu":"Cuba","cw":"Curaçao","dk":"Danemark","dg":"Diego Garcia","dj":"Djibouti","dm":"Dominique","eg":"Égypte","ae":"Émirats arabes unis","ec":"Équateur","er":"Érythrée","es":"Espagne","ee":"Estonie","sz":"Eswatini","va":"État de la Cité du Vatican","fm":"États fédérés de Micronésie","us":"États-Unis","et":"Éthiopie","fj":"Fidji","fi":"Finlande","fr":"France","ga":"Gabon","gm":"Gambie","ge":"Géorgie","gs":"Géorgie du Sud et îles Sandwich du Sud","gh":"Ghana","gi":"Gibraltar","gr":"Grèce","gd":"Grenade","gl":"Groenland","gp":"Guadeloupe","gu":"Guam","gt":"Guatemala","gg":"Guernesey","gn":"Guinée","gq":"Guinée équatoriale","gw":"Guinée-Bissau","gy":"Guyana","gf":"Guyane française","ht":"Haïti","hn":"Honduras","hu":"Hongrie","cx":"Île Christmas","ac":"Île de l’Ascension","im":"Île de Man","nf":"Île Norfolk","ax":"Îles Åland","ky":"Îles Caïmans","ic":"Îles Canaries","cc":"Îles Cocos","ck":"Îles Cook","fo":"Îles Féroé","fk":"Îles Malouines","mp":"Îles Mariannes du Nord","mh":"Îles Marshall","um":"Îles mineures éloignées des États-Unis","pn":"Îles Pitcairn","sb":"Îles Salomon","tc":"Îles Turques-et-Caïques","vg":"Îles Vierges britanniques","vi":"Îles Vierges des États-Unis","in":"Inde","id":"Indonésie","iq":"Irak","ir":"Iran","ie":"Irlande","is":"Islande","il":"Israël","it":"Italie","jm":"Jamaïque","jp":"Japon","je":"Jersey","jo":"Jordanie","kz":"Kazakhstan","ke":"Kenya","kg":"Kirghizistan","ki":"Kiribati","xk":"Kosovo","kw":"Koweït","re":"La Réunion","la":"Laos","ls":"Lesotho","lv":"Lettonie","lb":"Liban","lr":"Libéria","ly":"Libye","li":"Liechtenstein","lt":"Lituanie","lu":"Luxembourg","mk":"Macédoine","mg":"Madagascar","my":"Malaisie","mw":"Malawi","mv":"Maldives","ml":"Mali","mt":"Malte","ma":"Maroc","mq":"Martinique","mu":"Maurice","mr":"Mauritanie","yt":"Mayotte","mx":"Mexique","md":"Moldavie","mc":"Monaco","mn":"Mongolie","me":"Monténégro","ms":"Montserrat","mz":"Mozambique","mm":"Myanmar","na":"Namibie","nr":"Nauru","np":"Népal","ni":"Nicaragua","ne":"Niger","ng":"Nigéria","nu":"Niue","no":"Norvège","nc":"Nouvelle-Calédonie","nz":"Nouvelle-Zélande","om":"Oman","ug":"Ouganda","uz":"Ouzbékistan","pk":"Pakistan","pw":"Palaos","pa":"Panama","pg":"Papouasie-Nouvelle-Guinée","py":"Paraguay","nl":"Pays-Bas","bq":"Pays-Bas caribéens","pe":"Pérou","ph":"Philippines","pl":"Pologne","pf":"Polynésie française","pr":"Porto Rico","pt":"Portugal","qa":"Qatar","hk":"R.A.S. chinoise de Hong Kong","mo":"R.A.S. chinoise de Macao","cf":"République centrafricaine","do":"République dominicaine","ro":"Roumanie","gb":"Royaume-Uni","ru":"Russie","rw":"Rwanda","eh":"Sahara occidental","bl":"Saint-Barthélemy","kn":"Saint-Christophe-et-Niévès","sm":"Saint-Marin","mf":"Saint-Martin","sx":"Saint-Martin","pm":"Saint-Pierre-et-Miquelon","vc":"Saint-Vincent-et-les-Grenadines","sh":"Sainte-Hélène","lc":"Sainte-Lucie","sv":"Salvador","ws":"Samoa","as":"Samoa américaines","st":"Sao Tomé-et-Principe","sn":"Sénégal","rs":"Serbie","sc":"Seychelles","sl":"Sierra Leone","sg":"Singapour","sk":"Slovaquie","si":"Slovénie","so":"Somalie","sd":"Soudan","ss":"Soudan du Sud","lk":"Sri Lanka","se":"Suède","ch":"Suisse","sr":"Suriname","sj":"Svalbard et Jan Mayen","sy":"Syrie","tj":"Tadjikistan","tw":"Taïwan","tz":"Tanzanie","td":"Tchad","cz":"Tchéquie","tf":"Terres australes françaises","io":"Territoire britannique de l’océan Indien","ps":"Territoires palestiniens","th":"Thaïlande","tl":"Timor oriental","tg":"Togo","tk":"Tokelau","to":"Tonga","tt":"Trinité-et-Tobago","ta":"Tristan da Cunha","tn":"Tunisie","tm":"Turkménistan","tr":"Turquie","tv":"Tuvalu","ua":"Ukraine","uy":"Uruguay","vu":"Vanuatu","ve":"Venezuela","vn":"Vietnam","wf":"Wallis-et-Futuna","ye":"Yémen","zm":"Zambie","zw":"Zimbabwe"} 2 | -------------------------------------------------------------------------------- /lang/hu.json: -------------------------------------------------------------------------------- 1 | {"af":"Afganisztán","al":"Albánia","de":"Németország","ad":"Andorra","ao":"Angola","ai":"Anguilla","aq":"Antarktika","ag":"Antigua és Barbuda","sa":"Szaúd-Arábia","dz":"Algéria","ar":"Argentína","am":"Örményország","aw":"Aruba","au":"Ausztrália","at":"Ausztria","az":"Azerbajdzsán","bs":"Bahama-szigetek","bd":"Banglades","bb":"Barbados","bh":"Bahrein","be":"Belgium","bz":"Belize","bj":"Benin","bm":"Bermuda","by":"Fehéroroszország","bo":"Bolívia","ba":"Bosznia-Hercegovina","bw":"Botswana","br":"Brazília","bn":"Brunei","bg":"Bulgária","bf":"Burkina Faso","bi":"Burundi","bt":"Bhután","cv":"Zöld-foki-szigetek","kh":"Kambodzsa","cm":"Kamerun","ca":"Kanada","ic":"Kanári szigetek","bq":"Karibi Hollandia","qa":"Katar","ea":"Ceuta és Melilla","td":"Csád","cz":"Csehország","cl":"Chile","cn":"Kína","cy":"Ciprus","va":"Vatikán","co":"Kolumbia","km":"Comore-szigetek","cg":"Kongó","kp":"Észak-Korea","kr":"Dél-Korea","cr":"Costa Rica","ci":"Elefántcsontpart","hr":"Horvátország","cu":"Kuba","cw":"Curaçao","dg":"Diego Garcia","dk":"Dánia","dm":"Dominika","ec":"Ecuador","eg":"Egyiptom","sv":"Salvador","ae":"Egyesült Arab Emírségek","er":"Eritrea","sk":"Szlovákia","si":"Szlovénia","es":"Spanyolország","us":"Egyesült Államok","ee":"Észtország","sz":"Szváziföld","et":"Etiópia","ph":"Fülöp-szigetek","fi":"Finnország","fj":"Fidzsi","fr":"Franciaország","ga":"Gabon","gm":"Gambia","ge":"Grúzia","gh":"Ghána","gi":"Gibraltár","gd":"Grenada","gr":"Görögország","gl":"Grönland","gp":"Guadeloupe","gu":"Guam","gt":"Guatemala","gf":"Francia Guyana","gg":"Guernsey","gn":"Guinea","gq":"Egyenlítői-Guinea","gw":"Bissau-Guinea","gy":"Guyana","ht":"Haiti","hn":"Honduras","hu":"Magyarország","in":"India","id":"Indonézia","iq":"Irak","ir":"Irán","ie":"Írország","ac":"Felemelkedési sziget","im":"Man-sziget","cx":"Karácsony-sziget","nf":"Norfolk-sziget","is":"Izland","ax":"Åland-szigetek","ky":"Kajmán-szigetek","cc":"Kókusz-szigetek","ck":"Cook-szigetek","fo":"Feröer szigetek","gs":"Déli-Georgia és Déli-Sandwich-szigetek","fk":"Falkland-szigetek","mp":"Északi-Mariana-szigetek","mh":"Marshall-szigetek","um":"Az Amerikai Egyesült Államok Külső Szigetei","pn":"Pitcairn-szigetek","sb":"Salamon-szigetek","tc":"Turks- és Caicos-szigetek","vg":"Brit Virgin-szigetek","vi":"Amerikai Virgin-szigetek","il":"Izrael","it":"Olaszország","jm":"Jamaica","jp":"Japán","je":"Jersey","jo":"Jordánia","kz":"Kazahsztán","ke":"Kenya","kg":"Kirgizisztán","ki":"Kiribati","xk":"Koszovó","kw":"Kuvait","la":"Laosz","ls":"Lesotho","lv":"Lettország","lb":"Libanon","lr":"Libéria","ly":"Líbia","li":"Liechtenstein","lt":"Litvánia","lu":"Luxemburg","mk":"Észak-Macedónia","mg":"Madagaszkár","my":"Malajzia","mw":"Malawi","mv":"Maldív-szigetek","ml":"Mali","mt":"Málta","ma":"Marokkó","mq":"Martinique","mu":"Mauritius","mr":"Mauritánia","yt":"Mayotte","mx":"Mexikó","fm":"Mikronézia","md":"Moldova","mc":"Monaco","mn":"Mongólia","me":"Montenegró","ms":"Montserrat","mz":"Mozambik","mm":"Mianmar","na":"Namíbia","nr":"Nauru","np":"Nepál","ni":"Nicaragua","ne":"Niger","ng":"Nigéria","nu":"Niue","no":"Norvégia","nc":"Új-Kaledónia","nz":"Új-Zéland","om":"Omán","nl":"Hollandia","pk":"Pakisztán","pw":"Palau","pa":"Panama","pg":"Pápua Új-Guinea","py":"Paraguay","pe":"Peru","pf":"Francia Polinézia","pl":"Lengyelország","pt":"Portugália","pr":"Puerto Rico","hk":"Hongkong","mo":"Makaó","gb":"Egyesült Királyság","cf":"Közép-afrikai Köztársaság","cd":"Kongói Demokratikus Köztársaság","do":"Dominikai Köztársaság","re":"Réunion","rw":"Ruanda","ro":"Románia","ru":"Oroszország","eh":"Nyugat-Szahara","ws":"Szamoa","as":"Amerikai Szamoa","bl":"Saint-Barthélemy","kn":"Saint Kitts és Nevis","sm":"San Marino","mf":"Saint-Martin","pm":"Saint-Pierre és Miquelon","vc":"Saint Vincent és Grenadine-szigetek","sh":"Szent Ilona, Ascension és Tristan da Cunha","lc":"Saint Lucia","st":"São Tomé és Príncipe","sn":"Szenegál","rs":"Szerbia","sc":"Seychelle-szigetek","sl":"Sierra Leone","sg":"Szingapúr","sx":"Sint Maarten","sy":"Szíria","so":"Szomália","lk":"Sri Lanka","za":"Dél-Afrika","sd":"Szudán","ss":"Dél-Szudán","se":"Svédország","ch":"Svájc","sr":"Suriname","sj":"Svalbard és Jan Mayen","th":"Thaiföld","tw":"Tajvan","tz":"Tanzánia","tj":"Tádzsikisztán","io":"Brit Indiai-óceáni Terület","tf":"Francia Déli és Antarktiszi Területek","ps":"Palesztina","tl":"Kelet-Timor","tg":"Togo","tk":"Tokelau-szigetek","to":"Tonga","tt":"Trinidad és Tobago","ta":"Tristan da Cunha","tn":"Tunézia","tm":"Türkmenisztán","tr":"Törökország","tv":"Tuvalu","ua":"Ukrajna","ug":"Uganda","uy":"Uruguay","uz":"Üzbegisztán","vu":"Vanuatu","ve":"Venezuela","vn":"Vietnám","wf":"Wallis és Futuna","ye":"Jemen","dj":"Dzsibuti","zm":"Zambia","zw":"Zimbabwe"} 2 | -------------------------------------------------------------------------------- /lang/id.json: -------------------------------------------------------------------------------- 1 | {"af":"Afganistan","za":"Afrika Selatan","al":"Albania","dz":"Aljazair","us":"Amerika Serikat","ad":"Andorra","ao":"Angola","ai":"Anguilla","aq":"Antartika","ag":"Antigua dan Barbuda","sa":"Arab Saudi","ar":"Argentina","am":"Armenia","aw":"Aruba","au":"Australia","at":"Austria","az":"Azerbaijan","bs":"Bahama","bh":"Bahrain","bd":"Bangladesh","bb":"Barbados","nl":"Belanda","bq":"Belanda Karibia","by":"Belarus","be":"Belgia","bz":"Belize","bj":"Benin","bm":"Bermuda","bt":"Bhutan","bo":"Bolivia","ba":"Bosnia dan Herzegovina","bw":"Botswana","br":"Brasil","bn":"Brunei","bg":"Bulgaria","bf":"Burkina Faso","bi":"Burundi","td":"Cad","cz":"Ceko","ea":"Ceuta dan Melilla","cl":"Cile","cw":"Curaçao","dk":"Denmark","dg":"Diego Garcia","dm":"Dominika","ec":"Ekuador","sv":"El Salvador","er":"Eritrea","ee":"Estonia","sz":"eSwatini","et":"Etiopia","fj":"Fiji","ph":"Filipina","fi":"Finlandia","ga":"Gabon","gm":"Gambia","ge":"Georgia","gs":"Georgia Selatan & Kep. Sandwich Selatan","gh":"Ghana","gi":"Gibraltar","gd":"Grenada","gl":"Grinlandia","gp":"Guadeloupe","gu":"Guam","gt":"Guatemala","gg":"Guernsey","gn":"Guinea","gq":"Guinea Ekuatorial","gw":"Guinea-Bissau","gy":"Guyana","gf":"Guyana Prancis","ht":"Haiti","hn":"Honduras","hk":"Hong Kong SAR Tiongkok","hu":"Hungaria","in":"India","id":"Indonesia","gb":"Inggris Raya","iq":"Irak","ir":"Iran","ie":"Irlandia","is":"Islandia","il":"Israel","it":"Italia","jm":"Jamaika","jp":"Jepang","de":"Jerman","je":"Jersey","dj":"Jibuti","nc":"Kaledonia Baru","kh":"Kamboja","cm":"Kamerun","ca":"Kanada","kz":"Kazakstan","ke":"Kenya","ax":"Kepulauan Aland","ic":"Kepulauan Canary","ky":"Kepulauan Cayman","cc":"Kepulauan Cocos","ck":"Kepulauan Cook","fo":"Kepulauan Faroe","fk":"Kepulauan Malvinas","mp":"Kepulauan Mariana Utara","mh":"Kepulauan Marshall","nf":"Kepulauan Norfolk","pn":"Kepulauan Pitcairn","sb":"Kepulauan Solomon","sj":"Kepulauan Svalbard dan Jan Mayen","um":"Kepulauan Terluar A.S.","tc":"Kepulauan Turks dan Caicos","vi":"Kepulauan Virgin A.S.","vg":"Kepulauan Virgin Inggris","wf":"Kepulauan Wallis dan Futuna","kg":"Kirgistan","ki":"Kiribati","co":"Kolombia","km":"Komoro","cg":"Kongo - Brazzaville","cd":"Kongo - Kinshasa","kr":"Korea Selatan","kp":"Korea Utara","xk":"Kosovo","cr":"Kosta Rika","hr":"Kroasia","cu":"Kuba","kw":"Kuwait","la":"Laos","lv":"Latvia","lb":"Lebanon","ls":"Lesotho","lr":"Liberia","ly":"Libia","li":"Liechtenstein","lt":"Lituania","lu":"Luksemburg","mg":"Madagaskar","mo":"Makau SAR Tiongkok","mk":"Makedonia Utara","mv":"Maladewa","mw":"Malawi","my":"Malaysia","ml":"Mali","mt":"Malta","ma":"Maroko","mq":"Martinik","mr":"Mauritania","mu":"Mauritius","yt":"Mayotte","mx":"Meksiko","eg":"Mesir","fm":"Mikronesia","md":"Moldova","mc":"Monako","mn":"Mongolia","me":"Montenegro","ms":"Montserrat","mz":"Mozambik","mm":"Myanmar","na":"Namibia","nr":"Nauru","np":"Nepal","ne":"Niger","ng":"Nigeria","ni":"Nikaragua","nu":"Niue","no":"Norwegia","om":"Oman","pk":"Pakistan","pw":"Palau","pa":"Panama","ci":"Pantai Gading","pg":"Papua Nugini","py":"Paraguay","pe":"Peru","pl":"Polandia","pf":"Polinesia Prancis","pt":"Portugal","fr":"Prancis","pr":"Puerto Riko","ac":"Pulau Ascension","cx":"Pulau Christmas","im":"Pulau Man","qa":"Qatar","cf":"Republik Afrika Tengah","do":"Republik Dominika","re":"Réunion","ro":"Rumania","ru":"Rusia","rw":"Rwanda","eh":"Sahara Barat","bl":"Saint Barthélemy","sh":"Saint Helena","kn":"Saint Kitts dan Nevis","lc":"Saint Lucia","mf":"Saint Martin","pm":"Saint Pierre dan Miquelon","vc":"Saint Vincent dan Grenadines","ws":"Samoa","as":"Samoa Amerika","sm":"San Marino","st":"Sao Tome dan Principe","nz":"Selandia Baru","sn":"Senegal","rs":"Serbia","sc":"Seychelles","sl":"Sierra Leone","sg":"Singapura","sx":"Sint Maarten","cy":"Siprus","sk":"Slovakia","si":"Slovenia","so":"Somalia","es":"Spanyol","lk":"Sri Lanka","sd":"Sudan","ss":"Sudan Selatan","sy":"Suriah","sr":"Suriname","se":"Swedia","ch":"Swiss","tw":"Taiwan","tj":"Tajikistan","cv":"Tanjung Verde","tz":"Tanzania","th":"Thailand","tl":"Timor Leste","cn":"Tiongkok","tg":"Togo","tk":"Tokelau","to":"Tonga","tt":"Trinidad dan Tobago","ta":"Tristan da Cunha","tn":"Tunisia","tr":"Turki","tm":"Turkimenistan","tv":"Tuvalu","ug":"Uganda","ua":"Ukraina","ae":"Uni Emirat Arab","uy":"Uruguay","uz":"Uzbekistan","vu":"Vanuatu","va":"Vatikan","ve":"Venezuela","vn":"Vietnam","io":"Wilayah Inggris di Samudra Hindia","tf":"Wilayah Kutub Selatan Prancis","ps":"Wilayah Palestina","ye":"Yaman","jo":"Yordania","gr":"Yunani","zm":"Zambia","zw":"Zimbabwe"} -------------------------------------------------------------------------------- /lang/ir.json: -------------------------------------------------------------------------------- 1 | {"ar":"آرژانتین","aw":"آروبا","al":"آلبانی","de":"آلمان","ag":"آنتیگوا و باربودا","ad":"آندورا","ao":"آنگولا","ai":"آنگویلا","at":"اتریش","et":"اتیوپی","jo":"اردن","am":"ارمنستان","uy":"اروگوئه","er":"اریتره","uz":"ازبکستان","es":"اسپانیا","au":"استرالیا","ee":"استونی","il":"اسرائیل","sk":"اسلواکی","si":"اسلوونی","sz":"اسواتینی","sj":"اسوالبارد و جان‌ماین","za":"افریقای جنوبی","af":"افغانستان","ec":"اکوادور","dz":"الجزایر","sv":"السالوادور","ae":"امارات متحدهٔ عربی","id":"اندونزی","ua":"اوکراین","ug":"اوگاندا","us":"ایالات متحده","it":"ایتالیا","ir":"ایران","ie":"ایرلند","is":"ایسلند","bb":"باربادوس","bs":"باهاما","bh":"بحرین","br":"برزیل","bm":"برمودا","bn":"برونئی","gb":"بریتانیا","by":"بلاروس","be":"بلژیک","bg":"بلغارستان","bz":"بلیز","bd":"بنگلادش","bj":"بنین","bt":"بوتان","bw":"بوتسوانا","bf":"بورکینافاسو","bi":"بوروندی","ba":"بوسنی و هرزگوین","bo":"بولیوی","pg":"پاپوا گینهٔ نو","py":"پاراگوئه","pk":"پاکستان","pw":"پالائو","pa":"پاناما","pt":"پرتغال","pe":"پرو","pf":"پلی‌نزی فرانسه","pr":"پورتوریکو","tj":"تاجیکستان","tz":"تانزانیا","th":"تایلند","tw":"تایوان","tm":"ترکمنستان","tr":"ترکیه","ta":"تریستان دا کونا","tt":"ترینیداد و توباگو","tk":"توکلائو","tg":"توگو","tn":"تونس","to":"تونگا","tv":"تووالو","tl":"تیمور-لسته","jm":"جامائیکا","gi":"جبل‌الطارق","je":"جرزی","ac":"جزایر آسنسیون","ax":"جزایر آلاند","pn":"جزایر پیت‌کرن","tc":"جزایر تورکس و کایکوس","gs":"جزایر جورجیای جنوبی و ساندویچ جنوبی","um":"جزایر دورافتادهٔ ایالات متحده","sb":"جزایر سلیمان","fo":"جزایر فارو","fk":"جزایر فالکلند","ic":"جزایر قناری","bq":"جزایر کارائیب هلند","ck":"جزایر کوک","cc":"جزایر کوکوس","ky":"جزایر کِیمن","mh":"جزایر مارشال","mp":"جزایر ماریانای شمالی","vi":"جزایر ویرجین ایالات متحده","vg":"جزایر ویرجین بریتانیا","cx":"جزیرهٔ کریسمس","im":"جزیرهٔ من","nf":"جزیرهٔ نورفولک","az":"جمهوری آذربایجان","cf":"جمهوری افریقای مرکزی","cz":"جمهوری چک","do":"جمهوری دومینیکن","aq":"جنوبگان","dj":"جیبوتی","td":"چاد","cn":"چین","dk":"دانمارک","dm":"دومینیکا","dg":"دیه‌گو گارسیا","re":"رئونیون","rw":"رواندا","ru":"روسیه","ro":"رومانی","zm":"زامبیا","zw":"زیمبابوه","jp":"ژاپن","st":"سائوتومه و پرینسیپ","ci":"ساحل عاج","ws":"ساموآ","as":"ساموآی امریکا","sm":"سان‌مارینو","ea":"سبته و ملیله","tf":"سرزمین‌های جنوب فرانسه","ps":"سرزمین‌های فلسطینی","lk":"سری‌لانکا","bl":"سن بارتلمی","pm":"سن پیر و میکلن","kn":"سنت کیتس و نویس","lc":"سنت لوسیا","sx":"سنت مارتن","mf":"سنت مارتین","vc":"سنت وینسنت و گرنادین","sh":"سنت هلن","sg":"سنگاپور","sn":"سنگال","se":"سوئد","ch":"سوئیس","sd":"سودان","ss":"سودان جنوبی","sr":"سورینام","sy":"سوریه","so":"سومالی","sl":"سیرالئون","sc":"سیشل","cl":"شیلی","eh":"صحرای غربی","rs":"صربستان","iq":"عراق","sa":"عربستان سعودی","om":"عمان","gh":"غنا","fr":"فرانسه","fi":"فنلاند","fj":"فیجی","ph":"فیلیپین","cy":"قبرس","kg":"قرقیزستان","kz":"قزاقستان","qa":"قطر","io":"قلمرو بریتانیا در اقیانوس هند","cr":"کاستاریکا","nc":"کالدونیای جدید","kh":"کامبوج","cm":"کامرون","ca":"کانادا","hr":"کرواسی","kr":"کرهٔ جنوبی","kp":"کرهٔ شمالی","co":"کلمبیا","cg":"کنگو - برازویل","cd":"کنگو - کینشاسا","ke":"کنیا","cu":"کوبا","cw":"کوراسائو","xk":"کوزوو","km":"کومور","kw":"کویت","cv":"کیپ‌ورد","ki":"کیریباتی","ga":"گابن","gm":"گامبیا","ge":"گرجستان","gd":"گرنادا","gg":"گرنزی","gl":"گرینلند","gt":"گواتمالا","gp":"گوادلوپ","gu":"گوام","gy":"گویان","gf":"گویان فرانسه","gn":"گینه","gq":"گینهٔ استوایی","gw":"گینهٔ بیسائو","la":"لائوس","lb":"لبنان","lv":"لتونی","ls":"لسوتو","lu":"لوکزامبورگ","pl":"لهستان","lr":"لیبریا","ly":"لیبی","lt":"لیتوانی","li":"لیختن‌اشتاین","mg":"ماداگاسکار","mq":"مارتینیک","mo":"ماکائو، منطقۀ ویژۀ اداری چین","mw":"مالاوی","mt":"مالت","mv":"مالدیو","my":"مالزی","ml":"مالی","yt":"مایوت","hu":"مجارستان","ma":"مراکش","eg":"مصر","mn":"مغولستان","mk":"مقدونیهٔ شمالی","mx":"مکزیک","mr":"موریتانی","mu":"موریس","mz":"موزامبیک","md":"مولداوی","mc":"موناکو","ms":"مونت‌سرات","me":"مونته‌نگرو","mm":"میانمار","fm":"میکرونزی","nr":"نائورو","na":"نامیبیا","np":"نپال","no":"نروژ","ne":"نیجر","ng":"نیجریه","ni":"نیکاراگوئه","nu":"نیوئه","nz":"نیوزیلند","va":"واتیکان","wf":"والیس و فوتونا","vu":"وانواتو","ve":"ونزوئلا","vn":"ویتنام","ht":"هائیتی","nl":"هلند","in":"هند","hn":"هندوراس","hk":"هنگ‌کنگ، منطقۀ ویژۀ اداری چین","ye":"یمن","gr":"یونان"} -------------------------------------------------------------------------------- /lang/it.json: -------------------------------------------------------------------------------- 1 | {"af":"Afghanistan","al":"Albania","dz":"Algeria","um":"Altre isole americane del Pacifico","ad":"Andorra","ao":"Angola","ai":"Anguilla","aq":"Antartide","ag":"Antigua e Barbuda","sa":"Arabia Saudita","ar":"Argentina","am":"Armenia","aw":"Aruba","au":"Australia","at":"Austria","az":"Azerbaigian","bs":"Bahamas","bh":"Bahrein","bd":"Bangladesh","bb":"Barbados","be":"Belgio","bz":"Belize","bj":"Benin","bm":"Bermuda","bt":"Bhutan","by":"Bielorussia","bo":"Bolivia","ba":"Bosnia ed Erzegovina","bw":"Botswana","br":"Brasile","bn":"Brunei","bg":"Bulgaria","bf":"Burkina Faso","bi":"Burundi","kh":"Cambogia","cm":"Camerun","ca":"Canada","cv":"Capo Verde","bq":"Caraibi olandesi","cz":"Cechia","ea":"Ceuta e Melilla","td":"Ciad","cl":"Cile","cn":"Cina","cy":"Cipro","va":"Città del Vaticano","co":"Colombia","km":"Comore","cd":"Congo - Kinshasa","cg":"Congo-Brazzaville","kp":"Corea del Nord","kr":"Corea del Sud","ci":"Costa d’Avorio","cr":"Costa Rica","hr":"Croazia","cu":"Cuba","cw":"Curaçao","dk":"Danimarca","dg":"Diego Garcia","dm":"Dominica","ec":"Ecuador","eg":"Egitto","sv":"El Salvador","ae":"Emirati Arabi Uniti","er":"Eritrea","ee":"Estonia","et":"Etiopia","fj":"Figi","ph":"Filippine","fi":"Finlandia","fr":"Francia","ga":"Gabon","gm":"Gambia","ge":"Georgia","gs":"Georgia del Sud e Sandwich australi","de":"Germania","gh":"Ghana","jm":"Giamaica","jp":"Giappone","gi":"Gibilterra","dj":"Gibuti","jo":"Giordania","gr":"Grecia","gd":"Grenada","gl":"Groenlandia","gp":"Guadalupa","gu":"Guam","gt":"Guatemala","gg":"Guernsey","gn":"Guinea","gq":"Guinea Equatoriale","gw":"Guinea-Bissau","gy":"Guyana","gf":"Guyana francese","ht":"Haiti","hn":"Honduras","in":"India","id":"Indonesia","ir":"Iran","iq":"Iraq","ie":"Irlanda","is":"Islanda","ac":"Isola Ascensione","cx":"Isola Christmas","im":"Isola di Man","nf":"Isola Norfolk","ax":"Isole Åland","ic":"Isole Canarie","ky":"Isole Cayman","cc":"Isole Cocos","ck":"Isole Cook","fo":"Isole Fær Øer","fk":"Isole Falkland","mp":"Isole Marianne settentrionali","mh":"Isole Marshall","pn":"Isole Pitcairn","sb":"Isole Salomone","tc":"Isole Turks e Caicos","vi":"Isole Vergini Americane","vg":"Isole Vergini Britanniche","il":"Israele","it":"Italia","je":"Jersey","kz":"Kazakistan","ke":"Kenya","kg":"Kirghizistan","ki":"Kiribati","xk":"Kosovo","kw":"Kuwait","la":"Laos","ls":"Lesotho","lv":"Lettonia","lb":"Libano","lr":"Liberia","ly":"Libia","li":"Liechtenstein","lt":"Lituania","lu":"Lussemburgo","mk":"Macedonia del Nord","mg":"Madagascar","mw":"Malawi","my":"Malaysia","mv":"Maldive","ml":"Mali","mt":"Malta","ma":"Marocco","mq":"Martinica","mr":"Mauritania","mu":"Mauritius","yt":"Mayotte","mx":"Messico","fm":"Micronesia","md":"Moldavia","mc":"Monaco","mn":"Mongolia","me":"Montenegro","ms":"Montserrat","mz":"Mozambico","mm":"Myanmar","na":"Namibia","nr":"Nauru","np":"Nepal","ni":"Nicaragua","ne":"Niger","ng":"Nigeria","nu":"Niue","no":"Norvegia","nc":"Nuova Caledonia","nz":"Nuova Zelanda","om":"Oman","nl":"Paesi Bassi","pk":"Pakistan","pw":"Palau","pa":"Panamá","pg":"Papua Nuova Guinea","py":"Paraguay","pe":"Perù","pf":"Polinesia francese","pl":"Polonia","pt":"Portogallo","pr":"Portorico","qa":"Qatar","hk":"RAS di Hong Kong","mo":"RAS di Macao","gb":"Regno Unito","cf":"Repubblica Centrafricana","do":"Repubblica Dominicana","re":"Riunione","ro":"Romania","rw":"Ruanda","ru":"Russia","eh":"Sahara occidentale","kn":"Saint Kitts e Nevis","lc":"Saint Lucia","mf":"Saint Martin","vc":"Saint Vincent e Grenadine","bl":"Saint-Barthélemy","pm":"Saint-Pierre e Miquelon","ws":"Samoa","as":"Samoa americane","sm":"San Marino","sh":"Sant’Elena","st":"São Tomé e Príncipe","sn":"Senegal","rs":"Serbia","sc":"Seychelles","sl":"Sierra Leone","sg":"Singapore","sx":"Sint Maarten","sy":"Siria","sk":"Slovacchia","si":"Slovenia","so":"Somalia","es":"Spagna","lk":"Sri Lanka","us":"Stati Uniti","ss":"Sud Sudan","za":"Sudafrica","sd":"Sudan","sr":"Suriname","sj":"Svalbard e Jan Mayen","se":"Svezia","ch":"Svizzera","sz":"Swaziland","tj":"Tagikistan","tw":"Taiwan","tz":"Tanzania","tf":"Terre australi francesi","ps":"Territori palestinesi","io":"Territorio britannico dell’Oceano Indiano","th":"Thailandia","tl":"Timor Est","tg":"Togo","tk":"Tokelau","to":"Tonga","tt":"Trinidad e Tobago","ta":"Tristan da Cunha","tn":"Tunisia","tr":"Turchia","tm":"Turkmenistan","tv":"Tuvalu","ua":"Ucraina","ug":"Uganda","hu":"Ungheria","uy":"Uruguay","uz":"Uzbekistan","vu":"Vanuatu","ve":"Venezuela","vn":"Vietnam","wf":"Wallis e Futuna","ye":"Yemen","zm":"Zambia","zw":"Zimbabwe"} -------------------------------------------------------------------------------- /lang/jp.json: -------------------------------------------------------------------------------- 1 | {"is":"アイスランド","ie":"アイルランド","az":"アゼルバイジャン","ac":"アセンション島","af":"アフガニスタン","us":"アメリカ合衆国","ae":"アラブ首長国連邦","dz":"アルジェリア","ar":"アルゼンチン","aw":"アルバ","al":"アルバニア","am":"アルメニア","ai":"アンギラ","ao":"アンゴラ","ag":"アンティグア・バーブーダ","ad":"アンドラ","ye":"イエメン","gb":"イギリス","il":"イスラエル","it":"イタリア","iq":"イラク","ir":"イラン","in":"インド","id":"インドネシア","wf":"ウォリス・フツナ","ug":"ウガンダ","ua":"ウクライナ","uz":"ウズベキスタン","uy":"ウルグアイ","ec":"エクアドル","eg":"エジプト","ee":"エストニア","sz":"エスワティニ","et":"エチオピア","er":"エリトリア","sv":"エルサルバドル","au":"オーストラリア","at":"オーストリア","ax":"オーランド諸島","om":"オマーン","nl":"オランダ","bq":"オランダ領カリブ","gh":"ガーナ","cv":"カーボベルデ","gg":"ガーンジー","gy":"ガイアナ","kz":"カザフスタン","qa":"カタール","ca":"カナダ","ic":"カナリア諸島","ga":"ガボン","cm":"カメルーン","gm":"ガンビア","kh":"カンボジア","gn":"ギニア","gw":"ギニアビサウ","cy":"キプロス","cu":"キューバ","cw":"キュラソー","gr":"ギリシャ","ki":"キリバス","kg":"キルギス","gt":"グアテマラ","gp":"グアドループ","gu":"グアム","kw":"クウェート","ck":"クック諸島","gl":"グリーンランド","cx":"クリスマス島","gd":"グレナダ","hr":"クロアチア","ky":"ケイマン諸島","ke":"ケニア","ci":"コートジボワール","cc":"ココ","cr":"コスタリカ","xk":"コソボ","km":"コモロ","co":"コロンビア","cg":"コンゴ共和","cd":"コンゴ民主共和","sa":"サウジアラビア","gs":"サウスジョージア・サウスサンドウィッチ諸島","ws":"サモア","bl":"サン・バルテルミー","mf":"サン・マルタン","st":"サントメ・プリンシペ","zm":"ザンビア","pm":"サンピエール島・ミクロン島","sm":"サンマリノ","sl":"シエラレオネ","dj":"ジブチ","gi":"ジブラルタル","je":"ジャージー","jm":"ジャマイカ","ge":"ジョージア","sy":"シリア","sg":"シンガポール","sx":"シント・マールテン","zw":"ジンバブエ","ch":"スイス","se":"スウェーデン","sd":"スーダン","sj":"スバールバル諸島・ヤンマイエン島","es":"スペイン","sr":"スリナム","lk":"スリランカ","sk":"スロバキア","si":"スロベニア","ea":"セウタ・メリリャ","sc":"セーシェル","sn":"セネガル","rs":"セルビア","kn":"セントクリストファー・ネーヴィス","vc":"セントビンセント及びグレナディーン諸島","sh":"セントヘレナ","lc":"セントルシア","so":"ソマリア","sb":"ソロモン諸島","tc":"タークス・カイコス諸島","th":"タイ","tj":"タジキスタン","tz":"タンザニア","cz":"チェコ","td":"チャド","tn":"チュニジア","cl":"チリ","tv":"ツバル","dg":"ディエゴガルシア島","dk":"デンマーク","de":"ドイツ","tg":"トーゴ","tk":"トケラウ","do":"ドミニカ共和国","dm":"ドミニカ国","ta":"トリスタン・ダ・クーニャ","tt":"トリニダード・トバゴ","tm":"トルクメニスタン","tr":"トルコ","to":"トンガ","ng":"ナイジェリア","nr":"ナウル","na":"ナミビア","nu":"ニウエ","ni":"ニカラグア","ne":"ニジェール","nc":"ニューカレドニア","nz":"ニュージーランド","np":"ネパール","nf":"ノーフォーク島","no":"ノルウェー","bh":"バーレーン","ht":"ハイチ","pk":"パキスタン","va":"バチカン市国","pa":"パナマ","vu":"バヌアツ","bs":"バハマ","pg":"パプアニューギニア","bm":"バミューダ","pw":"パラオ","py":"パラグアイ","bb":"バルバドス","ps":"パレスチナ自治区","hu":"ハンガリー","bd":"バングラデシュ","pn":"ピトケアン諸島","fj":"フィジー","ph":"フィリピン","fi":"フィンランド","bt":"ブータン","pr":"プエルトリコ","fo":"フェロー諸島","fk":"フォークランド諸島","br":"ブラジル","fr":"フランス","bg":"ブルガリア","bf":"ブルキナファソ","bn":"ブルネイ","bi":"ブルンジ","vn":"ベトナム","bj":"ベナン","ve":"ベネズエラ","by":"ベラルーシ","bz":"ベリーズ","pe":"ペルー","be":"ベルギー","pl":"ポーランド","ba":"ボスニア・ヘルツェゴビナ","bw":"ボツワナ","bo":"ボリビア","pt":"ポルトガル","hn":"ホンジュラス","mh":"マーシャル諸島","mg":"マダガスカル","yt":"マヨット","mw":"マラウイ","ml":"マリ","mt":"マルタ","mq":"マルティニーク","my":"マレーシア","im":"マン島","fm":"ミクロネシア連邦","mm":"ミャンマー","mx":"メキシコ","mu":"モーリシャス","mr":"モーリタニア","mz":"モザンビーク","mc":"モナコ","mv":"モルディブ","md":"モルドバ","ma":"モロッコ","mn":"モンゴル","me":"モンテネグロ","ms":"モントセラト","jo":"ヨルダン","la":"ラオス","lv":"ラトビア","lt":"リトアニア","ly":"リビア","li":"リヒテンシュタイン","lr":"リベリア","ro":"ルーマニア","lu":"ルクセンブルク","rw":"ルワンダ","ls":"レソト","lb":"レバノン","re":"レユニオン","ru":"ロシア","io":"英領インド洋地域","vg":"英領ヴァージン諸島","kr":"韓国","um":"合衆国領有小離島","eh":"西サハラ","gq":"赤道ギニア","tw":"台湾","cf":"中央アフリカ共和国","mo":"中華人民共和国マカオ特別行政区","hk":"中華人民共和国香港特別行政区","cn":"中国","tl":"東ティモール","za":"南アフリカ","ss":"南スーダン","aq":"南極","jp":"日本","gf":"仏領ギアナ","pf":"仏領ポリネシア","tf":"仏領極南諸島","vi":"米領ヴァージン諸島","as":"米領サモア","mk":"北マケドニア","mp":"北マリアナ諸島","kp":"北朝鮮"} -------------------------------------------------------------------------------- /lang/ko.json: -------------------------------------------------------------------------------- 1 | {"is":"아이슬란드","ie":"아일랜드","az":"아제르바이잔","ac":"어센션 섬","af":"아프가니스탄","us":"미국","ae":"아랍에미리트","dz":"알제리","ar":"아르헨티나","aw":"아루바","al":"알바니아","am":"아르메니아","ai":"앵귈라","ao":"앙골라","ag":"앤티가 바부다","ad":"안도라","ye":"예멘","gb":"영국","il":"이스라엘","it":"이탈리아","iq":"이라크","ir":"이란","in":"인도","id":"인도네시아","wf":"왈리스 퓌튀나","ug":"우간다","ua":"우크라이나","uz":"우즈베키스탄","uy":"우루과이","ec":"에콰도 르","eg":"이집트","ee":"에스토니아","sz":"스와질란드","et":"에티오피아","er":"에리트레아","sv":"엘살바도르","au":"오스트레일리아","at":"오스트리아","ax":"올란드 제도","om":"오만","nl":"네덜란드","bq":"네덜란드령 안틸레스","gh":"가나","cv":"카보베르데","gg":"건지 섬","gy":"가이아나","kz":"카자흐스탄","qa":"카타르","ca":"캐나다","ic":"카나리 제도","ga":"가봉","cm":"카메룬","gm":"감비아","kh":"캄보디아","gn":"기니","gw":"기니비사우","cy":"키프로스","cu":"쿠바","cw":"퀴라소","gr":"그리스","ki":"키리바시","kg":"키르기스스탄","gt":"과테말라","gp":"과들루프","gu":"괌","kw":"쿠웨이트","ck":"쿡 제도","gl":"그린란드","cx":"크리스마스 섬","gd":"그레나다","hr":"크로아티아","ky":"케이맨 제도","ke":"케냐","ci":"코트디부아르","cc":"코코스 제도","cr":"코스타리카","xk":"코소보","km":"코모로","co":"콜롬비아","cg":"콩고 공 화국","cd":"콩고 민주 공화국","sa":"사우디아라비아","gs":"사우스조지아 사우스샌드위치 제도","ws":"사모아","bl":"생바르텔레미","mf":"세인트마틴 섬","st":"상투메 프린시페","zm":"잠비아","pm":"생피에르 미클롱","sm":"산마리노","sl":"시에라리온","dj":"지부티","gi":"지브롤터","je":"저지 섬","jm":"자메이카","ge":"조지아","sy":"시리아","sg":"싱가포르","sx":"신트마르턴","zw":"짐바브웨","ch":"스위스","se":"스웨덴","sd":"수단","sj":"스발바르 얀마옌","es":"스페인","sr":"수리남","lk":"스리랑카","sk":"슬로바키아","si":"슬로베니아","ea":"멜리야","sc":"세이셸","sn":"세네갈","rs":"세르비아","kn":"세인트키츠 네비스","vc":"세인트빈센트 그레나딘","sh":"세인트헬레나","lc":"세인트루시아","so":"소말리아","sb":"솔로몬 제도","tc":"터크스 케 이커스 제도","th":"타이","tj":"타지키스탄","tz":"탄자니아","cz":"체코","td":"차드","tn":"튀니지","cl":"칠레","tv":"투발루","dg":"디에고가르시아 섬","dk":"덴마크","de":"독일","tg":"토고","tk":"토켈라우","do":"도미니카 공화국","dm":"도미니카 연방","ta":"트리스탄다쿠냐","tt":"트리니다드 토바고","tm":"투르크메니스탄","tr":"터키","to":"통가","ng":"나이지리아","nr":"나우루","na":"나미비아","nu":"니우에","ni":"니카라 과","ne":"니제르","nc":"누벨칼레도니","nz":"뉴질랜드","np":"네팔","nf":"노퍽 섬","no":"노르웨이","bh":"바레인","ht":"아이티","pk":"파키스탄","va":"바티칸 시국","pa":"파나마","vu":"바누아투","bs":"바하마","pg":"파푸아뉴기니","bm":"버뮤다","pw":"팔라우","py":"파라과이","bb":"바베이도스","ps":"팔레스타인","hu":"헝가리","bd":"방글라데시","pn":"핏케언 제도","fj":"피지","ph":"필리핀","fi":" 핀란드","bt":"부탄","pr":"푸에르토리코","fo":"페로 제도","fk":"포클랜드 제도","br":"브라질","fr":"프랑스","bg":"불가리아","bf":"부르키나파소","bn":"브루나이","bi":"부룬디","vn":"베트남","bj":"베냉","ve":"베네수엘라","by":"벨라루스","bz":"벨리즈","pe":"페루","be":"벨기에","pl":"폴란드","ba":"보스니아 헤르체고비나","bw":"보츠와나","bo":"볼리비아","pt":"포르투갈","hn":"온두라스","mh":"마셜 제도","mg":"마다가스카르","yt":"마요트","mw":"말라위","ml":"말리","mt":"몰타","mq":"마르티니크","my":"말레이시 아","im":"맨 섬","fm":"미크로네시아 연방","mm":"미얀마","mx":"멕시코","mu":"모리셔스","mr":"모리타니","mz":"모잠비크","mc":"모나코","mv":"몰디브","md":"몰도바","ma":"모로코","mn":"몽골","me":"몬테네그로","ms":"몬트세랫","jo":"요르단","la":"라오스","lv":"라트비아","lt":"리투아니아","ly":"리비아","li":"리히텐슈타인","lr":"라이베리아","ro":"루마니 아","lu":"룩셈부르크","rw":"르완다","ls":"레소토","lb":"레바논","re":"레위니옹","ru":"러시아","io":"영국령 인도양 지역","vg":"영국령 버진아일랜드","kr":"대한민국","um":"미 국령 군소 제도","eh":"서사하라","gq":"적도 기니","tw":"중화민국","cf":"중앙아프리카 공화국","mo":"마카오","hk":"홍콩","cn":"중화인민공화국","tl":"동티모르","za":"남아프리카 공화국","ss":"남수단","aq":"남극","jp":"일본","gf":"프랑스령 기아나","pf":"프랑스령 폴리네시아","tf":"프랑스령 남방 및 남극","vi":"미국령 버진아일랜드","as":"아메리칸사모아","mk":"마케도니아 공화국","mp":"북마리아나 제도","kp":"조선민주주의인민공화국"} -------------------------------------------------------------------------------- /lang/pl.json: -------------------------------------------------------------------------------- 1 | {"af":"Afganistan","al":"Albania","dz":"Algeria","ad":"Andora","ao":"Angola","ag":"Antigua i Barbuda","ar":"Argentyna","am":"Armenia","aw":"Aruba","au":"Australia","at":"Austria","az":"Azerbejdżan","bs":"Bahamy","bh":"Bahrajn","bd":"Bangladesz","bb":"Barbados","by":"Białoruś","be":"Belgia","bz":"Belize","bj":"Benin","bt":"Bhutan","bo":"Boliwia","ba":"Bośnia i Hercegowina","bw":"Botswana","br":"Brazylia","io":"Brytyjskie Terytorium Oceanu Indyjskiego","bn":"Brunei Darussalam","bg":"Bułgaria","bf":"Burkina Faso","bi":"Burundi","kh":"Kambodża","cm":"Kamerun","ca":"Kanada","cv":"Zielony Przylądek","bq":"Holandia Karaibska","cf":"Republika Środkowoafrykańska","td":"Czad","cl":"Chile","cn":"Chiny","co":"Kolombia","km":"Komory","cd":"Kongo, Republika Demokratyczna","cg":"Kongo","cr":"Kostaryka","ci":"Wybrzeże Kości Słoniowej","hr":"Chorwacja","cu":"Kuba","cw":"Curaçao","cy":"Cypr","cz":"Republika Czeska","dk":"Dania","dj":"Dżibuti","dm":"Dominika","do":"Dominikana","ec":"Ekwador","eg":"Egipt","sv":"Salwador","gq":"Gwinea Równikowa","er":"Erytrea","ee":"Estonia","et":"Etiopia","fj":"Fidżi Republika","fi":"Finlandia","fr":"Francja","gf":"Gujana Francuska","pf":"Polinezja Francuska","ga":"Gabon","gm":"Gambia","ge":"Gruzja","de":"Niemcy","gh":"Ghana","gr":"Grecja","gd":"Grenada","gp":"Gwadelupa","gu":"Guam","gt":"Gwatemala","gn":"Gwinea","gw":"Guinea-Bissau","gy":"Gujana","ht":"Haiti","hn":"Honduras","hk":"Hongkong","hu":"Węgry","is":"Islandia","in":"Indie","id":"Indonezja","ir":"Iran","iq":"Irak","ie":"Irlandia","il":"Izrael","it":"Włochy","jm":"Jamaika","jp":"Japonia","jo":"Jordania","kz":"Kazachstan","ke":"Kenia","ki":"Kiribati","xk":"Kosowo","kw":"Kuwejt","kg":"Kirgistan","la":"Laos","lv":"Łotwa","lb":"Liban","ls":"Lesotho","lr":"Liberia","ly":"Libia","li":"Liechtenstein","lt":"Litwa","lu":"Luksemburg","mo":"Makau","mk":"Macedonia","mg":"Madagaskar","mw":"Malawi","my":"Malezja","mv":"Malediwy","ml":"Mali","mt":"Malta","mh":"Wyspy Marshalla","mq":"Martynika","mr":"Mauretania","mu":"Mauritius","mx":"Meksyk","fm":"Mikronezja","md":"Mołdowa","mc":"Monako","mn":"Mongolia","me":"Czarnogóra","ma":"Maroko","mz":"Mozambik","mm":"Myanmar","na":"Namibia","nr":"Nauru","np":"Nepal","nl":"Niderlandy","nc":"Nowa Kaledonia","nz":"Nowa Zelandia","ni":"Nikaragua","ne":"Niger","ng":"Nigeria","kp":"Północna Korea","no":"Norwegia","om":"Oman","pk":"Pakistan","pw":"Palau","ps":"Palestyna","pa":"Panama","pg":"Papua Nowa Gwinea","py":"Paragwaj","pe":"Peru","ph":"Filipiny","pl":"Polska","pt":"Portugalia","pr":"Portoryko","qa":"Katar","re":"Reunion","ro":"Rumunia","ru":"Rosja","rw":"Rwanda","kn":"Saint Kitts i Nevis","lc":"Saint Lucia","vc":"Saint Vincent i Grenadyny","ws":"Samoa","sm":"San Marino","st":"Wyspy Św.Tomasza i Książęca","sa":"Arabia Saudyjska","sn":"Senegal","rs":"Serbia","sc":"Seszele","sl":"Sierra Leone","sg":"Singapur","sk":"Słowacja","si":"Słowenia","sb":"Wyspy Salomona","so":"Somalia","za":"Republika Południowej Afryki","kr":"Południowa Korei","ss":"Sudan","es":"Hiszpania","lk":"Sri Lanka","sd":"Sudan","sr":"Surinam","sz":"Suazi","se":"Szwecja","ch":"Szwajcaria","sy":"Syria","tw":"Tajwan","tj":"Tadżykistan","tz":"Tanzania","th":"Tajlandia","tl":"Timor Wschodni","tg":"Togo","to":"Tonga","tt":"Trynidad i Tobago","tn":"Tunezja","tr":"Turcja","tm":"Turkmenistan","tv":"Tuvalu","ug":"Uganda","ua":"Ukraina","ae":"Zjednoczone Emiraty Arabskie","gb":"Wielka Brytania","us":"Stany Zjednoczone Ameryki","uy":"Urugwaj","uz":"Uzbekistan","vu":"Vanuatu","va":"Watykan","ve":"Wenezuela","vn":"Wietnam","ye":"Jemen","zm":"Zambia","zw":"Zimbabwe"} -------------------------------------------------------------------------------- /lang/pt.json: -------------------------------------------------------------------------------- 1 | {"af":"Afeganistão","za":"África do Sul","al":"Albânia","de":"Alemanha","ad":"Andorra","ao":"Angola","ai":"Anguila","aq":"Antártida","ag":"Antígua e Barbuda","sa":"Arábia Saudita","dz":"Argélia","ar":"Argentina","am":"Armênia","aw":"Aruba","au":"Austrália","at":"Áustria","az":"Azerbaijão","bs":"Bahamas","bh":"Bahrein","bd":"Bangladesh","bb":"Barbados","be":"Bélgica","bz":"Belize","bj":"Benin","bm":"Bermudas","by":"Bielorrússia","bo":"Bolívia","ba":"Bósnia e Herzegovina","bw":"Botsuana","br":"Brasil","bn":"Brunei","bg":"Bulgária","bf":"Burquina Faso","bi":"Burundi","bt":"Butão","cv":"Cabo Verde","cm":"Camarões","kh":"Camboja","ca":"Canadá","qa":"Catar","kz":"Cazaquistão","ea":"Ceuta e Melilla","td":"Chade","cl":"Chile","cn":"China","cy":"Chipre","va":"Cidade do Vaticano","co":"Colômbia","km":"Comores","cd":"Congo - Kinshasa","kp":"Coreia do Norte","kr":"Coreia do Sul","ci":"Costa do Marfim","cr":"Costa Rica","hr":"Croácia","cu":"Cuba","cw":"Curaçao","dg":"Diego Garcia","dk":"Dinamarca","dj":"Djibuti","dm":"Dominica","eg":"Egito","sv":"El Salvador","ae":"Emirados Árabes Unidos","ec":"Equador","er":"Eritreia","sk":"Eslováquia","si":"Eslovênia","es":"Espanha","us":"Estados Unidos","ee":"Estônia","et":"Etiópia","fj":"Fiji","ph":"Filipinas","fi":"Finlândia","fr":"França","ga":"Gabão","gm":"Gâmbia","gh":"Gana","ge":"Geórgia","gi":"Gibraltar","gd":"Granada","gr":"Grécia","gl":"Groenlândia","gp":"Guadalupe","gu":"Guam","gt":"Guatemala","gg":"Guernsey","gy":"Guiana","gf":"Guiana Francesa","gn":"Guiné","gq":"Guiné Equatorial","gw":"Guiné-Bissau","ht":"Haiti","hn":"Honduras","hk":"Hong Kong, RAE da China","hu":"Hungria","ye":"Iêmen","cx":"Ilha Christmas","ac":"Ilha de Ascensão","im":"Ilha de Man","nf":"Ilha Norfolk","ax":"Ilhas Aland","ic":"Ilhas Canárias","ky":"Ilhas Cayman","cc":"Ilhas Cocos","ck":"Ilhas Cook","fo":"Ilhas Faroe","gs":"Ilhas Geórgia do Sul e Sandwich do Sul","fk":"Ilhas Malvinas","mp":"Ilhas Marianas do Norte","mh":"Ilhas Marshall","um":"Ilhas Menores Distantes dos EUA","pn":"Ilhas Pitcairn","sb":"Ilhas Salomão","tc":"Ilhas Turcas e Caicos","vi":"Ilhas Virgens Americanas","vg":"Ilhas Virgens Britânicas","in":"Índia","id":"Indonésia","ir":"Irã","iq":"Iraque","ie":"Irlanda","is":"Islândia","il":"Israel","it":"Itália","jm":"Jamaica","jp":"Japão","je":"Jersey","jo":"Jordânia","xk":"Kosovo","kw":"Kuwait","la":"Laos","ls":"Lesoto","lv":"Letônia","lb":"Líbano","lr":"Libéria","ly":"Líbia","li":"Liechtenstein","lt":"Lituânia","lu":"Luxemburgo","mo":"Macau, RAE da China","mk":"Macedônia do Norte","mg":"Madagascar","my":"Malásia","mw":"Malaui","mv":"Maldivas","ml":"Mali","mt":"Malta","ma":"Marrocos","mq":"Martinica","mu":"Maurício","mr":"Mauritânia","yt":"Mayotte","mx":"México","mm":"Mianmar","fm":"Micronésia","mz":"Moçambique","md":"Moldova","mc":"Mônaco","mn":"Mongólia","me":"Montenegro","ms":"Montserrat","na":"Namíbia","nr":"Nauru","np":"Nepal","ni":"Nicarágua","ne":"Níger","ng":"Nigéria","nu":"Niue","no":"Noruega","nc":"Nova Caledônia","nz":"Nova Zelândia","om":"Omã","nl":"Países Baixos","bq":"Países Baixos Caribenhos","pw":"Palau","pa":"Panamá","pg":"Papua-Nova Guiné","pk":"Paquistão","py":"Paraguai","pe":"Peru","pf":"Polinésia Francesa","pl":"Polônia","pr":"Porto Rico","pt":"Portugal","ke":"Quênia","kg":"Quirguistão","ki":"Quiribati","gb":"Reino Unido","cf":"República Centro-Africana","cg":"República do Congo","do":"República Dominicana","re":"Reunião","ro":"Romênia","rw":"Ruanda","ru":"Rússia","eh":"Saara Ocidental","ws":"Samoa","as":"Samoa Americana","sm":"San Marino","sh":"Santa Helena","lc":"Santa Lúcia","bl":"São Bartolomeu","kn":"São Cristóvão e Névis","mf":"São Martinho","pm":"São Pedro e Miquelão","st":"São Tomé e Príncipe","vc":"São Vicente e Granadinas","sc":"Seicheles","sn":"Senegal","sl":"Serra Leoa","rs":"Sérvia","sg":"Singapura","sx":"Sint Maarten","sy":"Síria","so":"Somália","lk":"Sri Lanka","sz":"Suazilândia","sd":"Sudão","ss":"Sudão do Sul","se":"Suécia","ch":"Suíça","sr":"Suriname","sj":"Svalbard e Jan Mayen","tj":"Tadjiquistão","th":"Tailândia","tw":"Taiwan","tz":"Tanzânia","cz":"Tchéquia","io":"Território Britânico do Oceano Índico","tf":"Territórios Franceses do Sul","ps":"Territórios palestinos","tl":"Timor-Leste","tg":"Togo","tk":"Tokelau","to":"Tonga","tt":"Trinidad e Tobago","ta":"Tristão da Cunha","tn":"Tunísia","tm":"Turcomenistão","tr":"Turquia","tv":"Tuvalu","ua":"Ucrânia","ug":"Uganda","uy":"Uruguai","uz":"Uzbequistão","vu":"Vanuatu","ve":"Venezuela","vn":"Vietnã","wf":"Wallis e Futuna","zm":"Zâmbia","zw":"Zimbábue"} -------------------------------------------------------------------------------- /lang/ru.json: -------------------------------------------------------------------------------- 1 | {"au":"Австралия","at":"Австрия","az":"Азербайджан","ax":"Аландские о-ва","al":"Албания","dz":"Алжир","as":"Американское Самоа","ai":"Ангилья","ao":"Ангола","ad":"Андорра","aq":"Антарктида","ag":"Антигуа и Барбуда","ar":"Аргентина","am":"Армения","aw":"Аруба","af":"Афганистан","bs":"Багамы","bd":"Бангладеш","bb":"Барбадос","bh":"Бахрейн","by":"Беларусь","bz":"Белиз","be":"Бельгия","bj":"Бенин","bm":"Бермудские о-ва","bg":"Болгария","bo":"Боливия","bq":"Бонэйр, Синт-Эстатиус и Саба","ba":"Босния и Герцеговина","bw":"Ботсвана","br":"Бразилия","io":"Британская территория в Индийском океане","bn":"Бруней-Даруссалам","bf":"Буркина-Фасо","bi":"Бурунди","bt":"Бутан","vu":"Вануату","va":"Ватикан","gb":"Великобритания","hu":"Венгрия","ve":"Венесуэла","vg":"Виргинские о-ва","vi":"Виргинские о-ва","um":"Внешние малые о-ва","tl":"Восточный Тимор","vn":"Вьетнам","ga":"Габон","ht":"Гаити","gy":"Гайана","gm":"Гамбия","gh":"Гана","gp":"Гваделупа","gt":"Гватемала","gn":"Гвинея","gw":"Гвинея-Бисау","de":"Германия","gg":"Гернси","gi":"Гибралтар","hn":"Гондурас","hk":"Гонконг","gd":"Гренада","gl":"Гренландия","gr":"Греция","ge":"Грузия","gu":"Гуам","dk":"Дания","je":"Джерси","dj":"Джибути","dg":"Диего-Гарсия","dm":"Доминика","do":"Доминиканская Республика","eg":"Египет","zm":"Замбия","eh":"Западная Сахара","zw":"Зимбабве","il":"Израиль","in":"Индия","id":"Индонезия","jo":"Иордания","iq":"Ирак","ir":"Иран","ie":"Ирландия","is":"Исландия","es":"Испания","it":"Италия","ye":"Йемен","cv":"Кабо-Верде","kz":"Казахстан","kh":"Камбоджа","cm":"Камерун","ca":"Канада","ic":"Канарские о-ва","qa":"Катар","ke":"Кения","cy":"Кипр","kg":"Киргизия","ki":"Кирибати","cn":"Китай","kp":"КНДР","cc":"Кокосовые о-ва","co":"Колумбия","km":"Коморы","cg":"Конго - Браззавиль","cd":"Конго - Киншаса","xk":"Косово","cr":"Коста-Рика","ci":"Кот-д’Ивуар","cu":"Куба","kw":"Кувейт","cw":"Кюрасао","la":"Лаос","lv":"Латвия","ls":"Лесото","lr":"Либерия","lb":"Ливан","ly":"Ливия","lt":"Литва","li":"Лихтенштейн","lu":"Люксембург","mu":"Маврикий","mr":"Мавритания","mg":"Мадагаскар","yt":"Майотта","mo":"Макао","mw":"Малави","my":"Малайзия","ml":"Мали","mv":"Мальдивы","mt":"Мальта","ma":"Марокко","mq":"Мартиника","mh":"Маршалловы Острова","mx":"Мексика","mz":"Мозамбик","md":"Молдова","mc":"Монако","mn":"Монголия","ms":"Монтсеррат","mm":"Мьянма","na":"Намибия","nr":"Науру","np":"Непал","ne":"Нигер","ng":"Нигерия","nl":"Нидерланды","ni":"Никарагуа","nu":"Ниуэ","nz":"Новая Зеландия","nc":"Новая Каледония","no":"Норвегия","ac":"о-в Вознесения","im":"о-в Мэн","nf":"о-в Норфолк","cx":"о-в Рождества","sh":"о-в Св. Елены","pn":"о-ва Питкэрн","tc":"о-ва Тёркс и Кайкос","ae":"ОАЭ","om":"Оман","ky":"Острова Кайман","ck":"Острова Кука","pk":"Пакистан","pw":"Палау","ps":"Палестинские территории","pa":"Панама","pg":"Папуа — Новая Гвинея","py":"Парагвай","pe":"Перу","pl":"Польша","pt":"Португалия","pr":"Пуэрто-Рико","kr":"Республика Корея","re":"Реюньон","ru":"Россия","rw":"Руанда","ro":"Румыния","sv":"Сальвадор","ws":"Самоа","sm":"Сан-Марино","st":"Сан-Томе и Принсипи","sa":"Саудовская Аравия","mk":"Северная Македония","mp":"Северные Марианские о-ва","sc":"Сейшельские Острова","bl":"Сен-Бартелеми","mf":"Сен-Мартен","pm":"Сен-Пьер и Микелон","sn":"Сенегал","vc":"Сент-Винсент и Гренадины","kn":"Сент-Китс и Невис","lc":"Сент-Люсия","rs":"Сербия","ea":"Сеута и Мелилья","sg":"Сингапур","sx":"Синт-Мартен","sy":"Сирия","sk":"Словакия","si":"Словения","us":"Соединенные Штаты","sb":"Соломоновы Острова","so":"Сомали","sd":"Судан","sr":"Суринам","sl":"Сьерра-Леоне","tj":"Таджикистан","th":"Таиланд","tw":"Тайвань","tz":"Танзания","tg":"Того","tk":"Токелау","to":"Тонга","tt":"Тринидад и Тобаго","ta":"Тристан-да-Кунья","tv":"Тувалу","tn":"Тунис","tm":"Туркменистан","tr":"Турция","ug":"Уганда","uz":"Узбекистан","ua":"Украина","wf":"Уоллис и Футуна","uy":"Уругвай","fo":"Фарерские о-ва","fm":"Федеративные Штаты Микронезии","fj":"Фиджи","ph":"Филиппины","fi":"Финляндия","fk":"Фолклендские о-ва","fr":"Франция","gf":"Французская Гвиана","pf":"Французская Полинезия","tf":"Французские Южные территории","hr":"Хорватия","cf":"Центрально-Африканская Республика","td":"Чад","me":"Черногория","cz":"Чехия","cl":"Чили","ch":"Швейцария","se":"Швеция","sj":"Шпицберген и Ян-Майен","lk":"Шри-Ланка","ec":"Эквадор","gq":"Экваториальная Гвинея","er":"Эритрея","sz":"Эсватини","ee":"Эстония","et":"Эфиопия","gs":"Южная Георгия и Южные Сандвичевы о-ва","za":"Южно-Африканская Республика","ss":"Южный Судан","jm":"Ямайка","jp":"Япония"} 2 | -------------------------------------------------------------------------------- /lang/tr.json: -------------------------------------------------------------------------------- 1 | {"af":"Afganistan","ax":"Aland Adaları","de":"Almanya","us":"Amerika Birleşik Devletleri","as":"Amerikan Samoası","ad":"Andorra","ao":"Angora","ai":"Anguilla","aq":"Antartik","ag":"Antigua ve Barbuda","ar":"Arjantin","al":"Arnavutluk","aw":"Aruba","au":"Avustralya","at":"Avusturya","az":"Azerbeycan","mf":"Aziz Martin","bs":"Bahamalar","bh":"Bahreyn","bd":"Bangladeş","bb":"Barbados","eh":"Batı Sahra","by":"Belarus","be":"Belçika","bz":"Belize","bj":"Benin","bm":"Bermuda","ae":"Birleşik Arap Emirlikleri","gb":"Birleşik Krallık","bo":"Bolivya","ba":"Bosna Hersek","bw":"Botsvana","br":"Brezilya","io":"Britanya Hint Okyanusu Toprakları","bn":"Brunei","md":"Buğdan","bg":"Bulgaristan","bf":"Burkina Faso","bi":"Burundi","bt":"Butan","td":"Çad","ky":"Cayman Adaları","gi":"Cebelitarık","cz":"Çekya (Çek Cumhuriyeti)","ea":"Ceuta ve Melilla","dz":"Cezayir","dj":"Cibuti","cn":"Çin","cc":"Cocos Adaları","ck":"Cook Adaları","cw":"Curacao","dk":"Danimarka","dg":"Diego Garcia Adası","do":"Dominik Cumhuriyeti","dm":"Dominika","ec":"Ekvador","gq":"Ekvator Ginesi","id":"Endonezya","er":"Eritre","am":"Ermenistan","ee":"Estonya","et":"Etiyopya","fk":"Falkland Adaları","ma":"Fas","fj":"Fiji","ci":"Fildişi Sahili","ph":"Filipinler","ps":"Filistin","fi":"Finlandiya","fr":"Fransa","gf":"Fransız Guyanası","pf":"Fransız Polinezyası","ga":"Gabon","gm":"Gambiya","gh":"Gana","gn":"Gine","gw":"Gine-Bissau","gd":"Grenada","gl":"Grönland","gp":"Guadeloupe","gu":"Guam","gt":"Guatemala","gg":"Guernsey","za":"Güney Afrika","gs":"Güney Georgia ve Güney Sandwich Adaları","kr":"Güney Kore","ss":"Güney Sudan","ge":"Gürcistan","gy":"Guyana","ht":"Haiti","in":"Hindistan","hr":"Hırvatistan","nl":"Hollanda","hn":"Honduras","hk":"Hong Kong","iq":"Irak","ir":"İran","ie":"İrlanda","fo":"Isole Fear Adaları","es":"ispanya","il":"İsrail","se":"İsveç","ch":"İsviçre","it":"İtalya","is":"İzlanda","jm":"Jamaika","jp":"Japonya","je":"Jersey Adası","kh":"Kamboçya","cm":"Kamerun","ca":"Kanada","ic":"Kanarya Adaları","me":"Karadağ","bq":"Karayip Hollandası","qa":"Katar","kz":"Kazakistan","ke":"Kenya","ki":"Kiribati","cy":"Kıbrıs","kg":"Kırgızistan","co":"Kolombiya","km":"Komorlar","cd":"Kongo","cg":"Kongo","xk":"Kosova","cr":"Kosta Rika","cu":"Küba","kw":"Kuveyt","kp":"Kuzey Kore","mp":"Kuzey Mariana Adaları","la":"Laos","ls":"lesotho","lv":"Letonya","lr":"Liberya","ly":"Libya","li":"Lihtenştayn","lt":"Litvanya","lb":"Lübnan","lu":"Lüksemburg","hu":"Macaristan","mg":"Madagaskar","mo":"Makao","mk":"Makedonya","mw":"Malawi","mv":"Maldivler","my":"Malezya","ml":"Mali","mt":"Malta","im":"Man Adası","mh":"Marşal Adaları","mq":"Martinik","mu":"Mauritius","mx":"Meksika","fm":"Mikronezya","eg":"Mısır","mn":"Moğolistan","mc":"Monako","ms":"Montserrat","mr":"Moritanya","mz":"Mozambik","mm":"Myanmar","na":"Namibya","nr":"Nauru","np":"Nepal","ne":"Nijer","ng":"Nijerya","ni":"Nikaragua","nu":"Niue Adası","cx":"Noel Adası","nf":"Norfolk Adası","no":"Norveç","cf":"Orta Afrika Cumhuriyeti","uz":"Özbekistan","pk":"Pakistan","pw":"Palau","pa":"Panama","pg":"Papua Yeni Gine","py":"Paraguay","pe":"Peru","pn":"Pitcairn Adaları","pl":"Polonya","pt":"Portekiz","pr":"Porto Riko","ro":"Romanya","rw":"Ruanda","ru":"Rusya","sh":"Saint Helena","kn":"Saint Kitts ve Nevis","lc":"Saint Lucia","pm":"Saint Pierre ve Miquelon","vc":"Saint Vincent ve Grenadinler","bl":"Saint-Barthelemy","sv":"Salvador","ws":"Samoa","sm":"San Marino","st":"Sao Tome ve Principe","sn":"Senegal","sc":"Seyşeller","sl":"Sierra Leone","cl":"Şili","sg":"Singapur","rs":"Sırbistan","sk":"Slovakya","si":"Slovenya","sb":"Solomon Adaları","so":"Somali","lk":"Sri Lanka","sd":"Sudan","sr":"Surinam","sy":"Suriye","sa":"Suudi Arabistan","sj":"Svalbard","sz":"Svaziland","tj":"Tacikistan","tz":"Tanzanya","th":"Tayland","tw":"Tayvan","tl":"Timor-Leste","tg":"Togo","to":"Tonga","re":"Réunion","tt":"Trinidad ve Tobago","tn":"Tunus","tr":"Türkiye","tm":"Türkmenistan","tv":"Tuvalu","ug":"Uganda","ua":"Ukrayna","om":"Umman","jo":"Ürdün","uy":"Uruguay","vu":"Vanuatu","va":"Vatikan","ve":"Venezuela","vn":"Vietnam","ye":"Yemen","nc":"Yeni Kaledonya","nz":"Yeni Zelanda","cv":"Yeşil Burun Adaları","ac":"Yükselme Adası","gr":"Yunanistan","zm":"Zambiya","zw":"Zimbabve"} 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-phone-input-2", 3 | "version": "2.15.1", 4 | "description": "A react component to format phone numbers", 5 | "main": "lib/lib.js", 6 | "typings": "index.d.ts", 7 | "scripts": { 8 | "test": "jest", 9 | "start": "TARGET=dev_js NODE_ENV=development webpack-dev-server --progress", 10 | "start:css": "TARGET=dev_css NODE_ENV=development webpack-dev-server --progress", 11 | "build": "export SET NODE_OPTIONS=--openssl-legacy-provider && npm run build:js && npm run build:css", 12 | "build:js": "TARGET=build_js NODE_ENV=production webpack -p --progress", 13 | "build:css": "TARGET=build_css NODE_ENV=production webpack -p --progress && rm ./main.js", 14 | "prepublishOnly": "npm run build", 15 | "analyze": "TARGET=analyze NODE_ENV=production webpack -p --progress" 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "git+https://github.com/bl00mber/react-phone-input-2.git" 20 | }, 21 | "keywords": [ 22 | "react", 23 | "phone", 24 | "format", 25 | "number", 26 | "input", 27 | "telephone", 28 | "javascript", 29 | "international", 30 | "tel", 31 | "localized", 32 | "material", 33 | "bootstrap", 34 | "i18n" 35 | ], 36 | "files": [ 37 | "lang", 38 | "lib", 39 | "LICENSE", 40 | "README.md", 41 | "index.d.ts" 42 | ], 43 | "author": "Nick Reiley (https://github.com/bl00mber)", 44 | "contributors": [ 45 | "Raza Gill (https://github.com/razagill)" 46 | ], 47 | "license": "MIT", 48 | "bugs": { 49 | "url": "https://github.com/bl00mber/react-phone-input-2/issues" 50 | }, 51 | "homepage": "https://github.com/bl00mber/react-phone-input-2", 52 | "jest": { 53 | "moduleNameMapper": { 54 | "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2)$": "/test/__mocks__/fileMock.js", 55 | "\\.(css|less|stylus|scss)$": "/test/__mocks__/styleMock.js" 56 | }, 57 | "globals": { 58 | "__DEV__": false 59 | } 60 | }, 61 | "devDependencies": { 62 | "@babel/core": "^7.3.3", 63 | "babel-loader": "^8.0.5", 64 | "babel-preset-react-app": "^7.0.1", 65 | "css-loader": "^2.1.0", 66 | "extract-loader": "^3.1.0", 67 | "file-loader": "^5.0.2", 68 | "jest": "^24.7.0", 69 | "less": "^3.9.0", 70 | "less-loader": "^4.1.0", 71 | "react": "^17.0.2", 72 | "react-dom": "^17.0.2", 73 | "react-hot-loader": "^4.6.5", 74 | "react-testing-library": "^6.0.4", 75 | "style-loader": "^0.23.1", 76 | "url-loader": "^1.1.2", 77 | "webpack": "^4.29.5", 78 | "webpack-bundle-analyzer": "^3.0.4", 79 | "webpack-cli": "^3.2.3", 80 | "webpack-dev-server": "^3.1.14", 81 | "webpack-merge": "^4.2.1" 82 | }, 83 | "peerDependencies": { 84 | "react": "^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0", 85 | "react-dom": "^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0" 86 | }, 87 | "dependencies": { 88 | "classnames": "^2.2.6", 89 | "lodash.debounce": "^4.0.8", 90 | "lodash.memoize": "^4.1.2", 91 | "lodash.reduce": "^4.6.0", 92 | "lodash.startswith": "^4.2.1", 93 | "prop-types": "^15.7.2" 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /src/CountryData.js: -------------------------------------------------------------------------------- 1 | import _rawCountries from './rawCountries' 2 | import _rawTerritories from './rawTerritories' 3 | 4 | function getMask(prefix, dialCode, predefinedMask, defaultMask, alwaysDefaultMask) { 5 | if (!predefinedMask || alwaysDefaultMask) { 6 | return prefix+''.padEnd(dialCode.length,'.')+' '+defaultMask; 7 | } else { 8 | return prefix+''.padEnd(dialCode.length,'.')+' '+predefinedMask; 9 | } 10 | } 11 | 12 | // enableAreaCodes: boolean || array of iso2 codes 13 | function initCountries(countries, enableAreaCodes, prefix, defaultMask, alwaysDefaultMask) { 14 | let hiddenAreaCodes = []; 15 | 16 | let enableAllCodes; 17 | if (enableAreaCodes === true) { enableAllCodes = true } 18 | else { enableAllCodes = false } 19 | 20 | const initializedCountries = [].concat(...countries.map((country) => { 21 | const countryItem = { 22 | name: country[0], 23 | regions: country[1], 24 | iso2: country[2], 25 | countryCode: country[3], 26 | dialCode: country[3], 27 | format: getMask(prefix, country[3], country[4], defaultMask, alwaysDefaultMask), 28 | priority: country[5] || 0, 29 | }; 30 | 31 | const areaItems = []; 32 | 33 | country[6] && 34 | country[6].map((areaCode) => { 35 | const areaItem = {...countryItem}; 36 | areaItem.dialCode = country[3] + areaCode; 37 | areaItem.isAreaCode = true; 38 | areaItem.areaCodeLength = areaCode.length; 39 | 40 | areaItems.push(areaItem); 41 | }); 42 | 43 | if (areaItems.length > 0) { 44 | countryItem.mainCode = true; 45 | if (enableAllCodes || (enableAreaCodes.constructor.name === 'Array' && enableAreaCodes.includes(country[2]))) { 46 | countryItem.hasAreaCodes = true; 47 | return [countryItem, ...areaItems]; 48 | } else { 49 | hiddenAreaCodes = hiddenAreaCodes.concat(areaItems); 50 | return [countryItem]; 51 | } 52 | } else { 53 | return [countryItem]; 54 | } 55 | })); 56 | 57 | return [initializedCountries, hiddenAreaCodes] 58 | } 59 | 60 | 61 | function extendUserContent(userContent, contentItemIndex, extendingObject, firstExtension) { 62 | if (extendingObject === null) return; 63 | 64 | const keys = Object.keys(extendingObject) 65 | const values = Object.values(extendingObject) 66 | 67 | keys.forEach((iso2, index) => { 68 | if (firstExtension) { // masks 69 | return userContent.push([iso2, values[index]]) 70 | } 71 | 72 | const countryIndex = userContent.findIndex(arr => arr[0] === iso2); 73 | if (countryIndex === -1) { 74 | const newUserContent = [iso2] 75 | newUserContent[contentItemIndex] = values[index] 76 | userContent.push(newUserContent) 77 | } else { 78 | userContent[countryIndex][contentItemIndex] = values[index] 79 | } 80 | }) 81 | } 82 | 83 | 84 | function initUserContent(masks, priority, areaCodes) { 85 | let userContent = []; 86 | extendUserContent(userContent, 1, masks, true) 87 | extendUserContent(userContent, 3, priority) 88 | extendUserContent(userContent, 2, areaCodes) 89 | return userContent; 90 | } 91 | 92 | 93 | function extendRawCountries(countries, userContent) { 94 | if (userContent.length === 0) return countries; 95 | 96 | // userContent index -> rawCountries index of country array to extend 97 | // [iso2 (0 -> 2), mask (1 -> 4), priority (3 -> 5), areaCodes (2 -> 6)] 98 | 99 | return countries.map(o => { 100 | const userContentIndex = userContent.findIndex(arr => arr[0] === o[2]); // find by iso2 101 | if (userContentIndex === -1) return o; // if iso2 not in userContent, return source country object 102 | const userContentCountry = userContent[userContentIndex]; 103 | if (userContentCountry[1]) o[4] = userContentCountry[1]; // mask 104 | if (userContentCountry[3]) o[5] = userContentCountry[3]; // priority 105 | if (userContentCountry[2]) o[6] = userContentCountry[2]; // areaCodes 106 | return o; 107 | }) 108 | } 109 | 110 | 111 | export default class CountryData { 112 | constructor ( 113 | enableAreaCodes, enableTerritories, regions, 114 | onlyCountries, preferredCountries, excludeCountries, preserveOrder, 115 | masks, priority, areaCodes, localization, 116 | prefix, defaultMask, alwaysDefaultMask, 117 | ) { 118 | const userContent = initUserContent(masks, priority, areaCodes) 119 | const rawCountries = extendRawCountries(JSON.parse(JSON.stringify(_rawCountries)), userContent) 120 | const rawTerritories = extendRawCountries(JSON.parse(JSON.stringify(_rawTerritories)), userContent) 121 | 122 | let [ initializedCountries, hiddenAreaCodes ] = initCountries(rawCountries, enableAreaCodes, prefix, defaultMask, alwaysDefaultMask); 123 | if (enableTerritories) { 124 | let [ initializedTerritories, hiddenAreaCodes ] = initCountries(rawTerritories, enableAreaCodes, prefix, defaultMask, alwaysDefaultMask); 125 | initializedCountries = this.sortTerritories(initializedTerritories, initializedCountries); 126 | } 127 | if (regions) initializedCountries = this.filterRegions(regions, initializedCountries); 128 | 129 | this.onlyCountries = this.localizeCountries( 130 | this.excludeCountries(this.getFilteredCountryList(onlyCountries, initializedCountries, preserveOrder.includes('onlyCountries')), 131 | excludeCountries), 132 | localization, 133 | preserveOrder.includes('onlyCountries') 134 | ); 135 | 136 | this.preferredCountries = preferredCountries.length === 0 ? [] : 137 | this.localizeCountries( 138 | this.getFilteredCountryList(preferredCountries, initializedCountries, preserveOrder.includes('preferredCountries')), 139 | localization, 140 | preserveOrder.includes('preferredCountries') 141 | ); 142 | 143 | // apply filters to hiddenAreaCodes 144 | this.hiddenAreaCodes = this.excludeCountries( 145 | this.getFilteredCountryList(onlyCountries, hiddenAreaCodes), 146 | excludeCountries 147 | ); 148 | } 149 | 150 | filterRegions = (regions, countries) => { 151 | if (typeof regions === 'string') { 152 | const region = regions; 153 | return countries.filter((country) => { 154 | return country.regions.some((element) => { 155 | return element === region; 156 | }); 157 | }); 158 | } 159 | 160 | return countries.filter((country) => { 161 | const matches = regions.map((region) => { 162 | return country.regions.some((element) => { 163 | return element === region; 164 | }); 165 | }); 166 | return matches.some(el => el); 167 | }); 168 | } 169 | 170 | sortTerritories = (initializedTerritories, initializedCountries) => { 171 | const fullCountryList = [...initializedTerritories, ...initializedCountries]; 172 | fullCountryList.sort(function(a, b){ 173 | if(a.name < b.name) { return -1; } 174 | if(a.name > b.name) { return 1; } 175 | return 0; 176 | }); 177 | return fullCountryList; 178 | } 179 | 180 | getFilteredCountryList = (countryCodes, sourceCountryList, preserveOrder) => { 181 | if (countryCodes.length === 0) return sourceCountryList; 182 | 183 | let filteredCountries; 184 | if (preserveOrder) { 185 | // filter using iso2 user-defined order 186 | filteredCountries = countryCodes.map(countryCode => { 187 | const country = sourceCountryList.find(country => country.iso2 === countryCode); 188 | if (country) return country; 189 | }).filter(country => country); // remove any not found 190 | } 191 | else { 192 | // filter using alphabetical order 193 | filteredCountries = sourceCountryList.filter((country) => { 194 | return countryCodes.some((element) => { 195 | return element === country.iso2; 196 | }); 197 | }); 198 | } 199 | 200 | return filteredCountries; 201 | } 202 | 203 | localizeCountries = (countries, localization, preserveOrder) => { 204 | for (let i = 0; i < countries.length; i++) { 205 | if (localization[countries[i].iso2] !== undefined) { 206 | countries[i].localName = localization[countries[i].iso2]; 207 | } 208 | else if (localization[countries[i].name] !== undefined) { 209 | countries[i].localName = localization[countries[i].name]; 210 | } 211 | } 212 | if (!preserveOrder) { 213 | countries.sort(function(a, b){ 214 | if(a.localName < b.localName) { return -1; } 215 | if(a.localName > b.localName) { return 1; } 216 | return 0; 217 | }); 218 | } 219 | return countries; 220 | } 221 | 222 | getCustomAreas = (country, areaCodes) => { 223 | let customAreas = []; 224 | for (let i = 0; i < areaCodes.length; i++) { 225 | let newCountry = JSON.parse(JSON.stringify(country)); 226 | newCountry.dialCode += areaCodes[i]; 227 | customAreas.push(newCountry); 228 | } 229 | return customAreas; 230 | } 231 | 232 | excludeCountries = (onlyCountries, excludedCountries) => { 233 | if (excludedCountries.length === 0) { 234 | return onlyCountries; 235 | } else { 236 | return onlyCountries.filter((country) => { 237 | return !excludedCountries.includes(country.iso2); 238 | }); 239 | } 240 | } 241 | } 242 | -------------------------------------------------------------------------------- /src/rawCountries.js: -------------------------------------------------------------------------------- 1 | // Country model: 2 | // [ 3 | // Country name, 4 | // Regions, 5 | // iso2 code, 6 | // International dial code, 7 | // Format (if available), 8 | // Order priority (if >1 country with same dial code), 9 | // Area codes (if >1 country with same dial code) 10 | // ] 11 | // 12 | // Regions: 13 | // ['america', 'europe', 'asia', 'oceania', 'africa'] 14 | // 15 | // Sub-regions: 16 | // ['north-america', 'south-america', 'central-america', 'carribean', 17 | // 'eu-union', 'ex-ussr', 'ex-yugos', 'baltic', 'middle-east', 'north-africa'] 18 | 19 | const rawCountries = [ 20 | [ 21 | 'Afghanistan', 22 | ['asia'], 23 | 'af', 24 | '93' 25 | ], 26 | [ 27 | 'Albania', 28 | ['europe'], 29 | 'al', 30 | '355' 31 | ], 32 | [ 33 | 'Algeria', 34 | ['africa', 'north-africa'], 35 | 'dz', 36 | '213' 37 | ], 38 | [ 39 | 'Andorra', 40 | ['europe'], 41 | 'ad', 42 | '376' 43 | ], 44 | [ 45 | 'Angola', 46 | ['africa'], 47 | 'ao', 48 | '244' 49 | ], 50 | [ 51 | 'Antigua and Barbuda', 52 | ['america', 'carribean'], 53 | 'ag', 54 | '1268' 55 | ], 56 | [ 57 | 'Argentina', 58 | ['america', 'south-america'], 59 | 'ar', 60 | '54', 61 | '(..) ........', 62 | 0, 63 | ['11', '221', '223', '261', '264', '2652', '280', '2905', '291', '2920', '2966', '299', '341', '342', '343', '351', '376', '379', '381', '3833', '385', '387', '388' ] 64 | ], 65 | [ 66 | 'Armenia', 67 | ['asia', 'ex-ussr'], 68 | 'am', 69 | '374', 70 | '.. ......' 71 | ], 72 | [ 73 | 'Aruba', 74 | ['america', 'carribean'], 75 | 'aw', 76 | '297' 77 | ], 78 | [ 79 | 'Australia', 80 | ['oceania'], 81 | 'au', 82 | '61', 83 | '(..) .... ....', 84 | 0, ['2', '3', '4', '7', '8', '02', '03', '04', '07', '08'] 85 | ], 86 | [ 87 | 'Austria', 88 | ['europe', 'eu-union'], 89 | 'at', 90 | '43' 91 | ], 92 | [ 93 | 'Azerbaijan', 94 | ['asia', 'ex-ussr'], 95 | 'az', 96 | '994', 97 | '(..) ... .. ..' 98 | ], 99 | [ 100 | 'Bahamas', 101 | ['america', 'carribean'], 102 | 'bs', 103 | '1242' 104 | ], 105 | [ 106 | 'Bahrain', 107 | ['middle-east'], 108 | 'bh', 109 | '973' 110 | ], 111 | [ 112 | 'Bangladesh', 113 | ['asia'], 114 | 'bd', 115 | '880' 116 | ], 117 | [ 118 | 'Barbados', 119 | ['america', 'carribean'], 120 | 'bb', 121 | '1246' 122 | ], 123 | [ 124 | 'Belarus', 125 | ['europe', 'ex-ussr'], 126 | 'by', 127 | '375', 128 | '(..) ... .. ..' 129 | ], 130 | [ 131 | 'Belgium', 132 | ['europe', 'eu-union'], 133 | 'be', 134 | '32', 135 | '... .. .. ..' 136 | ], 137 | [ 138 | 'Belize', 139 | ['america', 'central-america'], 140 | 'bz', 141 | '501' 142 | ], 143 | [ 144 | 'Benin', 145 | ['africa'], 146 | 'bj', 147 | '229' 148 | ], 149 | [ 150 | 'Bhutan', 151 | ['asia'], 152 | 'bt', 153 | '975' 154 | ], 155 | [ 156 | 'Bolivia', 157 | ['america', 'south-america'], 158 | 'bo', 159 | '591' 160 | ], 161 | [ 162 | 'Bosnia and Herzegovina', 163 | ['europe', 'ex-yugos'], 164 | 'ba', 165 | '387' 166 | ], 167 | [ 168 | 'Botswana', 169 | ['africa'], 170 | 'bw', 171 | '267' 172 | ], 173 | [ 174 | 'Brazil', 175 | ['america', 'south-america'], 176 | 'br', 177 | '55', 178 | '(..) .........', 179 | ], 180 | [ 181 | 'British Indian Ocean Territory', 182 | ['asia'], 183 | 'io', 184 | '246' 185 | ], 186 | [ 187 | 'Brunei', 188 | ['asia'], 189 | 'bn', 190 | '673' 191 | ], 192 | [ 193 | 'Bulgaria', 194 | ['europe', 'eu-union'], 195 | 'bg', 196 | '359' 197 | ], 198 | [ 199 | 'Burkina Faso', 200 | ['africa'], 201 | 'bf', 202 | '226' 203 | ], 204 | [ 205 | 'Burundi', 206 | ['africa'], 207 | 'bi', 208 | '257' 209 | ], 210 | [ 211 | 'Cambodia', 212 | ['asia'], 213 | 'kh', 214 | '855' 215 | ], 216 | [ 217 | 'Cameroon', 218 | ['africa'], 219 | 'cm', 220 | '237' 221 | ], 222 | [ 223 | 'Canada', 224 | ['america', 'north-america'], 225 | 'ca', 226 | '1', 227 | '(...) ...-....', 228 | 1, ['204', '226', '236', '249', '250', '289', '306', '343', '365', '387', '403', '416', '418', '431', '437', '438', '450', '506', '514', '519', '548', '579', '581', '587', '604', '613', '639', '647', '672', '705', '709', '742', '778', '780', '782', '807', '819', '825', '867', '873', '902', '905'] 229 | ], 230 | [ 231 | 'Cape Verde', 232 | ['africa'], 233 | 'cv', 234 | '238' 235 | ], 236 | [ 237 | 'Caribbean Netherlands', 238 | ['america', 'carribean'], 239 | 'bq', 240 | '599', 241 | '', 242 | 1 243 | ], 244 | [ 245 | 'Central African Republic', 246 | ['africa'], 247 | 'cf', 248 | '236' 249 | ], 250 | [ 251 | 'Chad', 252 | ['africa'], 253 | 'td', 254 | '235' 255 | ], 256 | [ 257 | 'Chile', 258 | ['america', 'south-america'], 259 | 'cl', 260 | '56' 261 | ], 262 | [ 263 | 'China', 264 | ['asia'], 265 | 'cn', 266 | '86', 267 | '..-.........' 268 | ], 269 | [ 270 | 'Colombia', 271 | ['america', 'south-america'], 272 | 'co', 273 | '57', 274 | '... ... ....' 275 | ], 276 | [ 277 | 'Comoros', 278 | ['africa'], 279 | 'km', 280 | '269' 281 | ], 282 | [ 283 | 'Congo', 284 | ['africa'], 285 | 'cd', 286 | '243' 287 | ], 288 | [ 289 | 'Congo', 290 | ['africa'], 291 | 'cg', 292 | '242' 293 | ], 294 | [ 295 | 'Costa Rica', 296 | ['america', 'central-america'], 297 | 'cr', 298 | '506', 299 | '....-....' 300 | ], 301 | [ 302 | 'Côte d’Ivoire', 303 | ['africa'], 304 | 'ci', 305 | '225', 306 | '.. .. .. ..' 307 | ], 308 | [ 309 | 'Croatia', 310 | ['europe', 'eu-union', 'ex-yugos'], 311 | 'hr', 312 | '385' 313 | ], 314 | [ 315 | 'Cuba', 316 | ['america', 'carribean'], 317 | 'cu', 318 | '53' 319 | ], 320 | [ 321 | 'Curaçao', 322 | ['america', 'carribean'], 323 | 'cw', 324 | '599', 325 | '', 326 | 0 327 | ], 328 | [ 329 | 'Cyprus', 330 | ['europe', 'eu-union'], 331 | 'cy', 332 | '357', 333 | '.. ......' 334 | ], 335 | [ 336 | 'Czech Republic', 337 | ['europe', 'eu-union'], 338 | 'cz', 339 | '420', 340 | '... ... ...' 341 | ], 342 | [ 343 | 'Denmark', 344 | ['europe', 'eu-union', 'baltic'], 345 | 'dk', 346 | '45', 347 | '.. .. .. ..' 348 | ], 349 | [ 350 | 'Djibouti', 351 | ['africa'], 352 | 'dj', 353 | '253' 354 | ], 355 | [ 356 | 'Dominica', 357 | ['america', 'carribean'], 358 | 'dm', 359 | '1767' 360 | ], 361 | [ 362 | 'Dominican Republic', 363 | ['america', 'carribean'], 364 | 'do', 365 | '1', 366 | '', 367 | 2, ['809', '829', '849'] 368 | ], 369 | [ 370 | 'Ecuador', 371 | ['america', 'south-america'], 372 | 'ec', 373 | '593' 374 | ], 375 | [ 376 | 'Egypt', 377 | ['africa', 'north-africa'], 378 | 'eg', 379 | '20' 380 | ], 381 | [ 382 | 'El Salvador', 383 | ['america', 'central-america'], 384 | 'sv', 385 | '503', 386 | '....-....' 387 | ], 388 | [ 389 | 'Equatorial Guinea', 390 | ['africa'], 391 | 'gq', 392 | '240' 393 | ], 394 | [ 395 | 'Eritrea', 396 | ['africa'], 397 | 'er', 398 | '291' 399 | ], 400 | [ 401 | 'Estonia', 402 | ['europe', 'eu-union', 'ex-ussr', 'baltic'], 403 | 'ee', 404 | '372', 405 | '.... ......' 406 | ], 407 | [ 408 | 'Ethiopia', 409 | ['africa'], 410 | 'et', 411 | '251' 412 | ], 413 | [ 414 | 'Fiji', 415 | ['oceania'], 416 | 'fj', 417 | '679' 418 | ], 419 | [ 420 | 'Finland', 421 | ['europe', 'eu-union', 'baltic'], 422 | 'fi', 423 | '358', 424 | '.. ... .. ..' 425 | ], 426 | [ 427 | 'France', 428 | ['europe', 'eu-union'], 429 | 'fr', 430 | '33', 431 | '. .. .. .. ..' 432 | ], 433 | [ 434 | 'French Guiana', 435 | ['america', 'south-america'], 436 | 'gf', 437 | '594' 438 | ], 439 | [ 440 | 'French Polynesia', 441 | ['oceania'], 442 | 'pf', 443 | '689' 444 | ], 445 | [ 446 | 'Gabon', 447 | ['africa'], 448 | 'ga', 449 | '241' 450 | ], 451 | [ 452 | 'Gambia', 453 | ['africa'], 454 | 'gm', 455 | '220' 456 | ], 457 | [ 458 | 'Georgia', 459 | ['asia', 'ex-ussr'], 460 | 'ge', 461 | '995' 462 | ], 463 | [ 464 | 'Germany', 465 | ['europe', 'eu-union', 'baltic'], 466 | 'de', 467 | '49', 468 | '.... ........' 469 | ], 470 | [ 471 | 'Ghana', 472 | ['africa'], 473 | 'gh', 474 | '233' 475 | ], 476 | [ 477 | 'Greece', 478 | ['europe', 'eu-union'], 479 | 'gr', 480 | '30' 481 | ], 482 | [ 483 | 'Grenada', 484 | ['america', 'carribean'], 485 | 'gd', 486 | '1473' 487 | ], 488 | [ 489 | 'Guadeloupe', 490 | ['america', 'carribean'], 491 | 'gp', 492 | '590', 493 | '', 494 | 0 495 | ], 496 | [ 497 | 'Guam', 498 | ['oceania'], 499 | 'gu', 500 | '1671' 501 | ], 502 | [ 503 | 'Guatemala', 504 | ['america', 'central-america'], 505 | 'gt', 506 | '502', 507 | '....-....' 508 | ], 509 | [ 510 | 'Guinea', 511 | ['africa'], 512 | 'gn', 513 | '224' 514 | ], 515 | [ 516 | 'Guinea-Bissau', 517 | ['africa'], 518 | 'gw', 519 | '245' 520 | ], 521 | [ 522 | 'Guyana', 523 | ['america', 'south-america'], 524 | 'gy', 525 | '592' 526 | ], 527 | [ 528 | 'Haiti', 529 | ['america', 'carribean'], 530 | 'ht', 531 | '509', 532 | '....-....' 533 | ], 534 | [ 535 | 'Honduras', 536 | ['america', 'central-america'], 537 | 'hn', 538 | '504' 539 | ], 540 | [ 541 | 'Hong Kong', 542 | ['asia'], 543 | 'hk', 544 | '852', 545 | '.... ....' 546 | ], 547 | [ 548 | 'Hungary', 549 | ['europe', 'eu-union'], 550 | 'hu', 551 | '36' 552 | ], 553 | [ 554 | 'Iceland', 555 | ['europe'], 556 | 'is', 557 | '354', 558 | '... ....' 559 | ], 560 | [ 561 | 'India', 562 | ['asia'], 563 | 'in', 564 | '91', 565 | '.....-.....' 566 | ], 567 | [ 568 | 'Indonesia', 569 | ['asia'], 570 | 'id', 571 | '62' 572 | ], 573 | [ 574 | 'Iran', 575 | ['middle-east'], 576 | 'ir', 577 | '98', 578 | '... ... ....' 579 | ], 580 | [ 581 | 'Iraq', 582 | ['middle-east'], 583 | 'iq', 584 | '964' 585 | ], 586 | [ 587 | 'Ireland', 588 | ['europe', 'eu-union'], 589 | 'ie', 590 | '353', 591 | '.. .......' 592 | ], 593 | [ 594 | 'Israel', 595 | ['middle-east'], 596 | 'il', 597 | '972', 598 | '... ... ....' 599 | ], 600 | [ 601 | 'Italy', 602 | ['europe', 'eu-union'], 603 | 'it', 604 | '39', 605 | '... .......', 606 | 0 607 | ], 608 | [ 609 | 'Jamaica', 610 | ['america', 'carribean'], 611 | 'jm', 612 | '1876' 613 | ], 614 | [ 615 | 'Japan', 616 | ['asia'], 617 | 'jp', 618 | '81', 619 | '.. .... ....' 620 | ], 621 | [ 622 | 'Jordan', 623 | ['middle-east'], 624 | 'jo', 625 | '962' 626 | ], 627 | [ 628 | 'Kazakhstan', 629 | ['asia', 'ex-ussr'], 630 | 'kz', 631 | '7', 632 | '... ...-..-..', 633 | 1, ['310', '311', '312', '313', '315', '318', '321', '324', '325', '326', '327', '336', '7172', '73622'] 634 | ], 635 | [ 636 | 'Kenya', 637 | ['africa'], 638 | 'ke', 639 | '254' 640 | ], 641 | [ 642 | 'Kiribati', 643 | ['oceania'], 644 | 'ki', 645 | '686' 646 | ], 647 | [ 648 | 'Kosovo', 649 | ['europe', 'ex-yugos'], 650 | 'xk', 651 | '383' 652 | ], 653 | [ 654 | 'Kuwait', 655 | ['middle-east'], 656 | 'kw', 657 | '965' 658 | ], 659 | [ 660 | 'Kyrgyzstan', 661 | ['asia', 'ex-ussr'], 662 | 'kg', 663 | '996', 664 | '... ... ...' 665 | ], 666 | [ 667 | 'Laos', 668 | ['asia'], 669 | 'la', 670 | '856' 671 | ], 672 | [ 673 | 'Latvia', 674 | ['europe', 'eu-union', 'ex-ussr', 'baltic'], 675 | 'lv', 676 | '371', 677 | '.. ... ...' 678 | ], 679 | [ 680 | 'Lebanon', 681 | ['middle-east'], 682 | 'lb', 683 | '961' 684 | ], 685 | [ 686 | 'Lesotho', 687 | ['africa'], 688 | 'ls', 689 | '266' 690 | ], 691 | [ 692 | 'Liberia', 693 | ['africa'], 694 | 'lr', 695 | '231' 696 | ], 697 | [ 698 | 'Libya', 699 | ['africa', 'north-africa'], 700 | 'ly', 701 | '218' 702 | ], 703 | [ 704 | 'Liechtenstein', 705 | ['europe'], 706 | 'li', 707 | '423' 708 | ], 709 | [ 710 | 'Lithuania', 711 | ['europe', 'eu-union', 'ex-ussr', 'baltic'], 712 | 'lt', 713 | '370' 714 | ], 715 | [ 716 | 'Luxembourg', 717 | ['europe', 'eu-union'], 718 | 'lu', 719 | '352' 720 | ], 721 | [ 722 | 'Macau', 723 | ['asia'], 724 | 'mo', 725 | '853' 726 | ], 727 | [ 728 | 'Macedonia', 729 | ['europe', 'ex-yugos'], 730 | 'mk', 731 | '389' 732 | ], 733 | [ 734 | 'Madagascar', 735 | ['africa'], 736 | 'mg', 737 | '261' 738 | ], 739 | [ 740 | 'Malawi', 741 | ['africa'], 742 | 'mw', 743 | '265' 744 | ], 745 | [ 746 | 'Malaysia', 747 | ['asia'], 748 | 'my', 749 | '60', 750 | '..-....-....' 751 | ], 752 | [ 753 | 'Maldives', 754 | ['asia'], 755 | 'mv', 756 | '960' 757 | ], 758 | [ 759 | 'Mali', 760 | ['africa'], 761 | 'ml', 762 | '223' 763 | ], 764 | [ 765 | 'Malta', 766 | ['europe', 'eu-union'], 767 | 'mt', 768 | '356' 769 | ], 770 | [ 771 | 'Marshall Islands', 772 | ['oceania'], 773 | 'mh', 774 | '692' 775 | ], 776 | [ 777 | 'Martinique', 778 | ['america', 'carribean'], 779 | 'mq', 780 | '596' 781 | ], 782 | [ 783 | 'Mauritania', 784 | ['africa'], 785 | 'mr', 786 | '222' 787 | ], 788 | [ 789 | 'Mauritius', 790 | ['africa'], 791 | 'mu', 792 | '230' 793 | ], 794 | [ 795 | 'Mexico', 796 | ['america', 'central-america'], 797 | 'mx', 798 | '52', 799 | '... ... ....', 800 | 0, ['55', '81', '33', '656', '664', '998', '774', '229'] 801 | ], 802 | [ 803 | 'Micronesia', 804 | ['oceania'], 805 | 'fm', 806 | '691' 807 | ], 808 | [ 809 | 'Moldova', 810 | ['europe'], 811 | 'md', 812 | '373', 813 | '(..) ..-..-..' 814 | ], 815 | [ 816 | 'Monaco', 817 | ['europe'], 818 | 'mc', 819 | '377' 820 | ], 821 | [ 822 | 'Mongolia', 823 | ['asia'], 824 | 'mn', 825 | '976' 826 | ], 827 | [ 828 | 'Montenegro', 829 | ['europe', 'ex-yugos'], 830 | 'me', 831 | '382' 832 | ], 833 | [ 834 | 'Morocco', 835 | ['africa', 'north-africa'], 836 | 'ma', 837 | '212' 838 | ], 839 | [ 840 | 'Mozambique', 841 | ['africa'], 842 | 'mz', 843 | '258' 844 | ], 845 | [ 846 | 'Myanmar', 847 | ['asia'], 848 | 'mm', 849 | '95' 850 | ], 851 | [ 852 | 'Namibia', 853 | ['africa'], 854 | 'na', 855 | '264' 856 | ], 857 | [ 858 | 'Nauru', 859 | ['africa'], 860 | 'nr', 861 | '674' 862 | ], 863 | [ 864 | 'Nepal', 865 | ['asia'], 866 | 'np', 867 | '977' 868 | ], 869 | [ 870 | 'Netherlands', 871 | ['europe', 'eu-union'], 872 | 'nl', 873 | '31', 874 | '.. ........' 875 | ], 876 | [ 877 | 'New Caledonia', 878 | ['oceania'], 879 | 'nc', 880 | '687' 881 | ], 882 | [ 883 | 'New Zealand', 884 | ['oceania'], 885 | 'nz', 886 | '64', 887 | '...-...-....' 888 | ], 889 | [ 890 | 'Nicaragua', 891 | ['america', 'central-america'], 892 | 'ni', 893 | '505' 894 | ], 895 | [ 896 | 'Niger', 897 | ['africa'], 898 | 'ne', 899 | '227' 900 | ], 901 | [ 902 | 'Nigeria', 903 | ['africa'], 904 | 'ng', 905 | '234' 906 | ], 907 | [ 908 | 'North Korea', 909 | ['asia'], 910 | 'kp', 911 | '850' 912 | ], 913 | [ 914 | 'Norway', 915 | ['europe', 'baltic'], 916 | 'no', 917 | '47', 918 | '... .. ...' 919 | ], 920 | [ 921 | 'Oman', 922 | ['middle-east'], 923 | 'om', 924 | '968' 925 | ], 926 | [ 927 | 'Pakistan', 928 | ['asia'], 929 | 'pk', 930 | '92', 931 | '...-.......' 932 | ], 933 | [ 934 | 'Palau', 935 | ['oceania'], 936 | 'pw', 937 | '680' 938 | ], 939 | [ 940 | 'Palestine', 941 | ['middle-east'], 942 | 'ps', 943 | '970' 944 | ], 945 | [ 946 | 'Panama', 947 | ['america', 'central-america'], 948 | 'pa', 949 | '507' 950 | ], 951 | [ 952 | 'Papua New Guinea', 953 | ['oceania'], 954 | 'pg', 955 | '675' 956 | ], 957 | [ 958 | 'Paraguay', 959 | ['america', 'south-america'], 960 | 'py', 961 | '595' 962 | ], 963 | [ 964 | 'Peru', 965 | ['america', 'south-america'], 966 | 'pe', 967 | '51' 968 | ], 969 | [ 970 | 'Philippines', 971 | ['asia'], 972 | 'ph', 973 | '63', 974 | '.... .......' 975 | ], 976 | [ 977 | 'Poland', 978 | ['europe', 'eu-union', 'baltic'], 979 | 'pl', 980 | '48', 981 | '...-...-...' 982 | ], 983 | [ 984 | 'Portugal', 985 | ['europe', 'eu-union'], 986 | 'pt', 987 | '351' 988 | ], 989 | [ 990 | 'Puerto Rico', 991 | ['america', 'carribean'], 992 | 'pr', 993 | '1', 994 | '', 995 | 3, ['787', '939'] 996 | ], 997 | [ 998 | 'Qatar', 999 | ['middle-east'], 1000 | 'qa', 1001 | '974' 1002 | ], 1003 | [ 1004 | 'Réunion', 1005 | ['africa'], 1006 | 're', 1007 | '262' 1008 | ], 1009 | [ 1010 | 'Romania', 1011 | ['europe', 'eu-union'], 1012 | 'ro', 1013 | '40' 1014 | ], 1015 | [ 1016 | 'Russia', 1017 | ['europe', 'asia', 'ex-ussr', 'baltic'], 1018 | 'ru', 1019 | '7', 1020 | '(...) ...-..-..', 1021 | 0 1022 | ], 1023 | [ 1024 | 'Rwanda', 1025 | ['africa'], 1026 | 'rw', 1027 | '250' 1028 | ], 1029 | [ 1030 | 'Saint Kitts and Nevis', 1031 | ['america', 'carribean'], 1032 | 'kn', 1033 | '1869' 1034 | ], 1035 | [ 1036 | 'Saint Lucia', 1037 | ['america', 'carribean'], 1038 | 'lc', 1039 | '1758' 1040 | ], 1041 | [ 1042 | 'Saint Vincent and the Grenadines', 1043 | ['america', 'carribean'], 1044 | 'vc', 1045 | '1784' 1046 | ], 1047 | [ 1048 | 'Samoa', 1049 | ['oceania'], 1050 | 'ws', 1051 | '685' 1052 | ], 1053 | [ 1054 | 'San Marino', 1055 | ['europe'], 1056 | 'sm', 1057 | '378' 1058 | ], 1059 | [ 1060 | 'São Tomé and Príncipe', 1061 | ['africa'], 1062 | 'st', 1063 | '239' 1064 | ], 1065 | [ 1066 | 'Saudi Arabia', 1067 | ['middle-east'], 1068 | 'sa', 1069 | '966' 1070 | ], 1071 | [ 1072 | 'Senegal', 1073 | ['africa'], 1074 | 'sn', 1075 | '221' 1076 | ], 1077 | [ 1078 | 'Serbia', 1079 | ['europe', 'ex-yugos'], 1080 | 'rs', 1081 | '381' 1082 | ], 1083 | [ 1084 | 'Seychelles', 1085 | ['africa'], 1086 | 'sc', 1087 | '248' 1088 | ], 1089 | [ 1090 | 'Sierra Leone', 1091 | ['africa'], 1092 | 'sl', 1093 | '232' 1094 | ], 1095 | [ 1096 | 'Singapore', 1097 | ['asia'], 1098 | 'sg', 1099 | '65', 1100 | '....-....' 1101 | ], 1102 | [ 1103 | 'Slovakia', 1104 | ['europe', 'eu-union'], 1105 | 'sk', 1106 | '421' 1107 | ], 1108 | [ 1109 | 'Slovenia', 1110 | ['europe', 'eu-union', 'ex-yugos'], 1111 | 'si', 1112 | '386' 1113 | ], 1114 | [ 1115 | 'Solomon Islands', 1116 | ['oceania'], 1117 | 'sb', 1118 | '677' 1119 | ], 1120 | [ 1121 | 'Somalia', 1122 | ['africa'], 1123 | 'so', 1124 | '252' 1125 | ], 1126 | [ 1127 | 'South Africa', 1128 | ['africa'], 1129 | 'za', 1130 | '27' 1131 | ], 1132 | [ 1133 | 'South Korea', 1134 | ['asia'], 1135 | 'kr', 1136 | '82', 1137 | '... .... ....' 1138 | ], 1139 | [ 1140 | 'South Sudan', 1141 | ['africa', 'north-africa'], 1142 | 'ss', 1143 | '211' 1144 | ], 1145 | [ 1146 | 'Spain', 1147 | ['europe', 'eu-union'], 1148 | 'es', 1149 | '34', 1150 | '... ... ...' 1151 | ], 1152 | [ 1153 | 'Sri Lanka', 1154 | ['asia'], 1155 | 'lk', 1156 | '94' 1157 | ], 1158 | [ 1159 | 'Sudan', 1160 | ['africa'], 1161 | 'sd', 1162 | '249' 1163 | ], 1164 | [ 1165 | 'Suriname', 1166 | ['america', 'south-america'], 1167 | 'sr', 1168 | '597' 1169 | ], 1170 | [ 1171 | 'Swaziland', 1172 | ['africa'], 1173 | 'sz', 1174 | '268' 1175 | ], 1176 | [ 1177 | 'Sweden', 1178 | ['europe', 'eu-union', 'baltic'], 1179 | 'se', 1180 | '46', 1181 | '(...) ...-...' 1182 | ], 1183 | [ 1184 | 'Switzerland', 1185 | ['europe'], 1186 | 'ch', 1187 | '41', 1188 | '.. ... .. ..' 1189 | ], 1190 | [ 1191 | 'Syria', 1192 | ['middle-east'], 1193 | 'sy', 1194 | '963' 1195 | ], 1196 | [ 1197 | 'Taiwan', 1198 | ['asia'], 1199 | 'tw', 1200 | '886' 1201 | ], 1202 | [ 1203 | 'Tajikistan', 1204 | ['asia', 'ex-ussr'], 1205 | 'tj', 1206 | '992' 1207 | ], 1208 | [ 1209 | 'Tanzania', 1210 | ['africa'], 1211 | 'tz', 1212 | '255' 1213 | ], 1214 | [ 1215 | 'Thailand', 1216 | ['asia'], 1217 | 'th', 1218 | '66' 1219 | ], 1220 | [ 1221 | 'Timor-Leste', 1222 | ['asia'], 1223 | 'tl', 1224 | '670' 1225 | ], 1226 | [ 1227 | 'Togo', 1228 | ['africa'], 1229 | 'tg', 1230 | '228' 1231 | ], 1232 | [ 1233 | 'Tonga', 1234 | ['oceania'], 1235 | 'to', 1236 | '676' 1237 | ], 1238 | [ 1239 | 'Trinidad and Tobago', 1240 | ['america', 'carribean'], 1241 | 'tt', 1242 | '1868' 1243 | ], 1244 | [ 1245 | 'Tunisia', 1246 | ['africa', 'north-africa'], 1247 | 'tn', 1248 | '216' 1249 | ], 1250 | [ 1251 | 'Turkey', 1252 | ['europe'], 1253 | 'tr', 1254 | '90', 1255 | '... ... .. ..' 1256 | ], 1257 | [ 1258 | 'Turkmenistan', 1259 | ['asia', 'ex-ussr'], 1260 | 'tm', 1261 | '993' 1262 | ], 1263 | [ 1264 | 'Tuvalu', 1265 | ['asia'], 1266 | 'tv', 1267 | '688' 1268 | ], 1269 | [ 1270 | 'Uganda', 1271 | ['africa'], 1272 | 'ug', 1273 | '256' 1274 | ], 1275 | [ 1276 | 'Ukraine', 1277 | ['europe', 'ex-ussr'], 1278 | 'ua', 1279 | '380', 1280 | '(..) ... .. ..' 1281 | ], 1282 | [ 1283 | 'United Arab Emirates', 1284 | ['middle-east'], 1285 | 'ae', 1286 | '971' 1287 | ], 1288 | [ 1289 | 'United Kingdom', 1290 | ['europe', 'eu-union'], 1291 | 'gb', 1292 | '44', 1293 | '.... ......' 1294 | ], 1295 | [ 1296 | 'United States', 1297 | ['america', 'north-america'], 1298 | 'us', 1299 | '1', 1300 | '(...) ...-....', 1301 | 0, ['907', '205', '251', '256', '334', '479', '501', '870', '480', '520', '602', '623', '928', '209', '213', '310', '323', '408', '415', '510', '530', '559', '562', '619', '626', '650', '661', '707', '714', '760', '805', '818', '831', '858', '909', '916', '925', '949', '951', '303', '719', '970', '203', '860', '202', '302', '239', '305', '321', '352', '386', '407', '561', '727', '772', '813', '850', '863', '904', '941', '954', '229', '404', '478', '706', '770', '912', '808', '319', '515', '563', '641', '712', '208', '217', '309', '312', '618', '630', '708', '773', '815', '847', '219', '260', '317', '574', '765', '812', '316', '620', '785', '913', '270', '502', '606', '859', '225', '318', '337', '504', '985', '413', '508', '617', '781', '978', '301', '410', '207', '231', '248', '269', '313', '517', '586', '616', '734', '810', '906', '989', '218', '320', '507', '612', '651', '763', '952', '314', '417', '573', '636', '660', '816', '228', '601', '662', '406', '252', '336', '704', '828', '910', '919', '701', '308', '402', '603', '201', '609', '732', '856', '908', '973', '505', '575', '702', '775', '212', '315', '516', '518', '585', '607', '631', '716', '718', '845', '914', '216', '330', '419', '440', '513', '614', '740', '937', '405', '580', '918', '503', '541', '215', '412', '570', '610', '717', '724', '814', '401', '803', '843', '864', '605', '423', '615', '731', '865', '901', '931', '210', '214', '254', '281', '325', '361', '409', '432', '512', '713', '806', '817', '830', '903', '915', '936', '940', '956', '972', '979', '435', '801', '276', '434', '540', '703', '757', '804', '802', '206', '253', '360', '425', '509', '262', '414', '608', '715', '920', '304', '307'] 1302 | ], 1303 | [ 1304 | 'Uruguay', 1305 | ['america', 'south-america'], 1306 | 'uy', 1307 | '598' 1308 | ], 1309 | [ 1310 | 'Uzbekistan', 1311 | ['asia', 'ex-ussr'], 1312 | 'uz', 1313 | '998', 1314 | '.. ... .. ..' 1315 | ], 1316 | [ 1317 | 'Vanuatu', 1318 | ['oceania'], 1319 | 'vu', 1320 | '678' 1321 | ], 1322 | [ 1323 | 'Vatican City', 1324 | ['europe'], 1325 | 'va', 1326 | '39', 1327 | '.. .... ....', 1328 | 1 1329 | ], 1330 | [ 1331 | 'Venezuela', 1332 | ['america', 'south-america'], 1333 | 've', 1334 | '58' 1335 | ], 1336 | [ 1337 | 'Vietnam', 1338 | ['asia'], 1339 | 'vn', 1340 | '84' 1341 | ], 1342 | [ 1343 | 'Yemen', 1344 | ['middle-east'], 1345 | 'ye', 1346 | '967' 1347 | ], 1348 | [ 1349 | 'Zambia', 1350 | ['africa'], 1351 | 'zm', 1352 | '260' 1353 | ], 1354 | [ 1355 | 'Zimbabwe', 1356 | ['africa'], 1357 | 'zw', 1358 | '263' 1359 | ] 1360 | ] 1361 | 1362 | export default rawCountries 1363 | -------------------------------------------------------------------------------- /src/rawTerritories.js: -------------------------------------------------------------------------------- 1 | // Country model: 2 | // [ 3 | // Country name, 4 | // Regions, 5 | // iso2 code, 6 | // International dial code, 7 | // Format (if available), 8 | // Order priority (if >1 country with same dial code), 9 | // Area codes (if >1 country with same dial code) 10 | // ] 11 | // 12 | // Regions: 13 | // ['america', 'europe', 'asia', 'oceania', 'africa'] 14 | // 15 | // Sub-regions: 16 | // ['north-america', 'south-america', 'central-america', 'carribean', 17 | // 'eu-union', 'ex-ussr', 'ex-yugos', 'baltic', 'middle-east', 'north-africa'] 18 | 19 | const rawTerritories = [ 20 | [ 21 | 'American Samoa', 22 | ['oceania'], 23 | 'as', 24 | '1684' 25 | ], 26 | [ 27 | 'Anguilla', 28 | ['america', 'carribean'], 29 | 'ai', 30 | '1264' 31 | ], 32 | [ 33 | 'Bermuda', 34 | ['america', 'north-america'], 35 | 'bm', 36 | '1441' 37 | ], 38 | [ 39 | 'British Virgin Islands', 40 | ['america', 'carribean'], 41 | 'vg', 42 | '1284' 43 | ], 44 | [ 45 | 'Cayman Islands', 46 | ['america', 'carribean'], 47 | 'ky', 48 | '1345' 49 | ], 50 | [ 51 | 'Cook Islands', 52 | ['oceania'], 53 | 'ck', 54 | '682' 55 | ], 56 | [ 57 | 'Falkland Islands', 58 | ['america', 'south-america'], 59 | 'fk', 60 | '500' 61 | ], 62 | [ 63 | 'Faroe Islands', 64 | ['europe'], 65 | 'fo', 66 | '298' 67 | ], 68 | [ 69 | 'Gibraltar', 70 | ['europe'], 71 | 'gi', 72 | '350' 73 | ], 74 | [ 75 | 'Greenland', 76 | ['america'], 77 | 'gl', 78 | '299' 79 | ], 80 | [ 81 | 'Jersey', 82 | ['europe', 'eu-union'], 83 | 'je', 84 | '44', 85 | '.... ......' 86 | ], 87 | [ 88 | 'Montserrat', 89 | ['america', 'carribean'], 90 | 'ms', 91 | '1664' 92 | ], 93 | [ 94 | 'Niue', 95 | ['asia'], 96 | 'nu', 97 | '683' 98 | ], 99 | [ 100 | 'Norfolk Island', 101 | ['oceania'], 102 | 'nf', 103 | '672' 104 | ], 105 | [ 106 | 'Northern Mariana Islands', 107 | ['oceania'], 108 | 'mp', 109 | '1670' 110 | ], 111 | [ 112 | 'Saint Barthélemy', 113 | ['america', 'carribean'], 114 | 'bl', 115 | '590', 116 | '', 117 | 1 118 | ], 119 | [ 120 | 'Saint Helena', 121 | ['africa'], 122 | 'sh', 123 | '290' 124 | ], 125 | [ 126 | 'Saint Martin', 127 | ['america', 'carribean'], 128 | 'mf', 129 | '590', 130 | '', 131 | 2 132 | ], 133 | [ 134 | 'Saint Pierre and Miquelon', 135 | ['america', 'north-america'], 136 | 'pm', 137 | '508' 138 | ], 139 | [ 140 | 'Sint Maarten', 141 | ['america', 'carribean'], 142 | 'sx', 143 | '1721' 144 | ], 145 | [ 146 | 'Tokelau', 147 | ['oceania'], 148 | 'tk', 149 | '690' 150 | ], 151 | [ 152 | 'Turks and Caicos Islands', 153 | ['america', 'carribean'], 154 | 'tc', 155 | '1649' 156 | ], 157 | [ 158 | 'U.S. Virgin Islands', 159 | ['america', 'carribean'], 160 | 'vi', 161 | '1340' 162 | ], 163 | [ 164 | 'Wallis and Futuna', 165 | ['oceania'], 166 | 'wf', 167 | '681' 168 | ], 169 | ] 170 | 171 | export default rawTerritories 172 | -------------------------------------------------------------------------------- /src/style/bootstrap.less: -------------------------------------------------------------------------------- 1 | @import "./common/high-res-flags.less"; 2 | 3 | .react-tel-input { 4 | .form-control { 5 | font-size: 16px; 6 | background: #FFFFFF; 7 | border: 1px solid #CACACA; 8 | border-radius: 5px; 9 | width: 300px; 10 | outline: none; 11 | padding: 18.5px 14px 18.5px 60px; 12 | transition: box-shadow ease .25s, border-color ease .25s; 13 | color: #495057; 14 | &:focus { 15 | background-color: #fff; 16 | border-color: #80bdff; 17 | outline: 0; 18 | box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25); 19 | &.invalid-number { 20 | box-shadow: 0 0 0 0.2rem rgba(222,0,0,.25); 21 | } 22 | } 23 | &.invalid-number { 24 | border: 1px solid #f44336; 25 | } 26 | } 27 | .flag-dropdown { 28 | position: absolute; 29 | top: 0; 30 | bottom: 0; 31 | padding: 0; 32 | border-radius: 3px 0 0 3px; 33 | &:hover, &:focus { 34 | cursor: pointer; 35 | } 36 | &.open { 37 | z-index: 2; 38 | } 39 | } 40 | input[disabled] { 41 | &+.flag-dropdown { 42 | &:hover { 43 | cursor: default; 44 | .selected-flag { 45 | background-color: transparent; 46 | } 47 | } 48 | } 49 | } 50 | .selected-flag { 51 | outline: none; 52 | position: relative; 53 | width: 52px; 54 | height: 100%; 55 | padding: 0 0 0 11px; 56 | border-radius: 3px 0 0 3px; 57 | &:before { 58 | content: ''; 59 | display: block; 60 | position: absolute; 61 | top: 2px; 62 | bottom: 2px; 63 | left: 0; 64 | width: 100%; 65 | border-radius: 4px 2px 2px 4px; 66 | border: 1px solid transparent; 67 | transition: box-shadow ease .25s, border-color ease .25s; 68 | } 69 | &:focus, &.open { 70 | &:before { 71 | border-color: #80bdff; 72 | box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25); 73 | } 74 | } 75 | .flag { 76 | position: absolute; 77 | top: 50%; 78 | margin-top: -12px; 79 | } 80 | .arrow { 81 | position: relative; 82 | top: 50%; 83 | margin-top: -1px; 84 | left: 29px; 85 | width: 0; 86 | height: 0; 87 | border-left: 3px solid transparent; 88 | border-right: 3px solid transparent; 89 | border-top: 4px solid #555; 90 | &.up { 91 | border-top: none; 92 | border-bottom: 4px solid #555; 93 | } 94 | } 95 | } 96 | .country-list { 97 | outline: none; 98 | z-index: 1; 99 | list-style: none; 100 | position: absolute; 101 | padding: 0; 102 | margin: 10px 0 10px -1px; 103 | box-shadow: 1px 2px 18px rgba(0, 0, 0, 0.25); 104 | background-color: white; 105 | width: 300px; 106 | max-height: 220px; 107 | overflow-y: scroll; 108 | border-radius: 7px; 109 | .flag { 110 | display: inline-block; 111 | position: absolute; 112 | left: 13px; 113 | top: 8px; 114 | } 115 | .divider { 116 | padding-bottom: 5px; 117 | margin-bottom: 5px; 118 | border-bottom: 1px solid #ccc; 119 | } 120 | .country { 121 | position: relative; 122 | padding: 12px 9px 13px 46px; 123 | .dial-code { 124 | color: #6b6b6b; 125 | } 126 | &:hover { 127 | background-color: #f1f1f1; 128 | } 129 | &.highlight { 130 | background-color: #f1f1f1; 131 | } 132 | } 133 | .flag { 134 | margin-right: 7px; 135 | margin-top: 2px; 136 | } 137 | .country-name { 138 | margin-right: 6px; 139 | } 140 | .search { 141 | z-index: 2; 142 | position: sticky; 143 | top: 0; 144 | background-color: #fff; 145 | padding: 10px 0 6px 10px; 146 | } 147 | .search-emoji { 148 | display: none; 149 | font-size: 15px; 150 | } 151 | .search-box { 152 | border: 1px solid #cacaca; 153 | border-radius: 3px; 154 | font-size: 15px; 155 | line-height: 15px; 156 | margin-left: 6px; 157 | padding: 3px 8px 5px; 158 | outline: none; 159 | } 160 | .no-entries-message { 161 | padding: 7px 10px 11px; 162 | opacity: .7; 163 | } 164 | } 165 | .invalid-number-message { 166 | position: absolute; 167 | z-index: 1; 168 | font-size: 13px; 169 | left: 25px; 170 | top: -7px; 171 | background: #fff; 172 | padding: 0 5px; 173 | color: #de0000; 174 | } 175 | .special-label { 176 | display: none; 177 | position: absolute; 178 | z-index: 1; 179 | font-size: 13px; 180 | left: 25px; 181 | top: -7px; 182 | background: #fff; 183 | padding: 0 5px; 184 | white-space: nowrap; 185 | } 186 | } 187 | -------------------------------------------------------------------------------- /src/style/common/flags.less: -------------------------------------------------------------------------------- 1 | .react-tel-input { 2 | font-family: 'Roboto', sans-serif; 3 | font-size: 15px; 4 | position: relative; 5 | width: 100%; 6 | :disabled { 7 | cursor: not-allowed; 8 | } 9 | .flag { 10 | width: 16px; 11 | height: 11px; 12 | background-image: url("./flags.png"); 13 | } 14 | .ad { 15 | background-position: -16px 0; 16 | } 17 | .ae { 18 | background-position: -32px 0; 19 | } 20 | .af { 21 | background-position: -48px 0; 22 | } 23 | .ag { 24 | background-position: -64px 0; 25 | } 26 | .ai { 27 | background-position: -80px 0; 28 | } 29 | .al { 30 | background-position: -96px 0; 31 | } 32 | .am { 33 | background-position: -112px 0; 34 | } 35 | .ao { 36 | background-position: -128px 0; 37 | } 38 | .ar { 39 | background-position: -144px 0; 40 | } 41 | .as { 42 | background-position: -160px 0; 43 | } 44 | .at { 45 | background-position: -176px 0; 46 | } 47 | .au { 48 | background-position: -192px 0; 49 | } 50 | .aw { 51 | background-position: -208px 0; 52 | } 53 | .az { 54 | background-position: -224px 0; 55 | } 56 | .ba { 57 | background-position: -240px 0; 58 | } 59 | .bb { 60 | background-position: 0 -11px; 61 | } 62 | .bd { 63 | background-position: -16px -11px; 64 | } 65 | .be { 66 | background-position: -32px -11px; 67 | } 68 | .bf { 69 | background-position: -48px -11px; 70 | } 71 | .bg { 72 | background-position: -64px -11px; 73 | } 74 | .bh { 75 | background-position: -80px -11px; 76 | } 77 | .bi { 78 | background-position: -96px -11px; 79 | } 80 | .bj { 81 | background-position: -112px -11px; 82 | } 83 | .bm { 84 | background-position: -128px -11px; 85 | } 86 | .bn { 87 | background-position: -144px -11px; 88 | } 89 | .bo { 90 | background-position: -160px -11px; 91 | } 92 | .br { 93 | background-position: -176px -11px; 94 | } 95 | .bs { 96 | background-position: -192px -11px; 97 | } 98 | .bt { 99 | background-position: -208px -11px; 100 | } 101 | .bw { 102 | background-position: -224px -11px; 103 | } 104 | .by { 105 | background-position: -240px -11px; 106 | } 107 | .bz { 108 | background-position: 0 -22px; 109 | } 110 | .ca { 111 | background-position: -16px -22px; 112 | } 113 | .cd { 114 | background-position: -32px -22px; 115 | } 116 | .cf { 117 | background-position: -48px -22px; 118 | } 119 | .cg { 120 | background-position: -64px -22px; 121 | } 122 | .ch { 123 | background-position: -80px -22px; 124 | } 125 | .ci { 126 | background-position: -96px -22px; 127 | } 128 | .ck { 129 | background-position: -112px -22px; 130 | } 131 | .cl { 132 | background-position: -128px -22px; 133 | } 134 | .cm { 135 | background-position: -144px -22px; 136 | } 137 | .cn { 138 | background-position: -160px -22px; 139 | } 140 | .co { 141 | background-position: -176px -22px; 142 | } 143 | .cr { 144 | background-position: -192px -22px; 145 | } 146 | .cu { 147 | background-position: -208px -22px; 148 | } 149 | .cv { 150 | background-position: -224px -22px; 151 | } 152 | .cw { 153 | background-position: -240px -22px; 154 | } 155 | .cy { 156 | background-position: 0 -33px; 157 | } 158 | .cz { 159 | background-position: -16px -33px; 160 | } 161 | .de { 162 | background-position: -32px -33px; 163 | } 164 | .dj { 165 | background-position: -48px -33px; 166 | } 167 | .dk { 168 | background-position: -64px -33px; 169 | } 170 | .dm { 171 | background-position: -80px -33px; 172 | } 173 | .do { 174 | background-position: -96px -33px; 175 | } 176 | .dz { 177 | background-position: -112px -33px; 178 | } 179 | .ec { 180 | background-position: -128px -33px; 181 | } 182 | .ee { 183 | background-position: -144px -33px; 184 | } 185 | .eg { 186 | background-position: -160px -33px; 187 | } 188 | .er { 189 | background-position: -176px -33px; 190 | } 191 | .es { 192 | background-position: -192px -33px; 193 | } 194 | .et { 195 | background-position: -208px -33px; 196 | } 197 | .fi { 198 | background-position: -224px -33px; 199 | } 200 | .fj { 201 | background-position: -240px -33px; 202 | } 203 | .fk { 204 | background-position: 0 -44px; 205 | } 206 | .fm { 207 | background-position: -16px -44px; 208 | } 209 | .fo { 210 | background-position: -32px -44px; 211 | } 212 | .fr, .bl, .mf { 213 | background-position: -48px -44px; 214 | } 215 | .ga { 216 | background-position: -64px -44px; 217 | } 218 | .gb { 219 | background-position: -80px -44px; 220 | } 221 | .gd { 222 | background-position: -96px -44px; 223 | } 224 | .ge { 225 | background-position: -112px -44px; 226 | } 227 | .gf { 228 | background-position: -128px -44px; 229 | } 230 | .gh { 231 | background-position: -144px -44px; 232 | } 233 | .gi { 234 | background-position: -160px -44px; 235 | } 236 | .gl { 237 | background-position: -176px -44px; 238 | } 239 | .gm { 240 | background-position: -192px -44px; 241 | } 242 | .gn { 243 | background-position: -208px -44px; 244 | } 245 | .gp { 246 | background-position: -224px -44px; 247 | } 248 | .gq { 249 | background-position: -240px -44px; 250 | } 251 | .gr { 252 | background-position: 0 -55px; 253 | } 254 | .gt { 255 | background-position: -16px -55px; 256 | } 257 | .gu { 258 | background-position: -32px -55px; 259 | } 260 | .gw { 261 | background-position: -48px -55px; 262 | } 263 | .gy { 264 | background-position: -64px -55px; 265 | } 266 | .hk { 267 | background-position: -80px -55px; 268 | } 269 | .hn { 270 | background-position: -96px -55px; 271 | } 272 | .hr { 273 | background-position: -112px -55px; 274 | } 275 | .ht { 276 | background-position: -128px -55px; 277 | } 278 | .hu { 279 | background-position: -144px -55px; 280 | } 281 | .id { 282 | background-position: -160px -55px; 283 | } 284 | .ie { 285 | background-position: -176px -55px; 286 | } 287 | .il { 288 | background-position: -192px -55px; 289 | } 290 | .in { 291 | background-position: -208px -55px; 292 | } 293 | .io { 294 | background-position: -224px -55px; 295 | } 296 | .iq { 297 | background-position: -240px -55px; 298 | } 299 | .ir { 300 | background-position: 0 -66px; 301 | } 302 | .is { 303 | background-position: -16px -66px; 304 | } 305 | .it { 306 | background-position: -32px -66px; 307 | } 308 | .je { 309 | background-position: -144px -154px; 310 | } 311 | .jm { 312 | background-position: -48px -66px; 313 | } 314 | .jo { 315 | background-position: -64px -66px; 316 | } 317 | .jp { 318 | background-position: -80px -66px; 319 | } 320 | .ke { 321 | background-position: -96px -66px; 322 | } 323 | .kg { 324 | background-position: -112px -66px; 325 | } 326 | .kh { 327 | background-position: -128px -66px; 328 | } 329 | .ki { 330 | background-position: -144px -66px; 331 | } 332 | .xk { 333 | background-position: -128px -154px; 334 | } 335 | .km { 336 | background-position: -160px -66px; 337 | } 338 | .kn { 339 | background-position: -176px -66px; 340 | } 341 | .kp { 342 | background-position: -192px -66px; 343 | } 344 | .kr { 345 | background-position: -208px -66px; 346 | } 347 | .kw { 348 | background-position: -224px -66px; 349 | } 350 | .ky { 351 | background-position: -240px -66px; 352 | } 353 | .kz { 354 | background-position: 0 -77px; 355 | } 356 | .la { 357 | background-position: -16px -77px; 358 | } 359 | .lb { 360 | background-position: -32px -77px; 361 | } 362 | .lc { 363 | background-position: -48px -77px; 364 | } 365 | .li { 366 | background-position: -64px -77px; 367 | } 368 | .lk { 369 | background-position: -80px -77px; 370 | } 371 | .lr { 372 | background-position: -96px -77px; 373 | } 374 | .ls { 375 | background-position: -112px -77px; 376 | } 377 | .lt { 378 | background-position: -128px -77px; 379 | } 380 | .lu { 381 | background-position: -144px -77px; 382 | } 383 | .lv { 384 | background-position: -160px -77px; 385 | } 386 | .ly { 387 | background-position: -176px -77px; 388 | } 389 | .ma { 390 | background-position: -192px -77px; 391 | } 392 | .mc { 393 | background-position: -208px -77px; 394 | } 395 | .md { 396 | background-position: -224px -77px; 397 | } 398 | .me { 399 | background-position: -112px -154px; 400 | height: 12px; 401 | } 402 | .mg { 403 | background-position: 0 -88px; 404 | } 405 | .mh { 406 | background-position: -16px -88px; 407 | } 408 | .mk { 409 | background-position: -32px -88px; 410 | } 411 | .ml { 412 | background-position: -48px -88px; 413 | } 414 | .mm { 415 | background-position: -64px -88px; 416 | } 417 | .mn { 418 | background-position: -80px -88px; 419 | } 420 | .mo { 421 | background-position: -96px -88px; 422 | } 423 | .mp { 424 | background-position: -112px -88px; 425 | } 426 | .mq { 427 | background-position: -128px -88px; 428 | } 429 | .mr { 430 | background-position: -144px -88px; 431 | } 432 | .ms { 433 | background-position: -160px -88px; 434 | } 435 | .mt { 436 | background-position: -176px -88px; 437 | } 438 | .mu { 439 | background-position: -192px -88px; 440 | } 441 | .mv { 442 | background-position: -208px -88px; 443 | } 444 | .mw { 445 | background-position: -224px -88px; 446 | } 447 | .mx { 448 | background-position: -240px -88px; 449 | } 450 | .my { 451 | background-position: 0 -99px; 452 | } 453 | .mz { 454 | background-position: -16px -99px; 455 | } 456 | .na { 457 | background-position: -32px -99px; 458 | } 459 | .nc { 460 | background-position: -48px -99px; 461 | } 462 | .ne { 463 | background-position: -64px -99px; 464 | } 465 | .nf { 466 | background-position: -80px -99px; 467 | } 468 | .ng { 469 | background-position: -96px -99px; 470 | } 471 | .ni { 472 | background-position: -112px -99px; 473 | } 474 | .nl, .bq { 475 | background-position: -128px -99px; 476 | } 477 | .no { 478 | background-position: -144px -99px; 479 | } 480 | .np { 481 | background-position: -160px -99px; 482 | } 483 | .nr { 484 | background-position: -176px -99px; 485 | } 486 | .nu { 487 | background-position: -192px -99px; 488 | } 489 | .nz { 490 | background-position: -208px -99px; 491 | } 492 | .om { 493 | background-position: -224px -99px; 494 | } 495 | .pa { 496 | background-position: -240px -99px; 497 | } 498 | .pe { 499 | background-position: 0 -110px; 500 | } 501 | .pf { 502 | background-position: -16px -110px; 503 | } 504 | .pg { 505 | background-position: -32px -110px; 506 | } 507 | .ph { 508 | background-position: -48px -110px; 509 | } 510 | .pk { 511 | background-position: -64px -110px; 512 | } 513 | .pl { 514 | background-position: -80px -110px; 515 | } 516 | .pm { 517 | background-position: -96px -110px; 518 | } 519 | .pr { 520 | background-position: -112px -110px; 521 | } 522 | .ps { 523 | background-position: -128px -110px; 524 | } 525 | .pt { 526 | background-position: -144px -110px; 527 | } 528 | .pw { 529 | background-position: -160px -110px; 530 | } 531 | .py { 532 | background-position: -176px -110px; 533 | } 534 | .qa { 535 | background-position: -192px -110px; 536 | } 537 | .re { 538 | background-position: -208px -110px; 539 | } 540 | .ro { 541 | background-position: -224px -110px; 542 | } 543 | .rs { 544 | background-position: -240px -110px; 545 | } 546 | .ru { 547 | background-position: 0 -121px; 548 | } 549 | .rw { 550 | background-position: -16px -121px; 551 | } 552 | .sa { 553 | background-position: -32px -121px; 554 | } 555 | .sb { 556 | background-position: -48px -121px; 557 | } 558 | .sc { 559 | background-position: -64px -121px; 560 | } 561 | .sd { 562 | background-position: -80px -121px; 563 | } 564 | .se { 565 | background-position: -96px -121px; 566 | } 567 | .sg { 568 | background-position: -112px -121px; 569 | } 570 | .sh { 571 | background-position: -128px -121px; 572 | } 573 | .si { 574 | background-position: -144px -121px; 575 | } 576 | .sk { 577 | background-position: -160px -121px; 578 | } 579 | .sl { 580 | background-position: -176px -121px; 581 | } 582 | .sm { 583 | background-position: -192px -121px; 584 | } 585 | .sn { 586 | background-position: -208px -121px; 587 | } 588 | .so { 589 | background-position: -224px -121px; 590 | } 591 | .sr { 592 | background-position: -240px -121px; 593 | } 594 | .ss { 595 | background-position: 0 -132px; 596 | } 597 | .st { 598 | background-position: -16px -132px; 599 | } 600 | .sv { 601 | background-position: -32px -132px; 602 | } 603 | .sx { 604 | background-position: -48px -132px; 605 | } 606 | .sy { 607 | background-position: -64px -132px; 608 | } 609 | .sz { 610 | background-position: -80px -132px; 611 | } 612 | .tc { 613 | background-position: -96px -132px; 614 | } 615 | .td { 616 | background-position: -112px -132px; 617 | } 618 | .tg { 619 | background-position: -128px -132px; 620 | } 621 | .th { 622 | background-position: -144px -132px; 623 | } 624 | .tj { 625 | background-position: -160px -132px; 626 | } 627 | .tk { 628 | background-position: -176px -132px; 629 | } 630 | .tl { 631 | background-position: -192px -132px; 632 | } 633 | .tm { 634 | background-position: -208px -132px; 635 | } 636 | .tn { 637 | background-position: -224px -132px; 638 | } 639 | .to { 640 | background-position: -240px -132px; 641 | } 642 | .tr { 643 | background-position: 0 -143px; 644 | } 645 | .tt { 646 | background-position: -16px -143px; 647 | } 648 | .tv { 649 | background-position: -32px -143px; 650 | } 651 | .tw { 652 | background-position: -48px -143px; 653 | } 654 | .tz { 655 | background-position: -64px -143px; 656 | } 657 | .ua { 658 | background-position: -80px -143px; 659 | } 660 | .ug { 661 | background-position: -96px -143px; 662 | } 663 | .us { 664 | background-position: -112px -143px; 665 | } 666 | .uy { 667 | background-position: -128px -143px; 668 | } 669 | .uz { 670 | background-position: -144px -143px; 671 | } 672 | .va { 673 | background-position: -160px -143px; 674 | } 675 | .vc { 676 | background-position: -176px -143px; 677 | } 678 | .ve { 679 | background-position: -192px -143px; 680 | } 681 | .vg { 682 | background-position: -208px -143px; 683 | } 684 | .vi { 685 | background-position: -224px -143px; 686 | } 687 | .vn { 688 | background-position: -240px -143px; 689 | } 690 | .vu { 691 | background-position: 0 -154px; 692 | } 693 | .wf { 694 | background-position: -16px -154px; 695 | } 696 | .ws { 697 | background-position: -32px -154px; 698 | } 699 | .ye { 700 | background-position: -48px -154px; 701 | } 702 | .za { 703 | background-position: -64px -154px; 704 | } 705 | .zm { 706 | background-position: -80px -154px; 707 | } 708 | .zw { 709 | background-position: -96px -154px; 710 | } 711 | * { 712 | box-sizing: border-box; 713 | -moz-box-sizing: border-box; 714 | } 715 | .hide { 716 | display: none; 717 | } 718 | .v-hide { 719 | visibility: hidden; 720 | } 721 | } 722 | -------------------------------------------------------------------------------- /src/style/common/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bl00mber/react-phone-input-2/39f787cf92b2ebb712b98cd8b62a3a7b38b5fde7/src/style/common/flags.png -------------------------------------------------------------------------------- /src/style/common/high-res-flags.less: -------------------------------------------------------------------------------- 1 | .react-tel-input { 2 | font-family: 'Roboto', sans-serif; 3 | font-size: 15px; 4 | position: relative; 5 | width: 100%; 6 | :disabled { 7 | cursor: not-allowed; 8 | } 9 | .flag { 10 | width: 25px; 11 | height: 20px; 12 | background-image: url("./high-res.png"); 13 | background-repeat: no-repeat; 14 | } 15 | .ad { background-position: -48px -24px; } 16 | .ae { background-position: -72px -24px; } 17 | .af { background-position: -96px -24px; } 18 | .ag { background-position: -120px -24px; } 19 | .ai { background-position: -144px -24px; } 20 | .al { background-position: -168px -24px; } 21 | .am { background-position: -192px -24px; } 22 | .an { background-position: -216px -24px; } 23 | .ao { background-position: -240px -24px; } 24 | .aq { background-position: -264px -24px; } 25 | .ar { background-position: -288px -24px; } 26 | .as { background-position: -312px -24px; } 27 | .at { background-position: -336px -24px; } 28 | .au { background-position: -360px -24px; } 29 | .aw { background-position: -384px -24px; } 30 | .ax { background-position: -0px -48px; } 31 | .az { background-position: -24px -48px; } 32 | .ba { background-position: -48px -48px; } 33 | .bb { background-position: -72px -48px; } 34 | .bd { background-position: -96px -48px; } 35 | .be { background-position: -120px -48px; } 36 | .bf { background-position: -144px -48px; } 37 | .bg { background-position: -168px -48px; } 38 | .bh { background-position: -192px -48px; } 39 | .bi { background-position: -216px -48px; } 40 | .bj { background-position: -240px -48px; } 41 | .bl { background-position: -264px -48px; } 42 | .bm { background-position: -288px -48px; } 43 | .bn { background-position: -312px -48px; } 44 | .bo { background-position: -336px -48px; } 45 | .br { background-position: -360px -48px; } 46 | .bs { background-position: -384px -48px; } 47 | .bt { background-position: -0px -72px; } 48 | .bw { background-position: -24px -72px; } 49 | .by { background-position: -48px -72px; } 50 | .bz { background-position: -72px -72px; } 51 | .ca { background-position: -96px -72px; } 52 | .cc { background-position: -120px -72px; } 53 | .cd { background-position: -144px -72px; } 54 | .cf { background-position: -168px -72px; } 55 | .cg { background-position: -192px -72px; } 56 | .ch { background-position: -216px -72px; } 57 | .ci { background-position: -240px -72px; } 58 | .ck { background-position: -264px -72px; } 59 | .cl { background-position: -288px -72px; } 60 | .cm { background-position: -312px -72px; } 61 | .cn { background-position: -336px -72px; } 62 | .co { background-position: -360px -72px; } 63 | .cr { background-position: -384px -72px; } 64 | .cu { background-position: -0px -96px; } 65 | .cv { background-position: -24px -96px; } 66 | .cw { background-position: -48px -96px; } 67 | .cx { background-position: -72px -96px; } 68 | .cy { background-position: -96px -96px; } 69 | .cz { background-position: -120px -96px; } 70 | .de { background-position: -144px -96px; } 71 | .dj { background-position: -168px -96px; } 72 | .dk { background-position: -192px -96px; } 73 | .dm { background-position: -216px -96px; } 74 | .do { background-position: -240px -96px; } 75 | .dz { background-position: -264px -96px; } 76 | .ec { background-position: -288px -96px; } 77 | .ee { background-position: -312px -96px; } 78 | .eg { background-position: -336px -96px; } 79 | .eh { background-position: -360px -96px; } 80 | .er { background-position: -384px -96px; } 81 | .es { background-position: -0px -120px; } 82 | .et { background-position: -24px -120px; } 83 | .eu { background-position: -48px -120px; } 84 | .fi { background-position: -72px -120px; } 85 | .fj { background-position: -96px -120px; } 86 | .fk { background-position: -120px -120px; } 87 | .fm { background-position: -144px -120px; } 88 | .fo { background-position: -168px -120px; } 89 | .fr { background-position: -192px -120px; } 90 | .ga { background-position: -216px -120px; } 91 | .gb { background-position: -240px -120px; } 92 | .gd { background-position: -264px -120px; } 93 | .ge { background-position: -288px -120px; } 94 | .gg { background-position: -312px -120px; } 95 | .gh { background-position: -336px -120px; } 96 | .gi { background-position: -360px -120px; } 97 | .gl { background-position: -384px -120px; } 98 | .gm { background-position: -0px -144px; } 99 | .gn { background-position: -24px -144px; } 100 | .gq { background-position: -48px -144px; } 101 | .gr { background-position: -72px -144px; } 102 | .gs { background-position: -96px -144px; } 103 | .gt { background-position: -120px -144px; } 104 | .gu { background-position: -144px -144px; } 105 | .gw { background-position: -168px -144px; } 106 | .gy { background-position: -192px -144px; } 107 | .hk { background-position: -216px -144px; } 108 | .hn { background-position: -240px -144px; } 109 | .hr { background-position: -264px -144px; } 110 | .ht { background-position: -288px -144px; } 111 | .hu { background-position: -312px -144px; } 112 | .ic { background-position: -336px -144px; } 113 | .id { background-position: -360px -144px; } 114 | .ie { background-position: -384px -144px; } 115 | .il { background-position: -0px -168px; } 116 | .im { background-position: -24px -168px; } 117 | .in { background-position: -48px -168px; } 118 | .iq { background-position: -72px -168px; } 119 | .ir { background-position: -96px -168px; } 120 | .is { background-position: -120px -168px; } 121 | .it { background-position: -144px -168px; } 122 | .je { background-position: -168px -168px; } 123 | .jm { background-position: -192px -168px; } 124 | .jo { background-position: -216px -168px; } 125 | .jp { background-position: -240px -168px; } 126 | .ke { background-position: -264px -168px; } 127 | .kg { background-position: -288px -168px; } 128 | .kh { background-position: -312px -168px; } 129 | .ki { background-position: -336px -168px; } 130 | .xk { background-position: -144px 0px; } 131 | .km { background-position: -360px -168px; } 132 | .kn { background-position: -384px -168px; } 133 | .kp { background-position: -0px -192px; } 134 | .kr { background-position: -24px -192px; } 135 | .kw { background-position: -48px -192px; } 136 | .ky { background-position: -72px -192px; } 137 | .kz { background-position: -96px -192px; } 138 | .la { background-position: -120px -192px; } 139 | .lb { background-position: -144px -192px; } 140 | .lc { background-position: -168px -192px; } 141 | .li { background-position: -192px -192px; } 142 | .lk { background-position: -216px -192px; } 143 | .lr { background-position: -240px -192px; } 144 | .ls { background-position: -264px -192px; } 145 | .lt { background-position: -288px -192px; } 146 | .lu { background-position: -312px -192px; } 147 | .lv { background-position: -336px -192px; } 148 | .ly { background-position: -360px -192px; } 149 | .ma { background-position: -384px -192px; } 150 | .mc { background-position: -0px -216px; } 151 | .md { background-position: -24px -216px; } 152 | .me { background-position: -48px -216px; } 153 | .mf { background-position: -72px -216px; } 154 | .mg { background-position: -96px -216px; } 155 | .mh { background-position: -120px -216px; } 156 | .mk { background-position: -144px -216px; } 157 | .ml { background-position: -168px -216px; } 158 | .mm { background-position: -192px -216px; } 159 | .mn { background-position: -216px -216px; } 160 | .mo { background-position: -240px -216px; } 161 | .mp { background-position: -264px -216px; } 162 | .mq { background-position: -288px -216px; } 163 | .mr { background-position: -312px -216px; } 164 | .ms { background-position: -336px -216px; } 165 | .mt { background-position: -360px -216px; } 166 | .mu { background-position: -384px -216px; } 167 | .mv { background-position: -0px -240px; } 168 | .mw { background-position: -24px -240px; } 169 | .mx { background-position: -48px -240px; } 170 | .my { background-position: -72px -240px; } 171 | .mz { background-position: -96px -240px; } 172 | .na { background-position: -120px -240px; } 173 | .nc { background-position: -144px -240px; } 174 | .ne { background-position: -168px -240px; } 175 | .nf { background-position: -192px -240px; } 176 | .ng { background-position: -216px -240px; } 177 | .ni { background-position: -240px -240px; } 178 | .nl { background-position: -264px -240px; } 179 | .no { background-position: -288px -240px; } 180 | .np { background-position: -312px -240px; } 181 | .nr { background-position: -336px -240px; } 182 | .nu { background-position: -360px -240px; } 183 | .nz { background-position: -384px -240px; } 184 | .om { background-position: -0px -264px; } 185 | .pa { background-position: -24px -264px; } 186 | .pe { background-position: -48px -264px; } 187 | .pf { background-position: -72px -264px; } 188 | .pg { background-position: -96px -264px; } 189 | .ph { background-position: -120px -264px; } 190 | .pk { background-position: -192px -264px; } 191 | .pl { background-position: -216px -264px; } 192 | .pn { background-position: -240px -264px; } 193 | .pr { background-position: -264px -264px; } 194 | .ps { background-position: -288px -264px; } 195 | .pt { background-position: -312px -264px; } 196 | .pw { background-position: -336px -264px; } 197 | .py { background-position: -360px -264px; } 198 | .qa { background-position: -384px -264px; } 199 | .ro { background-position: -0px -288px; } 200 | .rs { background-position: -24px -288px; } 201 | .ru { background-position: -48px -288px; } 202 | .rw { background-position: -72px -288px; } 203 | .sa { background-position: -96px -288px; } 204 | .sb { background-position: -120px -288px; } 205 | .sc { background-position: -144px -288px; } 206 | .sd { background-position: -168px -288px; } 207 | .se { background-position: -192px -288px; } 208 | .sg { background-position: -216px -288px; } 209 | .sh { background-position: -240px -288px; } 210 | .si { background-position: -264px -288px; } 211 | .sk { background-position: -288px -288px; } 212 | .sl { background-position: -312px -288px; } 213 | .sm { background-position: -336px -288px; } 214 | .sn { background-position: -360px -288px; } 215 | .so { background-position: -384px -288px; } 216 | .sr { background-position: -0px -312px; } 217 | .ss { background-position: -24px -312px; } 218 | .st { background-position: -48px -312px; } 219 | .sv { background-position: -72px -312px; } 220 | .sy { background-position: -96px -312px; } 221 | .sz { background-position: -120px -312px; } 222 | .tc { background-position: -144px -312px; } 223 | .td { background-position: -168px -312px; } 224 | .tf { background-position: -192px -312px; } 225 | .tg { background-position: -216px -312px; } 226 | .th { background-position: -240px -312px; } 227 | .tj { background-position: -264px -312px; } 228 | .tk { background-position: -288px -312px; } 229 | .tl { background-position: -312px -312px; } 230 | .tm { background-position: -336px -312px; } 231 | .tn { background-position: -360px -312px; } 232 | .to { background-position: -384px -312px; } 233 | .tr { background-position: -0px -336px; } 234 | .tt { background-position: -24px -336px; } 235 | .tv { background-position: -48px -336px; } 236 | .tw { background-position: -72px -336px; } 237 | .tz { background-position: -96px -336px; } 238 | .ua { background-position: -120px -336px; } 239 | .ug { background-position: -144px -336px; } 240 | .us { background-position: -168px -336px; } 241 | .uy { background-position: -192px -336px; } 242 | .uz { background-position: -216px -336px; } 243 | .va { background-position: -240px -336px; } 244 | .vc { background-position: -264px -336px; } 245 | .ve { background-position: -288px -336px; } 246 | .vg { background-position: -312px -336px; } 247 | .vi { background-position: -336px -336px; } 248 | .vn { background-position: -360px -336px; } 249 | .vu { background-position: -384px -336px; } 250 | .wf { background-position: -0px -360px; } 251 | .ws { background-position: -24px -360px; } 252 | .ye { background-position: -48px -360px; } 253 | .za { background-position: -96px -360px; } 254 | .zm { background-position: -120px -360px; } 255 | .zw { background-position: -144px -360px; } 256 | * { 257 | box-sizing: border-box; 258 | -moz-box-sizing: border-box; 259 | } 260 | .hide { 261 | display: none; 262 | } 263 | .v-hide { 264 | visibility: hidden; 265 | } 266 | } 267 | -------------------------------------------------------------------------------- /src/style/common/high-res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bl00mber/react-phone-input-2/39f787cf92b2ebb712b98cd8b62a3a7b38b5fde7/src/style/common/high-res.png -------------------------------------------------------------------------------- /src/style/high-res.less: -------------------------------------------------------------------------------- 1 | @import "./common/high-res-flags.less"; 2 | 3 | .react-tel-input { 4 | .form-control { 5 | position: relative; 6 | font-size: 14px; 7 | letter-spacing: .01rem; 8 | z-index: 0; 9 | margin-top: 0 !important; 10 | margin-bottom: 0 !important; 11 | padding-left: 60px; 12 | margin-left: 0; 13 | background: #FFFFFF; 14 | border: 1px solid #CACACA; 15 | border-radius: 5px; 16 | line-height: 25px; 17 | height: 35px; 18 | width: 300px; 19 | outline: none; 20 | &.invalid-number { 21 | border: 1px solid #d79f9f; 22 | background-color: #FAF0F0; 23 | border-left-color: #cacaca; 24 | &:focus { 25 | border: 1px solid #d79f9f; 26 | border-left-color: #cacaca; 27 | background-color: #FAF0F0; 28 | } 29 | } 30 | &.open { 31 | z-index: 2; 32 | } 33 | } 34 | .flag-dropdown { 35 | position: absolute; 36 | top: 0; 37 | bottom: 0; 38 | padding: 0; 39 | background-color: #f5f5f5; 40 | border: 1px solid #cacaca; 41 | border-radius: 3px 0 0 3px; 42 | &:hover, &:focus { 43 | cursor: pointer; 44 | } 45 | &.open { 46 | z-index: 2; 47 | background: #fff; 48 | border-radius: 3px 0 0 0; 49 | .selected-flag { 50 | background: #fff; 51 | border-radius: 3px 0 0 0; 52 | } 53 | } 54 | } 55 | input[disabled] { 56 | &+.flag-dropdown { 57 | &:hover { 58 | cursor: default; 59 | .selected-flag { 60 | background-color: transparent; 61 | } 62 | } 63 | } 64 | } 65 | .selected-flag { 66 | outline: none; 67 | position: relative; 68 | width: 49px; 69 | height: 100%; 70 | padding: 0 0 0 8px; 71 | border-radius: 3px 0 0 3px; 72 | &:hover, &:focus { 73 | background-color: #fff; 74 | } 75 | .flag { 76 | position: absolute; 77 | top: 50%; 78 | margin-top: -12px; 79 | } 80 | .arrow { 81 | position: relative; 82 | top: 50%; 83 | margin-top: -1px; 84 | left: 30px; 85 | width: 0; 86 | height: 0; 87 | border-left: 3px solid transparent; 88 | border-right: 3px solid transparent; 89 | border-top: 4px solid #555; 90 | &.up { 91 | border-top: none; 92 | border-bottom: 4px solid #555; 93 | } 94 | } 95 | } 96 | .country-list { 97 | outline: none; 98 | z-index: 1; 99 | list-style: none; 100 | position: absolute; 101 | padding: 0; 102 | margin: 10px 0 10px -1px; 103 | box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.35); 104 | background-color: white; 105 | width: 300px; 106 | max-height: 224px; 107 | overflow-y: scroll; 108 | border-radius: 0 0 3px 3px; 109 | .flag { 110 | display: inline-block; 111 | position: absolute; 112 | left: 10px; 113 | top: 3px; 114 | } 115 | .divider { 116 | padding-bottom: 5px; 117 | margin-bottom: 5px; 118 | border-bottom: 1px solid #ccc; 119 | } 120 | .country { 121 | padding: 7px 9px 7px 44px; 122 | position: relative; 123 | .dial-code { 124 | color: #6b6b6b; 125 | } 126 | &:hover { 127 | background-color: #f1f1f1; 128 | } 129 | &.highlight { 130 | background-color: #f1f1f1; 131 | } 132 | } 133 | .country-name { 134 | margin-right: 6px; 135 | } 136 | .search { 137 | z-index: 2; 138 | position: sticky; 139 | top: 0; 140 | background-color: #fff; 141 | padding: 10px 0 6px 10px; 142 | } 143 | .search-emoji { 144 | font-size: 15px; 145 | } 146 | .search-box { 147 | border: 1px solid #cacaca; 148 | border-radius: 3px; 149 | font-size: 15px; 150 | line-height: 15px; 151 | margin-left: 6px; 152 | padding: 3px 8px 5px; 153 | outline: none; 154 | } 155 | .no-entries-message { 156 | padding: 7px 10px 11px; 157 | opacity: .7; 158 | } 159 | } 160 | .special-label { 161 | display: none; 162 | position: absolute; 163 | z-index: 1; 164 | font-size: 13px; 165 | left: 46px; 166 | top: -8px; 167 | background: #fff; 168 | padding: 0 2px; 169 | white-space: nowrap; 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /src/style/material.less: -------------------------------------------------------------------------------- 1 | @import "./common/high-res-flags.less"; 2 | 3 | .react-tel-input { 4 | .form-control { 5 | font-size: 16px; 6 | background: #FFFFFF; 7 | border: 1px solid #CACACA; 8 | border-radius: 5px; 9 | width: 300px; 10 | outline: none; 11 | padding: 18.5px 14px 18.5px 58px; 12 | transition: box-shadow ease .25s, border-color ease .25s; 13 | 14 | &:hover { 15 | border-color: #000; 16 | } 17 | &:focus { 18 | border-color: #1976d2; 19 | box-shadow: 0 0 0 1px #1976d2; 20 | &+div:before { 21 | color: #1976d2; 22 | } 23 | } 24 | &.invalid-number { 25 | border: 1px solid #f44336; 26 | &:focus { 27 | box-shadow: 0 0 0 1px #f44336; 28 | } 29 | &+div:before { 30 | content: 'Error'; 31 | display: none; 32 | color: #f44336; 33 | width: 27px; 34 | } 35 | } 36 | } 37 | .flag-dropdown { 38 | position: absolute; 39 | top: 0; 40 | bottom: 0; 41 | padding: 0; 42 | border-radius: 3px 0 0 3px; 43 | &:hover, &:focus { 44 | cursor: pointer; 45 | } 46 | &.open { 47 | z-index: 2; 48 | } 49 | } 50 | input[disabled] { 51 | &+.flag-dropdown { 52 | &:hover { 53 | cursor: default; 54 | border-color: #CACACA; 55 | .selected-flag { 56 | background-color: transparent; 57 | } 58 | } 59 | } 60 | } 61 | .selected-flag { 62 | outline: none; 63 | position: relative; 64 | width: 52px; 65 | height: 100%; 66 | padding: 0 0 0 11px; 67 | border-radius: 3px 0 0 3px; 68 | &:focus { 69 | .arrow { 70 | border-left-width: 4px; 71 | border-right-width: 4px; 72 | border-top: 5px solid #1976d2; 73 | } 74 | } 75 | .flag { 76 | position: absolute; 77 | top: 50%; 78 | margin-top: -12px; 79 | } 80 | .arrow { 81 | position: relative; 82 | top: 50%; 83 | margin-top: -1px; 84 | left: 29px; 85 | width: 0; 86 | height: 0; 87 | border-left: 3px solid transparent; 88 | border-right: 3px solid transparent; 89 | border-top: 4px solid #555; 90 | &.up { 91 | border-top: none; 92 | border-bottom: 4px solid #555; 93 | } 94 | } 95 | } 96 | .country-list { 97 | outline: none; 98 | z-index: 1; 99 | list-style: none; 100 | position: absolute; 101 | padding: 0; 102 | margin: 10px 0 10px -1px; 103 | box-shadow: 1px 2px 18px rgba(0, 0, 0, 0.25); 104 | background-color: white; 105 | width: 300px; 106 | max-height: 220px; 107 | overflow-y: scroll; 108 | border-radius: 7px; 109 | .flag { 110 | display: inline-block; 111 | position: absolute; 112 | left: 13px; 113 | top: 8px; 114 | } 115 | .divider { 116 | padding-bottom: 5px; 117 | margin-bottom: 5px; 118 | border-bottom: 1px solid #ccc; 119 | } 120 | .country { 121 | position: relative; 122 | padding: 12px 9px 13px 46px; 123 | .dial-code { 124 | color: #6b6b6b; 125 | } 126 | &:hover { 127 | background-color: #f1f1f1; 128 | } 129 | &.highlight { 130 | background-color: #f1f1f1; 131 | } 132 | } 133 | .flag { 134 | margin-right: 7px; 135 | margin-top: 2px; 136 | } 137 | .country-name { 138 | margin-right: 6px; 139 | } 140 | .search { 141 | z-index: 2; 142 | position: sticky; 143 | top: 0; 144 | background-color: #fff; 145 | padding: 10px 0 6px 10px; 146 | } 147 | .search-emoji { 148 | display: none; 149 | font-size: 15px; 150 | } 151 | .search-box { 152 | border: 1px solid #cacaca; 153 | border-radius: 3px; 154 | font-size: 15px; 155 | line-height: 15px; 156 | margin-left: 6px; 157 | padding: 3px 8px 5px; 158 | outline: none; 159 | &:hover { 160 | border-color: #505050; 161 | } 162 | } 163 | .no-entries-message { 164 | padding: 7px 10px 11px; 165 | opacity: .7; 166 | } 167 | } 168 | .invalid-number-message { 169 | position: absolute; 170 | z-index: 1; 171 | font-size: 13px; 172 | left: 25px; 173 | top: -7px; 174 | background: #fff; 175 | padding: 0 5px; 176 | color: #de0000; 177 | } 178 | .special-label { 179 | position: absolute; 180 | z-index: 1; 181 | top: -7px; 182 | left: 25px; 183 | display: block; 184 | background: white; 185 | padding: 0 5px; 186 | font-size: 13px; 187 | white-space: nowrap; 188 | } 189 | } 190 | -------------------------------------------------------------------------------- /src/style/plain.less: -------------------------------------------------------------------------------- 1 | @import "./common/flags.less"; 2 | 3 | .react-tel-input { 4 | .form-control { 5 | position: relative; 6 | font-size: 14px; 7 | letter-spacing: .01rem; 8 | margin-top: 0 !important; 9 | margin-bottom: 0 !important; 10 | padding-left: 48px; 11 | margin-left: 0; 12 | background: #FFFFFF; 13 | border: 1px solid #CACACA; 14 | line-height: 25px; 15 | height: 35px; 16 | width: 300px; 17 | outline: none; 18 | &.invalid-number { 19 | border: 1px solid #d79f9f; 20 | background-color: #FAF0F0; 21 | border-left-color: #cacaca; 22 | &:focus { 23 | border: 1px solid #d79f9f; 24 | border-left-color: #cacaca; 25 | background-color: #FAF0F0; 26 | } 27 | } 28 | } 29 | .flag-dropdown { 30 | position: absolute; 31 | top: 0; 32 | bottom: 0; 33 | padding: 0; 34 | border: 1px solid #cacaca; 35 | &:hover, &:focus, &.open { 36 | cursor: pointer; 37 | } 38 | &.open { 39 | z-index: 2; 40 | background: #fff; 41 | .selected-flag { 42 | background: #fff; 43 | } 44 | } 45 | } 46 | input[disabled] { 47 | &+.flag-dropdown { 48 | &:hover { 49 | cursor: default; 50 | .selected-flag { 51 | background-color: transparent; 52 | } 53 | } 54 | } 55 | } 56 | .selected-flag { 57 | outline: none; 58 | position: relative; 59 | width: 38px; 60 | height: 100%; 61 | padding: 0 0 0 8px; 62 | border-radius: 3px 0 0 3px; 63 | &:hover, &:focus, &.open { 64 | background-color: #f5f5f5; 65 | } 66 | .flag { 67 | position: absolute; 68 | top: 50%; 69 | margin-top: -5px; 70 | } 71 | .arrow { 72 | position: relative; 73 | top: 50%; 74 | margin-top: -2px; 75 | left: 20px; 76 | width: 0; 77 | height: 0; 78 | border-left: 3px solid transparent; 79 | border-right: 3px solid transparent; 80 | border-top: 4px solid #555; 81 | &.up { 82 | border-top: none; 83 | border-bottom: 4px solid #555; 84 | } 85 | } 86 | } 87 | .country-list { 88 | outline: none; 89 | z-index: 1; 90 | list-style: none; 91 | position: absolute; 92 | padding: 0; 93 | margin: 0px 0 10px -1px; 94 | background-color: white; 95 | border: 1px solid #cacaca; 96 | width: 300px; 97 | max-height: 282px; 98 | overflow-y: scroll; 99 | .flag { 100 | display: inline-block; 101 | } 102 | .divider { 103 | padding-bottom: 5px; 104 | margin-bottom: 5px; 105 | border-bottom: 1px solid #ccc; 106 | } 107 | .country { 108 | padding: 5px 9px; 109 | .dial-code { 110 | color: #6b6b6b; 111 | } 112 | &:hover { 113 | background-color: #f1f1f1; 114 | } 115 | &.highlight { 116 | background-color: #f1f1f1; 117 | } 118 | } 119 | .flag { 120 | margin-right: 7px; 121 | margin-top: 2px; 122 | } 123 | .country-name { 124 | margin-right: 6px; 125 | } 126 | .search { 127 | position: sticky; 128 | top: 0; 129 | background-color: #fff; 130 | } 131 | .search-emoji { 132 | font-size: 15px; 133 | position: absolute; 134 | top: 5px; 135 | left: 9px; 136 | } 137 | .search-box { 138 | border: none; 139 | border-bottom: 1px solid #cacaca; 140 | width: 100%; 141 | font-size: 15px; 142 | line-height: 15px; 143 | padding: 5px 8px 5px 32px; 144 | outline: none; 145 | } 146 | .no-entries-message { 147 | padding: 7px 10px 11px; 148 | opacity: .7; 149 | } 150 | } 151 | .invalid-number-message { 152 | position: absolute; 153 | z-index: 1; 154 | font-size: 13px; 155 | left: 46px; 156 | top: -8px; 157 | background: #fff; 158 | padding: 0 2px; 159 | color: #de0000; 160 | } 161 | .special-label { 162 | display: none; 163 | position: absolute; 164 | z-index: 1; 165 | font-size: 13px; 166 | left: 46px; 167 | top: -8px; 168 | background: #fff; 169 | padding: 0 2px; 170 | white-space: nowrap; 171 | } 172 | } 173 | -------------------------------------------------------------------------------- /src/style/semantic-ui.less: -------------------------------------------------------------------------------- 1 | @import "./common/flags.less"; 2 | 3 | .react-tel-input { 4 | .form-control { 5 | position: relative; 6 | font-size: 14px; 7 | letter-spacing: .01rem; 8 | margin-top: 0 !important; 9 | margin-bottom: 0 !important; 10 | padding-left: 48px; 11 | margin-left: 0; 12 | background: #FFFFFF; 13 | border: 1px solid #CACACA; 14 | border-radius: 5px; 15 | line-height: 25px; 16 | height: 35px; 17 | width: 300px; 18 | outline: none; 19 | &:hover { 20 | border-color: #a2a2a2; 21 | } 22 | &.invalid-number { 23 | border: 1px solid #d79f9f; 24 | background-color: #FAF0F0; 25 | border-left-color: #cacaca; 26 | &:focus { 27 | border: 1px solid #d79f9f; 28 | border-left-color: #cacaca; 29 | background-color: #FAF0F0; 30 | } 31 | } 32 | &.open { 33 | box-shadow: rgba(34, 36, 38, 0.15) 0px 2px 3px 0px; 34 | border-color: rgb(150, 200, 218); 35 | border-radius: 5px 5px 0 0; 36 | border-bottom: none; 37 | box-shadow: none; 38 | } 39 | } 40 | .flag-dropdown { 41 | position: absolute; 42 | top: 0; 43 | bottom: 0; 44 | padding: 0; 45 | background-color: #f5f5f5; 46 | border: 1px solid #cacaca; 47 | border-radius: 3px 0 0 3px; 48 | &:hover, &:focus { 49 | cursor: pointer; 50 | } 51 | &.open { 52 | background: #fff; 53 | border-radius: 3px 0 0 0; 54 | .selected-flag { 55 | background: #fff; 56 | border-radius: 3px 0 0 0; 57 | } 58 | } 59 | } 60 | input[disabled] { 61 | &+.flag-dropdown { 62 | &:hover { 63 | cursor: default; 64 | .selected-flag { 65 | background-color: transparent; 66 | } 67 | } 68 | } 69 | } 70 | .selected-flag { 71 | outline: none; 72 | position: relative; 73 | width: 38px; 74 | height: 100%; 75 | padding: 0 0 0 8px; 76 | border-radius: 3px 0 0 3px; 77 | &:hover, &:focus { 78 | background-color: #fff; 79 | } 80 | .flag { 81 | position: absolute; 82 | top: 50%; 83 | margin-top: -5px; 84 | } 85 | .arrow { 86 | position: relative; 87 | top: 50%; 88 | margin-top: -2px; 89 | left: 20px; 90 | width: 0; 91 | height: 0; 92 | border-left: 3px solid transparent; 93 | border-right: 3px solid transparent; 94 | border-top: 4px solid #555; 95 | &.up { 96 | border-top: none; 97 | border-bottom: 4px solid #555; 98 | } 99 | } 100 | &.open { 101 | z-index: 2; 102 | } 103 | } 104 | .country-list { 105 | outline: none; 106 | z-index: 1; 107 | border-radius: 0 0 5px 5px; 108 | border: 1px solid rgb(150, 200, 218); 109 | border-top: none; 110 | list-style: none; 111 | position: absolute; 112 | padding: 0; 113 | margin: 0px 0 10px -1px; 114 | box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.12); 115 | background-color: white; 116 | width: 300px; 117 | max-height: 200px; 118 | overflow-y: scroll; 119 | .flag { 120 | display: inline-block; 121 | } 122 | .divider { 123 | padding-bottom: 5px; 124 | margin-bottom: 5px; 125 | border-bottom: 1px solid #ccc; 126 | } 127 | .country { 128 | padding: 7px 9px; 129 | .dial-code { 130 | color: #6b6b6b; 131 | } 132 | &:hover { 133 | background-color: #f1f1f1; 134 | } 135 | &.highlight { 136 | background-color: #f1f1f1; 137 | } 138 | } 139 | .flag { 140 | margin-right: 7px; 141 | margin-top: 2px; 142 | } 143 | .country-name { 144 | margin-right: 6px; 145 | } 146 | .search { 147 | position: sticky; 148 | top: 0; 149 | background-color: #fff; 150 | padding: 5px 0 6px 10px; 151 | } 152 | .search-emoji { 153 | display: none; 154 | font-size: 15px; 155 | } 156 | .search-box { 157 | border: 1px solid #cacaca; 158 | border-radius: 3px; 159 | font-size: 15px; 160 | line-height: 15px; 161 | padding: 3px 8px 5px; 162 | outline: none; 163 | } 164 | .no-entries-message { 165 | padding: 7px 10px 11px; 166 | opacity: .7; 167 | } 168 | &::-webkit-scrollbar { width: 12px; } 169 | &::-webkit-scrollbar-track { background-color: #e6e6e6; } 170 | &::-webkit-scrollbar-thumb { background-color: #c5c5c4; border-radius: 5px; } 171 | } 172 | .invalid-number-message { 173 | position: absolute; 174 | z-index: 1; 175 | font-size: 13px; 176 | left: 46px; 177 | top: -8px; 178 | background: #fff; 179 | padding: 0 2px; 180 | color: #de0000; 181 | } 182 | .special-label { 183 | display: none; 184 | position: absolute; 185 | z-index: 1; 186 | font-size: 13px; 187 | left: 46px; 188 | top: -8px; 189 | background: #fff; 190 | padding: 0 2px; 191 | white-space: nowrap; 192 | } 193 | } 194 | -------------------------------------------------------------------------------- /src/style/style.less: -------------------------------------------------------------------------------- 1 | @import "./common/flags.less"; 2 | 3 | .react-tel-input { 4 | .form-control { 5 | position: relative; 6 | font-size: 14px; 7 | letter-spacing: .01rem; 8 | margin-top: 0 !important; 9 | margin-bottom: 0 !important; 10 | padding-left: 48px; 11 | margin-left: 0; 12 | background: #FFFFFF; 13 | border: 1px solid #CACACA; 14 | border-radius: 5px; 15 | line-height: 25px; 16 | height: 35px; 17 | width: 300px; 18 | outline: none; 19 | &.invalid-number { 20 | border: 1px solid #d79f9f; 21 | background-color: #FAF0F0; 22 | border-left-color: #cacaca; 23 | &:focus { 24 | border: 1px solid #d79f9f; 25 | border-left-color: #cacaca; 26 | background-color: #FAF0F0; 27 | } 28 | } 29 | } 30 | .flag-dropdown { 31 | position: absolute; 32 | top: 0; 33 | bottom: 0; 34 | padding: 0; 35 | background-color: #f5f5f5; 36 | border: 1px solid #cacaca; 37 | border-radius: 3px 0 0 3px; 38 | &:hover, &:focus { 39 | cursor: pointer; 40 | } 41 | &.invalid-number { 42 | border-color: #d79f9f; 43 | } 44 | &.open { 45 | z-index: 2; 46 | background: #fff; 47 | border-radius: 3px 0 0 0; 48 | .selected-flag { 49 | background: #fff; 50 | border-radius: 3px 0 0 0; 51 | } 52 | } 53 | } 54 | input[disabled] { 55 | &+.flag-dropdown { 56 | &:hover { 57 | cursor: default; 58 | .selected-flag { 59 | background-color: transparent; 60 | } 61 | } 62 | } 63 | } 64 | .selected-flag { 65 | outline: none; 66 | position: relative; 67 | width: 38px; 68 | height: 100%; 69 | padding: 0 0 0 8px; 70 | border-radius: 3px 0 0 3px; 71 | &:hover, &:focus { 72 | background-color: #fff; 73 | } 74 | .flag { 75 | position: absolute; 76 | top: 50%; 77 | margin-top: -5px; 78 | } 79 | .arrow { 80 | position: relative; 81 | top: 50%; 82 | margin-top: -2px; 83 | left: 20px; 84 | width: 0; 85 | height: 0; 86 | border-left: 3px solid transparent; 87 | border-right: 3px solid transparent; 88 | border-top: 4px solid #555; 89 | &.up { 90 | border-top: none; 91 | border-bottom: 4px solid #555; 92 | } 93 | } 94 | } 95 | .country-list { 96 | outline: none; 97 | z-index: 1; 98 | list-style: none; 99 | position: absolute; 100 | padding: 0; 101 | margin: 10px 0 10px -1px; 102 | box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.35); 103 | background-color: white; 104 | width: 300px; 105 | max-height: 200px; 106 | overflow-y: scroll; 107 | border-radius: 0 0 3px 3px; 108 | .flag { 109 | display: inline-block; 110 | } 111 | .divider { 112 | padding-bottom: 5px; 113 | margin-bottom: 5px; 114 | border-bottom: 1px solid #ccc; 115 | } 116 | .country { 117 | padding: 7px 9px; 118 | .dial-code { 119 | color: #6b6b6b; 120 | } 121 | &:hover { 122 | background-color: #f1f1f1; 123 | } 124 | &.highlight { 125 | background-color: #f1f1f1; 126 | } 127 | } 128 | .flag { 129 | margin-right: 7px; 130 | margin-top: 2px; 131 | } 132 | .country-name { 133 | margin-right: 6px; 134 | } 135 | .search { 136 | position: sticky; 137 | top: 0; 138 | background-color: #fff; 139 | padding: 10px 0 6px 10px; 140 | } 141 | .search-emoji { 142 | font-size: 15px; 143 | } 144 | .search-box { 145 | border: 1px solid #cacaca; 146 | border-radius: 3px; 147 | font-size: 15px; 148 | line-height: 15px; 149 | margin-left: 6px; 150 | padding: 3px 8px 5px; 151 | outline: none; 152 | } 153 | .no-entries-message { 154 | padding: 7px 10px 11px; 155 | opacity: .7; 156 | } 157 | } 158 | .invalid-number-message { 159 | position: absolute; 160 | z-index: 1; 161 | font-size: 13px; 162 | left: 46px; 163 | top: -8px; 164 | background: #fff; 165 | padding: 0 2px; 166 | color: #de0000; 167 | } 168 | .special-label { 169 | display: none; 170 | position: absolute; 171 | z-index: 1; 172 | font-size: 13px; 173 | left: 46px; 174 | top: -8px; 175 | background: #fff; 176 | padding: 0 2px; 177 | white-space: nowrap; 178 | } 179 | } 180 | -------------------------------------------------------------------------------- /src/utils/prototypes.js: -------------------------------------------------------------------------------- 1 | /** 2 | * String.prototype.padStart() polyfill 3 | * https://github.com/uxitten/polyfill/blob/master/string.polyfill.js 4 | * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd 5 | */ 6 | if (!String.prototype.padEnd) { 7 | String.prototype.padEnd = function padEnd(targetLength, padString) { 8 | targetLength = targetLength >> 0; //floor if number or convert non-number to 0; 9 | padString = String((typeof padString !== 'undefined' ? padString : ' ')); 10 | if (this.length > targetLength) { 11 | return String(this); 12 | } 13 | else { 14 | targetLength = targetLength - this.length; 15 | if (targetLength > padString.length) { 16 | padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed 17 | } 18 | return String(this) + padString.slice(0, targetLength); 19 | } 20 | }; 21 | } -------------------------------------------------------------------------------- /test/ReactPhoneInput.test.js: -------------------------------------------------------------------------------- 1 | import { render, fireEvent, cleanup } from 'react-testing-library' 2 | import React from 'react' 3 | import PhoneInput from '../src/index' 4 | 5 | 6 | afterEach(cleanup) 7 | 8 | describe(' countries props', () => { 9 | test('has not "us" country in the dropdown', () => { 10 | const { container: phoneInput } = render( 11 | ) 14 | 15 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 16 | expect(phoneInput.querySelectorAll('li[data-country-code="us"]').length).toBe(0) 17 | expect(phoneInput.querySelectorAll('li[data-country-code="gb"]').length).toBe(1) 18 | }) 19 | 20 | test('has only "us" country in the dropdown', () => { 21 | const { container: phoneInput } = render( 22 | ) 25 | 26 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 27 | expect(phoneInput.querySelectorAll('li[data-country-code="us"]').length).toBeGreaterThan(0) 28 | expect(phoneInput.querySelectorAll('li[data-country-code="gb"]').length).toBe(0) 29 | }) 30 | 31 | test('has "us" in the preferred countries section', () => { 32 | const { container: phoneInput } = render( 33 | ) 36 | 37 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 38 | expect(phoneInput.querySelector('.country-list').children[0].dataset.countryCode).toBe('us') 39 | }) 40 | }) 41 | 42 | 43 | describe(' main props', () => { 44 | test('has "us" as the default/highlighted country', () => { 45 | const { container: phoneInput } = render( 46 | ) 49 | 50 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 51 | expect(phoneInput.querySelector('.selected-flag').children[0].classList).toContain('us') 52 | expect(phoneInput.querySelector('li[data-country-code="us"]').classList).toContain('highlight') 53 | }) 54 | 55 | test('receive formatted value', () => { 56 | const { container: phoneInput } = render( 57 | ) 60 | 61 | expect(phoneInput.querySelector('.form-control').value).toBe('+380 (23) 432 52') 62 | }) 63 | }) 64 | 65 | 66 | describe(' event handlers', () => { 67 | test('onChange is called with unformatted value and country object as callback arguments', () => { 68 | const mockFn = jest.fn(); 69 | const { container: phoneInput } = render( 70 | ) 74 | 75 | fireEvent.change(phoneInput.querySelector('.form-control'), {target: {value: '12345'}}) 76 | expect(mockFn).toHaveBeenCalledWith('12345', {name: 'United States', dialCode: '1', 'format': '+. (...) ...-....', countryCode: 'us'}, expect.any(Object), '+1 (234) 5') 77 | }) 78 | }) 79 | 80 | 81 | describe(' other props', () => { 82 | test('pass inputProps into the input', () => { 83 | const { container: phoneInput } = render( 84 | ) 87 | 88 | expect(phoneInput.querySelector('.form-control').name).toBe('phone') 89 | }) 90 | 91 | test('filter european countries with the regions={\'europe\'} prop', () => { 92 | const { container: phoneInput } = render( 93 | ) 96 | 97 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 98 | expect(phoneInput.querySelectorAll('li[data-country-code="us"]').length).toBe(0) 99 | expect(phoneInput.querySelectorAll('li[data-country-code="ca"]').length).toBe(0) 100 | expect(phoneInput.querySelectorAll('li[data-country-code="ua"]').length).toBe(1) 101 | expect(phoneInput.querySelectorAll('li[data-country-code="fr"]').length).toBe(1) 102 | }) 103 | 104 | test('localize countries labels using "localization" prop', () => { 105 | const { container: phoneInput } = render( 106 | ) 110 | 111 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 112 | expect(phoneInput.querySelector('li[data-country-code="de"]').querySelector('.country-name').textContent).toBe('Deutschland') 113 | expect(phoneInput.querySelector('li[data-country-code="es"]').querySelector('.country-name').textContent).toBe('España') 114 | }) 115 | 116 | test('render custom mask with the "masks" prop', () => { 117 | const { container: phoneInput } = render( 118 | ) 124 | 125 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 126 | expect(phoneInput.querySelector('.form-control').value).toBe('+33 (543) 77-33-22') 127 | }) 128 | 129 | test('not renders area codes with disableAreaCodes', () => { 130 | const { container: phoneInput } = render( 131 | ) 134 | 135 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 136 | expect(phoneInput.querySelectorAll('li[data-country-code="us"]').length).toBe(1) 137 | expect(phoneInput.querySelectorAll('li[data-country-code="ca"]').length).toBe(1) 138 | }) 139 | 140 | test('search correct country via search field', () => { 141 | const { container: phoneInput } = render( 142 | ) 145 | 146 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 147 | fireEvent.change(phoneInput.querySelector('.search-box'), {target: {value: 'gb'}}) 148 | expect(phoneInput.querySelector('.country-list').children.length).toBe(2) // search field & 1 search result 149 | expect(phoneInput.querySelector('.country-list').children[1].querySelector('.country-name').textContent).toBe('United Kingdom') 150 | }) 151 | 152 | test('search "undefined" string returns no non-matching results', () => { 153 | const { container: phoneInput } = render( 154 | ) 157 | 158 | fireEvent.click(phoneInput.querySelector('.selected-flag')) 159 | fireEvent.change(phoneInput.querySelector('.search-box'), {target: {value: 'undefined'}}) 160 | expect(phoneInput.querySelector('.no-entries-message')).toBeTruthy() 161 | }) 162 | }) 163 | 164 | 165 | describe('correct value update', () => { 166 | test('should rerender without crashing', () => { 167 | const { container: phoneInput, rerender } = render( 168 | ) 171 | 172 | rerender( 173 | ) 176 | 177 | rerender( 178 | ) 181 | 182 | rerender( 183 | ) 186 | 187 | expect(phoneInput.querySelector('.selected-flag').children.length).toBe(1) 188 | expect(phoneInput.querySelector('.selected-flag').children[0].className).toBe('flag 0') 189 | }) 190 | 191 | test('should rerender country without crashing', () => { 192 | const { container: phoneInput, rerender } = render( 193 | ) 196 | 197 | rerender( 198 | ) 201 | 202 | rerender( 203 | ) 206 | 207 | expect(phoneInput.querySelector('.selected-flag').children.length).toBe(1) 208 | expect(phoneInput.querySelector('.selected-flag').children[0].className).toBe('flag es') 209 | }) 210 | 211 | it('renders one prefix when updated from empty value', () => { 212 | const { container: phoneInput, rerender } = render( 213 | ) 216 | 217 | rerender( 218 | ) 221 | 222 | expect(phoneInput.querySelector('.form-control').value).toBe('+49 1701 601234') 223 | }) 224 | }) 225 | -------------------------------------------------------------------------------- /test/__mocks__/fileMock.js: -------------------------------------------------------------------------------- 1 | module.exports = 'test-file-stub'; 2 | -------------------------------------------------------------------------------- /test/__mocks__/styleMock.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /test/dev_css/demo.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render } from 'react-dom'; 3 | import PhoneInput from '../../src/index'; 4 | // import '../../src/style/material.less'; // enable on dev 5 | 6 | 7 | class Demo extends React.Component { 8 | state = { currentStyle: '', fetch: true } 9 | 10 | componentDidMount () { 11 | this.loadCSS('material') // disable on dev 12 | // this.setState({ fetch: false }) // enable on dev 13 | } 14 | 15 | updateStyle = (e) => { 16 | const text = e.target.textContent 17 | this.setState({ fetch: true }, () => 18 | this.toggleCSS(this.state.currentStyle, text)) 19 | } 20 | 21 | toggleCSS = (unloadFilename, loadFilename) => { 22 | // unload 23 | var links=document.getElementsByTagName("link") 24 | for (var i=links.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove 25 | if (links[i] && links[i].getAttribute("href")!=null && links[i].getAttribute("href").indexOf(unloadFilename+'.css')!=-1) 26 | links[i].parentNode.removeChild(links[i]) //remove element by calling parentNode.removeChild() 27 | } 28 | 29 | this.loadCSS(loadFilename) 30 | } 31 | 32 | loadCSS = (loadFilename) => { 33 | // load 34 | const link=document.createElement("link") 35 | link.setAttribute("rel", "stylesheet") 36 | link.setAttribute("type", "text/css") 37 | link.setAttribute("href", loadFilename+'.css') 38 | if (typeof link!="undefined") document.getElementsByTagName("head")[0].appendChild(link) 39 | 40 | link.onload = () => this.setState({currentStyle: loadFilename, fetch: false}) 41 | } 42 | 43 | render() { 44 | const { currentStyle, fetch } = this.state 45 | return ( 46 |
47 |