CHANGELOG.md 34.5 KB
Newer Older
catamphetamine's avatar
catamphetamine committed
1
2
<!-- Maybe change the link to the flags to this repo's `unpkg.com` or something like that.  -->

3
4
5
6
7
3.2.0 / 21.05.2022
==================

* Migrated to "ES Module" exports.

Nikolay Kuchumov's avatar
Nikolay Kuchumov committed
8
9
10
11
12
3.1.50 / 11.04.2022
==================

* [Fixed](https://github.com/catamphetamine/react-phone-number-input/issues/405) erasing `react-hook-form` component's value.

Nikolay Kuchumov's avatar
Nikolay Kuchumov committed
13
14
15
16
17
3.1.37 / 03.11.2021
==================

* [Fixed](https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/91) TypeScript "typings".

18
19
20
21
22
3.1.36 / 02.11.2021
==================

* [Fixed](https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/93) formatting incomplete phone numbers having less than 3 leading digits.

Nikolay Kuchumov's avatar
Nikolay Kuchumov committed
23
24
25
26
27
28
29
3.1.32 / 07.10.2021
==================

* Added TypeScript "typings".

* The `/core` "with country select" component now doesn't require a `countrySelectComponent` property because it now has a default value.

Nikolay Kuchumov's avatar
Nikolay Kuchumov committed
30
31
32
33
34
3.1.31 / 03.10.2021
==================

* Added `inputComponent` property on a React Native "without country select" component.

Nikolay Kuchumov's avatar
Nikolay Kuchumov committed
35
36
37
38
39
3.1.28 / 08.09.2021
==================

* Fixed a [small bug](https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/82) in a "without country select" input: when setting a `country` that doesn't correspond to the current `value` property it now changes the `value` property accordingly.

40
41
42
43
44
3.1.23 / 27.05.2021
==================

* [Fixed](https://github.com/catamphetamine/react-phone-number-input/issues/296#issuecomment-849248267) React Native `{...rest}` props passthrough.

45
46
47
48
49
3.1.20 / 26.04.2021
==================

* [Fixed](https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/38) `addInternationalOption={false}` React warning.

Nikolay Kuchumov's avatar
Nikolay Kuchumov committed
50
51
52
53
54
3.1.19 / 13.04.2021
==================

* Added [`react-hook-form@7` support](https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/57).

55
56
57
58
59
3.1.18 / 23.03.2021
==================

* Fixed a [minor small bug](https://github.com/catamphetamine/react-phone-number-input/issues/378) when `defaultCountry` is selected as the country even when the initial `value` couldn't possibly belong to that country.

60
61
62
63
64
65
3.1.10 / 18.01.2021
==================

* Added `react-hook-form` components.

3.1.9 / 07.01.2021
catamphetamine's avatar
catamphetamine committed
66
67
68
69
==================

* [Fixed](https://github.com/catamphetamine/react-phone-number-input/issues/377) determining the `country` for a very incomplete `value` when `value` is set externally.

70
71
72
73
74
3.1.8 / 09.12.2020
==================

* [Fixed](https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43) entering phone number digits in "force international" mode when the prefix is selected.

75
76
77
78
79
80
81
3.1.6 / 16.11.2020
==================

* Fixed "International" option not being added.

* Added `"🌐"` ("International") option to `countryOptionsOrder`.

82
83
84
85
86
3.1.5 / 08.11.2020
==================

* [Fixed](https://github.com/catamphetamine/react-phone-number-input/issues/367) the ability to erase country calling code when `countryCallingCodeEditable={false}`.

87
88
89
90
91
3.1.2 / 26.10.2020
==================

* `displayInitialValueAsLocalNumber={true}` property is deprecated: it has been replaced with `initialValueFormat="national"` property. The old property still works in version `3.x`.

92
93
* [Added](https://github.com/catamphetamine/react-phone-number-input/issues/367) `countryCallingCodeEditable={false}` property on a "with country select" component: when `international` is `true`, then, by default, the "country calling code" part of a phone number is editable. Passing `countryCallingCodeEditable={false}` property makes it non-editable.

94
3.1.1 / 24.10.2020
95
96
==================

97
98
99
* [Added](https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/35) `focusInputOnCountrySelection: boolean` property. If set to `false`, will not focus the `<input/>` component when the user selects a country from the list of countries. This can be used to conform to the Web Content Accessibility Guidelines (WCAG). Quote: "On input: Changing the setting of any user interface component does not automatically cause a change of context unless the user has been advised of the behaviour before using the component".

* [Added](https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/36) `international: false` property that doesn't allow international phone number format during input. Some hypothetical people could hypothetically already be passing something like `international={condition ? true : false}` in their apps, meaning that this new version's behavior regarding `international={false}` could potentially come as a surprise for them, but that would be an indefinitely small minority, and it wouldn't strictly speaking break their apps because users would still be able to input their phone number.
100

101
102
3.1.0 / 23.09.2020
==================
103

104
105
* Added `withCountryCallingCode` property on the `/input` component: when `country` is set and `international` is `true` and `withCountryCallingCode` is `true` then the "country calling code" part of the phone number will be included in the `<input/>` field.

106
107
* Added an _experimental_ React Native exported component (see the README).

108
109
* "With country select" component in "force international mode" now [appends "leading digits"](https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10) for some countries when pre-populating the initial phone number prefix.

110
111
112
113
114
115
3.0.27 / 22.09.2020
===================

* Fixed a bug when resetting `defaultCountry` property of a "with country select" component produced an error.


catamphetamine's avatar
catamphetamine committed
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
3.0.14 / 22.01.2020
===================

* Removed `--PhoneInputCountryFlag-width` CSS variable.

* Added `--PhoneInputCountryFlag-aspectRatio` CSS variable.

3.0.0 / 01.01.2020
===================

Relevant changes:

* The component uses hooks now, so `react >= 16.8` is required.

* `ref` is now forwarded to the `<input/>`.

catamphetamine's avatar
catamphetamine committed
132
* [`style.css`](https://gitlab.com/catamphetamine/react-phone-number-input/blob/master/style.css) now uses [native CSS variables](https://medium.freecodecamp.org/learn-css-variables-in-5-minutes-80cf63b4025d). Native CSS variables work in all modern browsers, but older ones like Internet Explorer [won't support them](https://caniuse.com/#search=var). For compatibility with such older browsers one can use a CSS transformer like [PostCSS](http://postcss.org/) with a "CSS custom properties" plugin like [`postcss-custom-properties`](https://github.com/postcss/postcss-custom-properties).
catamphetamine's avatar
catamphetamine committed
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

* Renamed CSS classes, and refactored styles.

* Changed the flags: now they're simpler, smaller in disk size, and have `3x2` aspect ratio instead of `4x3`.

* Renamed CDN `bundle` files:

1. `react-phone-number-input-native` -> `react-phone-number-input`.
2. `react-phone-number-input-native-max` -> `react-phone-number-input-max`.
3. `react-phone-number-input-native-mobile` -> `react-phone-number-input-mobile`.
4. `react-phone-number-input-no-country-select` -> `react-phone-number-input-input`.
5. Removed `-react-responsive-ui` and `-smart-input` versions from CDN `bundle`.

* CDN `bundle` exported global variable is now called `window.PhoneInput.default` (used to be called `window['react-phone-number-input']`), and utility functions are accessible via `window.PhoneInput` variable.

* Removed `locale/default.json` (use `en.json` instead) and `locale/br.json` (use `pt.json` instead).

catamphetamine's avatar
catamphetamine committed
150
* Flags are now loaded from [`country-flag-icons`](https://gitlab.com/catamphetamine/country-flag-icons) library.
catamphetamine's avatar
catamphetamine committed
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
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
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
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
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636

* Removed properties:

1. `error`
2. `disablePhoneInput`
3. `inputClassName` (use `numberInputProps` instead)
4. `countrySelectTabIndex` and `countrySelectAriaLabel` (use `countrySelectProps` instead)
5. `showCountrySelect` (use `/input` subpackage instead to render a component without country select).
6. `ext` (this component now doesn't deal with phone number extensions at all).

* Removed the former `inputComponent` property, and renamed `numberInputComponent` property to `inputComponent`.

* Renamed properties:

1. `international` -> `addInternationalOption`
2. `countryOptions` -> `countryOptionsOrder`
3. `country` -> `defaultCountry`

* Renamed `flagsPath` property to `flagUrl`, and it's now a full URL template having `{XX}` in place of a country code in upper case or `{xx}` in place of a country code in lower case.

Other changes (miscellaneous):

* Replaced `webpack` with `rollup` when generating CDN bundles.

* Removed `/libphonenumber`, `/native`, `/custom`, `/native-custom`, `/react-responsive-ui`,  `/react-responsive-ui/custom`, `/basic-input`, `/basic-input-custom`, `/international-icon` exports.

* Removed `parseRFC3966()` and `formatRFC3966()` exported functions.

* Country select doesn't receive `icon` property as part of `options` now. Instead, it receives `iconComponent` property, where `iconComponent` receives a `country` property (for example, `"US"`).

* Removed `redux-form` `onBlur` workaround. `redux-form` is deprecated.

* `internationalIcon` is now 4x3, like the rest of the flags (used to be square).

* Flags have been copied from `flag-icon-css` repo's github pages to this repo's github pages.

* Added `unicodeFlags` property of country select (the demo page has a showcase).

2.5.2 / 31.12.2019
===================

  * Added `inputStyleReset: boolean` property that can be set to `true` to prevent the library from applying decoration styles to the `<input/>`.

2.5.0 / 09.11.2019
===================

  * Temporarily reverted back to "smart input" instead of the "basic input" (with the `smartCaret` property now being `true` by default). The reason is that I've added a [potential workaround](https://github.com/catamphetamine/input-format/issues/2#issuecomment-552032606) for Android devices to `input-format` library ("smart caret" implementation). We'll see if anyone reports anything. There have been some minor complaints about "basic caret" not being "smart" enough by always jumping to the end of the input field.

  * Added `isPossiblePhoneNumber(string): boolean` exported function: it checks if the phone number is "possible". Only checks the phone number length, doesn't check the number digits against any regular expressions like `isValidPhoneNumber()` does.

  * Added `getCountries(): string[]` exported function (returns an array of all possible country codes).

  * Added `international={true}` property to "without country select" input. If `country` property is passed along with `international={true}` property then the phone input will be input in "international" format for that `country` (without "country calling code"). For example, if `country="US"` property is passed to "without country select" input then the phone number will be input in the "national" format for `US` (`(213) 373-4253`). But if both `country="US"` and `international={true}` properties are passed then the phone number will be input in the "international" format for `US` (`213 373 4253`) (without "country calling code" `+1`). This

  * Added `defaultCountry: string` and `useNationalFormatForDefaultCountryValue: boolean` properties to "without country select" input.

  * Added `smartCaret` property to "without country select" input. It's the same one as the `smartCaret` property of the default ("with country select") phone number input. That also means that "without country select" input now defaults to "smart caret" mode rather than "basic caret" mode.

  * Added `countryCallingCode` property to "without country select" input. When `country` property is passed along with `international={true}` property then by default the phone number will be input in the "international" format for `US` (`+1 213 373 4253`). However, if `countryCallingCode={false}` property is passed then the country calling code part (`+1`) will be omitted, and the phone number will be input in the "international" format for `US` without "country calling code" (`213 373 4253`).

  * Removed `redux-form` onBlur bug workaround from the recently introduced "without country select" component. If there're any `redux-form` bugs then the new versions of this library won't be fixing them. `redux-form` has been deprecated for a long time.

  * Added [`reset: any`](https://github.com/catamphetamine/react-phone-number-input/issues/300) property that resets `value` and `country` whenever it's changed. It's not implemented as some instance `.reset()` method because `ref` will likely be forwarded to `<input/>`.

2.4.0 / 17.10.2019
===================

  * The previous "patch" version bump that added `numberInputComponent` property should actually have been a "feature" version bump, so bumping "feature" version now.

  * The country is now reset in cases when a user erases a phone number that has been input in international format. This fixes the cases when a user tries to input their local phone number when no country has been selected and ends up with an international phone number and a randomly selected country. Then such user erases the `<input/>` contents and tries inputting their local phone number again (now with the random country being selected) — this results in a seemingly-correct phone number but the reality is that the country of the phone number is completely unrelated (random). The change in this release fixes that: when a user erases all digits of an international number the random-selected country is reset.

  * Added `numberInputProps` and `countrySelectProps`. If a custom `inputComponent` property has been specified then this new `numberInputProps` property might result in an `"Unknown prop "inputProps" on <input> tag"` React warning because this new `numberInputProps` property is most likely passed as `{...rest}` to the underlying `<input/>`. But such warning isn't considered a "breaking change", and it's unlikely that anyone actually passed their own `inputComponent` due to the complexity.

  * Added an `/input` subpackage that exports the "Without country select" phone number input component. The previously proposed `/basic-input` subpackage is now deprecated.

  * Added `prevInput` argument to `parseInput()` function of `input-control.js`. It's unlikely that anyone used it directly as `import { parseInput } from 'react-phone-number-input/commonjs/input-control'`. But if anyone did then such code would break because the function's arguments changed.

  * (misc) Removed the unintuitive "magic" phone number digits conversion logic when a phone number in international format has been input and then the user decides to select another country: previously it replaced the "country calling code" of the previous country with the "country calling code" of the new country keeping the international format of the phone number. It has been noticed that selecting a country manually having an international phone number already typed in most likely corresponds to the cases when the user tried typing in a local phone number with no country selected resulting in an international number being input and a random country being selected. Then such user decides to select the correct country manually and expects his input to be corrected back to "local" format. See the [original issue](https://github.com/catamphetamine/react-phone-number-input/issues/273).

2.3.25 / 16.10.2019
===================

  * Added `numberInputComponent` property which is supposed to replace `inputComponent` property for the end users: it turned out that passing custom `inputComponent` required also implementing (copy-pasting) phone number parsing and formatting logic. The new `numberInputComponent` customization property is different in this aspect: it's a customization property of `inputComponent` itself. By default `numberInputComponent` is `"input"` meaning that `inputComponent` renders a standard DOM `<input/>` by default. By passing a custom `numberInputComponent` this standard DOM `<input/>` can be replaced by such custom number input component (for example, when using UI libraries like "Material UI" or "Bootstrap"). The former `inputComponent` property still works, it's just now an undocumented one (too complex for the end users to implement). And it now also receives a new `inputComponent` property that is basically the new `numberInputComponent` property, just with a shorter name — this new property might result in an `"Unknown prop "inputComponent" on <input> tag"` React warning, but that's only in the cases when a custom `inputComponent` was passed earlier which is unlikely (it's unlikely that anyone actually passed their own `inputComponent`).

2.3.24 / 30.09.2019
===================

  * Added `countrySelectAriaLabel: string` property.

  * Added `getCountryCallingCode(country: string): string` exported function.

2.3.19 / 07.07.2019
===================

  * Added an exported `parsePhoneNumber(value)` function because some people [requested](https://github.com/catamphetamine/react-phone-number-input/issues/268) a function to get `country` from `value`.

  * Added `parseRFC3966()` and `formatRFC3966()` exports (phone number extensions).

2.3.18 / 21.06.2019
===================

  * Changed the "International" flag icon.

  * [Fixed](https://github.com/catamphetamine/react-phone-number-input/issues/258) `react-phone-number-input/flags` import.

2.3.8 / 15.03.2019
==================

  * Recently I removed some of the countries from the list of selectable countries because they weren't supported by Google's `libphonenumber`: previously I didn't check if all the selectable countries were supported (for some reason) so the list of countries contained some countries which weren't supported by `libphonenumber` which in turn would result in incorrect phone number parsing/formatting (countries like Abkhazia and South Osetia, for example).

  * I also added Kosovo to the list. It's not a country but a "territory" instead. I imagine people from Kosovo might be looking for "Kosovo" in the list and they'd be confused if it was missing. Google supports `XK` territory code and the flag for `XK` has been recently added to the flags repo. Anyone using custom `flagsPath` should update their flag bundles accordingly.

  * Also added `TA` and `AC` countries to the list but they're using `SH` flag for now, so no need to update flags for them yet. If the author of the flags repo adds the flags for `TA` and `AC` then the flags will have to be updated. See the [issue](https://github.com/lipis/flag-icon-css/issues/537) in the flags repo for more info.

  * Also note that when supplying custom `flagsPath` those custom-hosted flags might go out of sync with the list of countries. For example, there could be people hosting their own copy of flags, and then `XK` flag is added to the flags repo and I add "Kosovo" territory to the list and now `XK` flag is missing from all custom-hosted flag bundles and if those people update this library to the latest version without updating their custom-hosted flag bundled they'd get an "Image not found" error when selecting "Kosovo" territory from the list.

2.3.0 / 02.01.2019
==================

  * Migrated `input-control.js` to the latest `libphonenumber-js` API.

  * Added `/min`, `/max`, `/mobile` and `/custom` subpackages pre-wired with different flavors of metadata. See the relevant readme section for more info.

  <!-- * Removed `*DefaultMetadata.js` files. -->

  * Deprecated importing from `react-phone-number-input/libphonenumber` sub-package (a workaround for ES6/CommonJS double import issue) because the ES6/CommonJS double import issue has been resolved.

2.2.9 / 30.09.2018
==================

  * Added `.react-phone-number-input--focus` CSS class. [Issue](https://github.com/catamphetamine/react-phone-number-input/issues/189).

2.2.0 / 03.08.2018
==================

  * Changed the output of `AsYouType` formatter. E.g. before for `US` and input `21` it was outputting `(21 )` which is not good for phone number input (not intuitive and is confusing). Now it will not add closing braces which haven't been reached yet by the input cursor and it will also strip the corresponding opening braces, so for `US` and input `21` it now is just `21`, and for `213` it is `(213)`.

2.1.8 / 27.07.2018
==================

  * Lowered React requirements back to `0.14` (same as for version 1.x of this library).

2.0.0 / 17.07.2018
==================

  * (breaking change) `/native` is now the default export. `react-responsive-ui` select is now exported as `react-phone-number-input/react-responsive-ui`.

  * (breaking change) Migrated `react-responsive-ui` country select from `0.10` to `0.13`. It no longer has text input functionality (like "autocomplete") — it's just a `<select/>` now, without any text input field. Removed `rrui.css` file (use `react-responsive-ui/style.css` bundle instead, or import styles individually from `react-responsive-ui/styles`). Renamed `maxItems` property to `scrollMaxItems`. Removed `countrySelectToggleClassName` property (unused).

  * (breaking change) `smartCaret` is now `false` by default (previously was `true`). This was done because some Samsung Android phones were having issues with `smartCaret={true}` (which was the default in version `1.x`). `smartCaret` has been removed for now, so that it doesn't include `input-format` library code.

  * (breaking change) `international` property is now `true` by default meaning that by default there will always be the "International" option in the country `<select/>`.

  * (breaking change) CSS changes: renamed `.react-phone-number-input__phone--native` CSS class to `.react-phone-number-input__phone`, added new `.react-phone-number-input__input` CSS class (the phone input).

  * (breaking change) Removed undocumented exports.

  * (breaking change) For `/custom` component `labels` and `internationalIcon` properties are now required (previously were `react-phone-number-input/locales/default.json` and  `react-phone-number-input/commonjs/InternationalIcon` by default).

  * (breaking change) Removed `/resources` directory (due to not being used).

1.1.13 / 12.07.2018
===================

  * Added `react-phone-number-input/basic-input` component.

1.1.3 / 29.05.2018
===================

  * Some CSS tweaks and code refactoring.

1.1.2 / 29.05.2018
===================

  * Added an isolated `react-phone-number-input/native` export (so that it doesn't include `react-responsive-ui` package in the resulting bundle).

  * Some CSS tweaks.

  *  `countrySelectComponent` `onToggle` property renamed to `hidePhoneInputField`.

1.1.0 / 28.05.2018
===================

  * Added `PhoneInputNative` exported component which deprecateds the old `nativeCountrySelect={true/false}` property. `PhoneInputNative` component doesn't require `rrui.css`. It will be the default exported component in version `2.x`.

  * Fixed [a minor bug](https://github.com/catamphetamine/react-phone-number-input/issues/131) appering in React 16.4 which caused the currently selected country flag to be reset while typing.

1.0.10 / 19.04.2018
===================

  * Added an optional `smartCaret={false}` property for [fixing Samsung Android phones](https://github.com/catamphetamine/react-phone-number-input/issues/75).

1.0.8 / 19.04.2018
===================

  * (breaking change) Changed the properties passed to a custom `inputComponent`, see `Input.js` `propTypes` for more info.

  * Added `BasicInput`: an alternative `inputComponent` for working around the Samsung Galaxy caret positioning bug.

1.0.0 / 21.03.2018
===================

  * (breaking change) Rewrote `Input.js` — there is a possibility that something could potentially break for users coming from previous versions.

  * (breaking change) No longer exporting `libphonenumber-js` functions.

  * (breaking change) `dictionary`'s `"International"` key renamed to `"ZZ"`.

  * (breaking change) `dictionary` property renamed to `labels`.

  * (breaking change) `nativeExpanded` property renamed to `nativeCountrySelect`.

  * (breaking change) `selectTabIndex` property renamed to `countrySelectTabIndex`.

  * (breaking change) `selectMaxItems` property renamed to `countrySelectMaxItems`.

  * (breaking change) `selectAriaLabel` property renamed to `countrySelectAriaLabel`.

  * (breaking change) `selectCloseAriaLabel` property renamed to `countrySelectCloseAriaLabel`.

  * (breaking change) `selectComponent` property renamed to `countrySelectComponent`

  * (breaking change) `flagComponent`'s `countryCode` property was renamed to just `country`.

  * (breaking change) Renamed `countries with flags.js` to `flags.js` and put them in the root folder.

  * (breaking change) `flags` property changed: it can no longer be a `boolean` and can only be an object of flag `React.Component`s.

  * (breaking change) `selectStyle` and `inputStyle` properties removed (due to not being used).

  * (breaking change) `inputTabIndex` property removed (use `tabIndex` instead).

  * (breaking change) `onCountryChange` property removed (no one actually used it).

  * (breaking change) `convertToNational` property renamed to `displayInitialValueAsLocalNumber`.

  * (breaking change) `style.css` changed a bit (to accomodate phone number extension field).

  * (breaking change) If someone did override `.rrui__input:not(.rrui__input--multiline)` CSS rule then now it has been split into two CSS rules: `.rrui__input` and `.rrui__input--multiline`.

  * Added `locale`s for the `labels` property (`ru` and `en`).

  * Added `ext` property for phone number extension input.

0.17.0 / 24.02.2018
===================

  * (breaking change) Fixed SVG flag icons for IE. This alters the markup a bit: `<img/>` is now wrapped in a `<div/>` and the CSS class of the image becomes the CSS class of the div and also a new CSS class for the image is added. This could hypothetically be a breaking change in some advanced use cases hence the major version bump.

  * Fixed `<Select/>` scrolling to the top of the page in IE <= 11.

  * Fixed validation error margin left.

0.16.0 / 22.02.2018
===================

  * Updated `libphonenumber-js` to `1.0.x`.
  * `parsePhoneNumber()`, `isValidPhoneNumber()` and `formatPhoneNumber()` no longer accept `undefined` phone number argument: it must be either a `string` or a parsed number `object` having a `string` `phone` property.

0.15.0 / 10.10.2017
===================

  * Added `error` and `indicateInvalid` properties for displaying error label.

  * (CSS breaking change) `react-phone-number-input` `<div/>` is now wrapped by another `<div/>` and its CSS class name changed to `react-phone-number-input__row` and `react-phone-number-input` CSS class name goes to the wrapper.

0.14.0 / 04.10.2017
===================

  * Returning `<input/>` `type` back to `tel`. There used to be reports previously that `input="tel"` `<input/>`s on some non-stock Android devices with non-stock keyboards had issues with proper caret positioning during input. Well, those are non-stock Android bugs and therefore they should fix those there. `type="tel"` is better in terms of the digital input keyboard so it's now a default. Still can be overridden by passing `type="text"` property.

0.13.0 / 20.09.2017
===================

This release contains some minor CSS class names refactoring which most likely won't introduce any issues in almost but all use cases.

(CSS breaking change) Refactored `<Select/>` CSS class names in `react-responsive-ui`:

  * `.rrui__select__selected--autocomplete` -> `.rrui__select__autocomplete`

  * `.rrui__select__selected` -> `.rrui__select__button`

  * `.rrui__select__selected--nothing` -> `.rrui__select__button--empty`

  * `.rrui__select__selected--expanded` -> `.rrui__select__button--expanded`

  * `.rrui__select__selected--disabled` -> `.rrui__select__button--disabled`

(CSS breaking change) Added `.rrui__text-input__input` CSS class to the phone number `<input/>`.

(CSS breaking change) Added global `.rrui__text-input__input` styles to `style.css`

0.12.1 / 27.07.2017
===================

  * Due to the [reports](https://github.com/catamphetamine/react-phone-number-input/issues/59) stating that `type="tel"` caret positioning doesn't work on Samsung devices the component had to revert back to `type="text"` by default (one can pass `type="tel"` property directly though).

0.12.0 / 25.07.2017
===================

  * (breaking change) The default value of `convertToNational` property changed from `true` to `false`. The reason is that the newer generation grows up when there are no stationary phones and therefore everyone inputs phone numbers with a `+` in their smartphones so local phone numbers should now be considered obsolete.

0.11.3 / 16.05.2017
===================

  * Now alphabetically sorting the supplied custom country names

0.11.2 / 12.05.2017
===================

  * Fixed a bug when `value` was not set to `undefined` when the `<input/>` value was empty
  * Added `selectMaxItems` property for customizing the country select height

0.11.0 / 03.05.2017
===================

  * (CSS breaking change) Removed vertical padding from the first and the last `<Select/>` `<li/>` options and moved it to `.rrui__select__options` `<ul/>` itself. So if someone customized `.rrui__select__options-list-item:first-child` and `.rrui__select__options-list-item:last-child` vertical padding then those padding customizations should be moved to `.rrui__select__options` itself.
  * (CSS breaking change) Added `.rrui__select__option:hover` and `.rrui__select__option--focused:hover` background color for better UX.

0.10.0 / 18.04.2017
===================

  * (might be a breaking change) Slightly refactored the component CSS improving it in a couple of places along with adding comments to it (see `style.css`).
  * Added country code validation.

0.9.1 / 16.04.2017
==================

  * (breaking change) Moved the `.css` file to the root folder of the package and **split it into two files** (the `rrui` one is not required when already using `react-responsive-ui`). `import`ing the CSS file via Webpack is the recommended way to go now.
  * (breaking change) Vendor prefixes dropped in favour of manually using autoprefixers.

0.8.10 / 15.04.2017
===================

  * Added support for externally changing `value` property

0.8.5 / 06.04.2017
==================

  * Added `inputTabIndex` and `selectTabIndex` settings

0.8.5 / 05.04.2017
==================

  * Added `nativeExpanded` setting for native country `<select/>`

0.8.1 / 27.03.2017
==================

  * The `.valid` property has been removed from "as you type" formatter, therefore dropping the `.react-phone-number-input__phone--valid` CSS class. This doesn't affect functionality in any way nor does it break existing code therefore it's a "patch" version upgrade.

0.8.0 / 17.03.2017
==================

  * (could be a breaking change) Moving CSS positioning properties from inline styles to the CSS file therefore if using an edited CSS file from older versions (when not doing it via Webpack `require(...)`) update styles for `.rrui__select` and `.rrui__select__options`. As well as `.rrui__expandable` and `.rrui__shadow` have been added. Maybe (and most likely) something else, so better re-copy the entire CSS file.

0.7.11 / 16.03.2017
===================

  * Fixed a small bug when an initially passed phone number `value` wasn't checked for country autodetection
  * A small enhancement: when an international phone number is erased to a single `+` then the currently selected country is reset. And, analogous, when a country is selected, and the input is empty, and then the user enters a single `+` sign — the country is reset too.

0.7.9 / 12.03.2017
==================

  * Fixed a small bug when the `country` property was set after page load programmatically and that caused the input taking focus (which displayed a keyboard on mobile devices)

0.7.5 / 22.02.2017
==================

  * `@JeandeCampredon` fixed `Const declarations are not supported in strict mode` in module exports

0.7.1 / 28.01.2017
==================

  * Added custom metadata feature (now developers have a way to reduce the resulting bundle size in case they decide they need that)
  * `lockCountry` property removed (use `countries={[country]}` instead)
  * Added `international` boolean property to explicitly indicate whether to show the "International" option in the list of countries
  * Not showing country `<Select/>` when `countries.length === 1` or `countries.length === 0`
  * `countries` property can now only be an array of country codes

0.6.13 / 28.01.2017
===================

  * Fixed the flags bug introduced by adding `flags={ false }` option

0.6.12 / 27.01.2017
===================

  * Added `flags={ false }` option

0.6.11 / 26.01.2017
===================

  * Added `lockCountry` option
  * Added a possibility to specify `countries` as an array of country codes
  * Fixed country selection on `country` property update

0.6.8 / 03.01.2017
===================

  * Optimized performance on mobile devices

0.6.6 / 30.12.2016
===================

  * Added a bunch of CSS classes: `react-phone-number-input`, `react-phone-number-input--valid`, `react-phone-number-input__country`, `react-phone-number-input__phone`, `react-phone-number-input__phone--valid`

0.6.5 / 28.12.2016
===================

  * Now hiding the phone input while the country select is open

0.6.1 / 24.12.2016
===================

  * Fixed collapsed select options being interactive in iOS 8 Safari

0.6.0 / 23.12.2016
===================

  * A complete rewrite. Now supports all countries, all formats are hard-coded from Google Android's `libphonenumber` library.

0.5.4 / 11.12.2016
===================

  * Hong Kong phone numbers fix by @nchan0154

0.5.3 / 15.11.2016
===================

  * Added some popular country formats (and stubs for other countries)
  * Small bug fix for trunk prefixed phone numbers

0.5.0 / 14.11.2016
===================

  * `format` prop is now not required for the React component. If `format` is not specified then the input switches itself into "auto" (iPhone style) mode.
  * input code rewrite

0.4.0 / 15.09.2016
===================

  * (breaking change) `digits` passed to the `template()` function don't include trunk prefix anymore
  * Introduced custom `valid(digits)` phone number validation function for phone number format

0.3.0 / 07.09.2016
===================

  * `format_phone_number` (aka `formatPhoneNumber`) function now formats phone number internationally (with country code) if no `format` argument was supplied (it tries to autodetect the correct phone number format from the phone number itself)

  * Added `country(phone)` function

  * Added `country_from_locale(locale)` (aka `countryFromLocale(locale)`) function

0.2.11 / 06.09.2016
===================

  * Added `parse_phone_number` (aka `parsePhoneNumber`) function

0.2.10 / 04.09.2016
===================

  * Added `plaintext_local` (aka `plaintextLocal`) and `plaintext_international` (aka `plaintextInternational`) methods

0.2.0 / 03.09.2016
==================

  * Added custom phone formats
  * Refactoring
  * Removed `format_phone_number_international` (aka `formatPhoneNumberInternational`)

0.1.20 / 19.08.2016
===================

  * Added `disabled` property

0.1.18 / 11.08.2016
===================

  * Added `name` property (for javascriptless websites)

0.1.0 / 15.07.2016
===================

  * Initial release