react-native-phone-country-input 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/README.md +477 -0
  2. package/lib/commonjs/CountrySelector/CountrySelector.js +74 -0
  3. package/lib/commonjs/CountrySelector/CountrySelector.js.map +1 -0
  4. package/lib/commonjs/CountrySelector/CountrySelectorModal.js +267 -0
  5. package/lib/commonjs/CountrySelector/CountrySelectorModal.js.map +1 -0
  6. package/lib/commonjs/Keyboard/Keyboard.js +316 -0
  7. package/lib/commonjs/Keyboard/Keyboard.js.map +1 -0
  8. package/lib/commonjs/Keyboard/KeyboardToolbar.js +70 -0
  9. package/lib/commonjs/Keyboard/KeyboardToolbar.js.map +1 -0
  10. package/lib/commonjs/Keyboard/KeypadButton.js +66 -0
  11. package/lib/commonjs/Keyboard/KeypadButton.js.map +1 -0
  12. package/lib/commonjs/Keyboard/KeypadButtonContainer.js +65 -0
  13. package/lib/commonjs/Keyboard/KeypadButtonContainer.js.map +1 -0
  14. package/lib/commonjs/Keyboard/KeypadRow.js +34 -0
  15. package/lib/commonjs/Keyboard/KeypadRow.js.map +1 -0
  16. package/lib/commonjs/PhoneCountryInput/PhoneCountryInput.js +86 -0
  17. package/lib/commonjs/PhoneCountryInput/PhoneCountryInput.js.map +1 -0
  18. package/lib/commonjs/PhoneNumberField.js +36 -0
  19. package/lib/commonjs/PhoneNumberField.js.map +1 -0
  20. package/lib/commonjs/Styling/Colors.js +197 -0
  21. package/lib/commonjs/Styling/Colors.js.map +1 -0
  22. package/lib/commonjs/Styling/Sizing.js +111 -0
  23. package/lib/commonjs/Styling/Sizing.js.map +1 -0
  24. package/lib/commonjs/consts/KEYBOARD_LAYOUT.js +45 -0
  25. package/lib/commonjs/consts/KEYBOARD_LAYOUT.js.map +1 -0
  26. package/lib/commonjs/consts/regions.js +1503 -0
  27. package/lib/commonjs/consts/regions.js.map +1 -0
  28. package/lib/commonjs/enum/CountryIds.js +264 -0
  29. package/lib/commonjs/enum/CountryIds.js.map +1 -0
  30. package/lib/commonjs/hooks/UsePhoneFieldState.js +237 -0
  31. package/lib/commonjs/hooks/UsePhoneFieldState.js.map +1 -0
  32. package/lib/commonjs/index.js +56 -0
  33. package/lib/commonjs/index.js.map +1 -0
  34. package/lib/commonjs/package.json +1 -0
  35. package/lib/commonjs/utils/characterDeletion.js +20 -0
  36. package/lib/commonjs/utils/characterDeletion.js.map +1 -0
  37. package/lib/commonjs/utils/characterInsert.js +20 -0
  38. package/lib/commonjs/utils/characterInsert.js.map +1 -0
  39. package/lib/commonjs/utils/fromMaskedNumberToUnmaskedSelection.js +14 -0
  40. package/lib/commonjs/utils/fromMaskedNumberToUnmaskedSelection.js.map +1 -0
  41. package/lib/commonjs/utils/fromUnmaskedToMaskedPosition.js +20 -0
  42. package/lib/commonjs/utils/fromUnmaskedToMaskedPosition.js.map +1 -0
  43. package/lib/commonjs/utils/generateCountryCodeList.js +23 -0
  44. package/lib/commonjs/utils/generateCountryCodeList.js.map +1 -0
  45. package/lib/commonjs/utils/getDefaultRegion.js +33 -0
  46. package/lib/commonjs/utils/getDefaultRegion.js.map +1 -0
  47. package/lib/commonjs/utils/maskToPhoneNumber.js +23 -0
  48. package/lib/commonjs/utils/maskToPhoneNumber.js.map +1 -0
  49. package/lib/commonjs/utils/matchCountryCode.js +27 -0
  50. package/lib/commonjs/utils/matchCountryCode.js.map +1 -0
  51. package/lib/module/CountrySelector/CountrySelector.js +70 -0
  52. package/lib/module/CountrySelector/CountrySelector.js.map +1 -0
  53. package/lib/module/CountrySelector/CountrySelectorModal.js +262 -0
  54. package/lib/module/CountrySelector/CountrySelectorModal.js.map +1 -0
  55. package/lib/module/Keyboard/Keyboard.js +310 -0
  56. package/lib/module/Keyboard/Keyboard.js.map +1 -0
  57. package/lib/module/Keyboard/KeyboardToolbar.js +65 -0
  58. package/lib/module/Keyboard/KeyboardToolbar.js.map +1 -0
  59. package/lib/module/Keyboard/KeypadButton.js +61 -0
  60. package/lib/module/Keyboard/KeypadButton.js.map +1 -0
  61. package/lib/module/Keyboard/KeypadButtonContainer.js +59 -0
  62. package/lib/module/Keyboard/KeypadButtonContainer.js.map +1 -0
  63. package/lib/module/Keyboard/KeypadRow.js +30 -0
  64. package/lib/module/Keyboard/KeypadRow.js.map +1 -0
  65. package/lib/module/PhoneCountryInput/PhoneCountryInput.js +80 -0
  66. package/lib/module/PhoneCountryInput/PhoneCountryInput.js.map +1 -0
  67. package/lib/module/PhoneNumberField.js +31 -0
  68. package/lib/module/PhoneNumberField.js.map +1 -0
  69. package/lib/module/Styling/Colors.js +193 -0
  70. package/lib/module/Styling/Colors.js.map +1 -0
  71. package/lib/module/Styling/Sizing.js +107 -0
  72. package/lib/module/Styling/Sizing.js.map +1 -0
  73. package/lib/module/consts/KEYBOARD_LAYOUT.js +41 -0
  74. package/lib/module/consts/KEYBOARD_LAYOUT.js.map +1 -0
  75. package/lib/module/consts/regions.js +1498 -0
  76. package/lib/module/consts/regions.js.map +1 -0
  77. package/lib/module/enum/CountryIds.js +260 -0
  78. package/lib/module/enum/CountryIds.js.map +1 -0
  79. package/lib/module/hooks/UsePhoneFieldState.js +232 -0
  80. package/lib/module/hooks/UsePhoneFieldState.js.map +1 -0
  81. package/lib/module/index.js +16 -0
  82. package/lib/module/index.js.map +1 -0
  83. package/lib/module/package.json +1 -0
  84. package/lib/module/utils/characterDeletion.js +16 -0
  85. package/lib/module/utils/characterDeletion.js.map +1 -0
  86. package/lib/module/utils/characterInsert.js +16 -0
  87. package/lib/module/utils/characterInsert.js.map +1 -0
  88. package/lib/module/utils/fromMaskedNumberToUnmaskedSelection.js +10 -0
  89. package/lib/module/utils/fromMaskedNumberToUnmaskedSelection.js.map +1 -0
  90. package/lib/module/utils/fromUnmaskedToMaskedPosition.js +16 -0
  91. package/lib/module/utils/fromUnmaskedToMaskedPosition.js.map +1 -0
  92. package/lib/module/utils/generateCountryCodeList.js +19 -0
  93. package/lib/module/utils/generateCountryCodeList.js.map +1 -0
  94. package/lib/module/utils/getDefaultRegion.js +28 -0
  95. package/lib/module/utils/getDefaultRegion.js.map +1 -0
  96. package/lib/module/utils/maskToPhoneNumber.js +19 -0
  97. package/lib/module/utils/maskToPhoneNumber.js.map +1 -0
  98. package/lib/module/utils/matchCountryCode.js +23 -0
  99. package/lib/module/utils/matchCountryCode.js.map +1 -0
  100. package/lib/typescript/CountrySelector/CountrySelector.d.ts +19 -0
  101. package/lib/typescript/CountrySelector/CountrySelector.d.ts.map +1 -0
  102. package/lib/typescript/CountrySelector/CountrySelectorModal.d.ts +12 -0
  103. package/lib/typescript/CountrySelector/CountrySelectorModal.d.ts.map +1 -0
  104. package/lib/typescript/Keyboard/Keyboard.d.ts +25 -0
  105. package/lib/typescript/Keyboard/Keyboard.d.ts.map +1 -0
  106. package/lib/typescript/Keyboard/KeyboardToolbar.d.ts +9 -0
  107. package/lib/typescript/Keyboard/KeyboardToolbar.d.ts.map +1 -0
  108. package/lib/typescript/Keyboard/KeypadButton.d.ts +10 -0
  109. package/lib/typescript/Keyboard/KeypadButton.d.ts.map +1 -0
  110. package/lib/typescript/Keyboard/KeypadButtonContainer.d.ts +12 -0
  111. package/lib/typescript/Keyboard/KeypadButtonContainer.d.ts.map +1 -0
  112. package/lib/typescript/Keyboard/KeypadRow.d.ts +9 -0
  113. package/lib/typescript/Keyboard/KeypadRow.d.ts.map +1 -0
  114. package/lib/typescript/PhoneCountryInput/PhoneCountryInput.d.ts +16 -0
  115. package/lib/typescript/PhoneCountryInput/PhoneCountryInput.d.ts.map +1 -0
  116. package/lib/typescript/PhoneNumberField.d.ts +17 -0
  117. package/lib/typescript/PhoneNumberField.d.ts.map +1 -0
  118. package/lib/typescript/Styling/Colors.d.ts +189 -0
  119. package/lib/typescript/Styling/Colors.d.ts.map +1 -0
  120. package/lib/typescript/Styling/Sizing.d.ts +214 -0
  121. package/lib/typescript/Styling/Sizing.d.ts.map +1 -0
  122. package/lib/typescript/consts/KEYBOARD_LAYOUT.d.ts +18 -0
  123. package/lib/typescript/consts/KEYBOARD_LAYOUT.d.ts.map +1 -0
  124. package/lib/typescript/consts/regions.d.ts +10 -0
  125. package/lib/typescript/consts/regions.d.ts.map +1 -0
  126. package/lib/typescript/enum/CountryIds.d.ts +249 -0
  127. package/lib/typescript/enum/CountryIds.d.ts.map +1 -0
  128. package/lib/typescript/hooks/UsePhoneFieldState.d.ts +34 -0
  129. package/lib/typescript/hooks/UsePhoneFieldState.d.ts.map +1 -0
  130. package/lib/typescript/index.d.ts +15 -0
  131. package/lib/typescript/index.d.ts.map +1 -0
  132. package/lib/typescript/utils/characterDeletion.d.ts +3 -0
  133. package/lib/typescript/utils/characterDeletion.d.ts.map +1 -0
  134. package/lib/typescript/utils/characterInsert.d.ts +3 -0
  135. package/lib/typescript/utils/characterInsert.d.ts.map +1 -0
  136. package/lib/typescript/utils/fromMaskedNumberToUnmaskedSelection.d.ts +2 -0
  137. package/lib/typescript/utils/fromMaskedNumberToUnmaskedSelection.d.ts.map +1 -0
  138. package/lib/typescript/utils/fromUnmaskedToMaskedPosition.d.ts +2 -0
  139. package/lib/typescript/utils/fromUnmaskedToMaskedPosition.d.ts.map +1 -0
  140. package/lib/typescript/utils/generateCountryCodeList.d.ts +3 -0
  141. package/lib/typescript/utils/generateCountryCodeList.d.ts.map +1 -0
  142. package/lib/typescript/utils/getDefaultRegion.d.ts +4 -0
  143. package/lib/typescript/utils/getDefaultRegion.d.ts.map +1 -0
  144. package/lib/typescript/utils/maskToPhoneNumber.d.ts +2 -0
  145. package/lib/typescript/utils/maskToPhoneNumber.d.ts.map +1 -0
  146. package/lib/typescript/utils/matchCountryCode.d.ts +3 -0
  147. package/lib/typescript/utils/matchCountryCode.d.ts.map +1 -0
  148. package/package.json +92 -0
  149. package/src/CountrySelector/CountrySelector.tsx +77 -0
  150. package/src/CountrySelector/CountrySelectorModal.tsx +280 -0
  151. package/src/Keyboard/Keyboard.tsx +322 -0
  152. package/src/Keyboard/KeyboardToolbar.tsx +53 -0
  153. package/src/Keyboard/KeypadButton.tsx +58 -0
  154. package/src/Keyboard/KeypadButtonContainer.tsx +67 -0
  155. package/src/Keyboard/KeypadRow.tsx +29 -0
  156. package/src/PhoneCountryInput/PhoneCountryInput.tsx +98 -0
  157. package/src/PhoneNumberField.tsx +46 -0
  158. package/src/Styling/Colors.ts +206 -0
  159. package/src/Styling/Sizing.ts +110 -0
  160. package/src/consts/KEYBOARD_LAYOUT.ts +34 -0
  161. package/src/consts/regions.ts +268 -0
  162. package/src/enum/CountryIds.ts +256 -0
  163. package/src/hooks/UsePhoneFieldState.tsx +268 -0
  164. package/src/index.ts +27 -0
  165. package/src/utils/characterDeletion.ts +16 -0
  166. package/src/utils/characterInsert.ts +20 -0
  167. package/src/utils/fromMaskedNumberToUnmaskedSelection.ts +10 -0
  168. package/src/utils/fromUnmaskedToMaskedPosition.ts +13 -0
  169. package/src/utils/generateCountryCodeList.ts +22 -0
  170. package/src/utils/getDefaultRegion.ts +30 -0
  171. package/src/utils/maskToPhoneNumber.ts +30 -0
  172. package/src/utils/matchCountryCode.ts +23 -0
@@ -0,0 +1,206 @@
1
+ // Tailwind v3 color palette for React Native styles.
2
+ // Use via: import { colors } from './Colors'
3
+
4
+ export const colors = {
5
+ transparent: 'transparent',
6
+ black: '#000000',
7
+ white: '#ffffff',
8
+
9
+ slate: {
10
+ 50: '#f8fafc',
11
+ 100: '#f1f5f9',
12
+ 200: '#e2e8f0',
13
+ 300: '#cbd5e1',
14
+ 400: '#94a3b8',
15
+ 500: '#64748b',
16
+ 600: '#475569',
17
+ 700: '#334155',
18
+ 800: '#1e293b',
19
+ 900: '#0f172a',
20
+ 950: '#020617',
21
+ },
22
+
23
+ gray: {
24
+ 50: '#f9fafb',
25
+ 100: '#f3f4f6',
26
+ 200: '#e5e7eb',
27
+ 300: '#d1d5db',
28
+ 400: '#9ca3af',
29
+ 500: '#6b7280',
30
+ 600: '#4b5563',
31
+ 700: '#374151',
32
+ 800: '#1f2937',
33
+ 900: '#111827',
34
+ 950: '#030712',
35
+ },
36
+
37
+ zinc: {
38
+ 50: '#fafafa',
39
+ 100: '#f4f4f5',
40
+ 200: '#e4e4e7',
41
+ 300: '#d4d4d8',
42
+ 400: '#a1a1aa',
43
+ 500: '#71717a',
44
+ 600: '#52525b',
45
+ 700: '#3f3f46',
46
+ 800: '#27272a',
47
+ 900: '#18181b',
48
+ 950: '#09090b',
49
+ },
50
+
51
+ red: {
52
+ 50: '#fef2f2',
53
+ 100: '#fee2e2',
54
+ 200: '#fecaca',
55
+ 300: '#fca5a5',
56
+ 400: '#f87171',
57
+ 500: '#ef4444',
58
+ 600: '#dc2626',
59
+ 700: '#b91c1c',
60
+ 800: '#991b1b',
61
+ 900: '#7f1d1d',
62
+ 950: '#450a0a',
63
+ },
64
+
65
+ orange: {
66
+ 50: '#fff7ed',
67
+ 100: '#ffedd5',
68
+ 200: '#fed7aa',
69
+ 300: '#fdba74',
70
+ 400: '#fb923c',
71
+ 500: '#f97316',
72
+ 600: '#ea580c',
73
+ 700: '#c2410c',
74
+ 800: '#9a3412',
75
+ 900: '#7c2d12',
76
+ 950: '#431407',
77
+ },
78
+
79
+ amber: {
80
+ 50: '#fffbeb',
81
+ 100: '#fef3c7',
82
+ 200: '#fde68a',
83
+ 300: '#fcd34d',
84
+ 400: '#fbbf24',
85
+ 500: '#f59e0b',
86
+ 600: '#d97706',
87
+ 700: '#b45309',
88
+ 800: '#92400e',
89
+ 900: '#78350f',
90
+ 950: '#451a03',
91
+ },
92
+
93
+ yellow: {
94
+ 50: '#fefce8',
95
+ 100: '#fef9c3',
96
+ 200: '#fef08a',
97
+ 300: '#fde047',
98
+ 400: '#facc15',
99
+ 500: '#eab308',
100
+ 600: '#ca8a04',
101
+ 700: '#a16207',
102
+ 800: '#854d0e',
103
+ 900: '#713f12',
104
+ 950: '#422006',
105
+ },
106
+
107
+ green: {
108
+ 50: '#f0fdf4',
109
+ 100: '#dcfce7',
110
+ 200: '#bbf7d0',
111
+ 300: '#86efac',
112
+ 400: '#4ade80',
113
+ 500: '#22c55e',
114
+ 600: '#16a34a',
115
+ 700: '#15803d',
116
+ 800: '#166534',
117
+ 900: '#14532d',
118
+ 950: '#052e16',
119
+ },
120
+
121
+ teal: {
122
+ 50: '#f0fdfa',
123
+ 100: '#ccfbf1',
124
+ 200: '#99f6e4',
125
+ 300: '#5eead4',
126
+ 400: '#2dd4bf',
127
+ 500: '#14b8a6',
128
+ 600: '#0d9488',
129
+ 700: '#0f766e',
130
+ 800: '#115e59',
131
+ 900: '#134e4a',
132
+ 950: '#042f2e',
133
+ },
134
+
135
+ blue: {
136
+ 50: '#eff6ff',
137
+ 100: '#dbeafe',
138
+ 200: '#bfdbfe',
139
+ 300: '#93c5fd',
140
+ 400: '#60a5fa',
141
+ 500: '#3b82f6',
142
+ 600: '#2563eb',
143
+ 700: '#1d4ed8',
144
+ 800: '#1e40af',
145
+ 900: '#1e3a8a',
146
+ 950: '#172554',
147
+ },
148
+
149
+ indigo: {
150
+ 50: '#eef2ff',
151
+ 100: '#e0e7ff',
152
+ 200: '#c7d2fe',
153
+ 300: '#a5b4fc',
154
+ 400: '#818cf8',
155
+ 500: '#6366f1',
156
+ 600: '#4f46e5',
157
+ 700: '#4338ca',
158
+ 800: '#3730a3',
159
+ 900: '#312e81',
160
+ 950: '#1e1b4b',
161
+ },
162
+
163
+ violet: {
164
+ 50: '#f5f3ff',
165
+ 100: '#ede9fe',
166
+ 200: '#ddd6fe',
167
+ 300: '#c4b5fd',
168
+ 400: '#a78bfa',
169
+ 500: '#8b5cf6',
170
+ 600: '#7c3aed',
171
+ 700: '#6d28d9',
172
+ 800: '#5b21b6',
173
+ 900: '#4c1d95',
174
+ 950: '#2e1065',
175
+ },
176
+
177
+ pink: {
178
+ 50: '#fdf2f8',
179
+ 100: '#fce7f3',
180
+ 200: '#fbcfe8',
181
+ 300: '#f9a8d4',
182
+ 400: '#f472b6',
183
+ 500: '#ec4899',
184
+ 600: '#db2777',
185
+ 700: '#be185d',
186
+ 800: '#9d174d',
187
+ 900: '#831843',
188
+ 950: '#500724',
189
+ },
190
+
191
+ rose: {
192
+ 50: '#fff1f2',
193
+ 100: '#ffe4e6',
194
+ 200: '#fecdd3',
195
+ 300: '#fda4af',
196
+ 400: '#fb7185',
197
+ 500: '#f43f5e',
198
+ 600: '#e11d48',
199
+ 700: '#be123c',
200
+ 800: '#9f1239',
201
+ 900: '#881337',
202
+ 950: '#4c0519',
203
+ },
204
+ } as const
205
+
206
+ export type Colors = typeof colors
@@ -0,0 +1,110 @@
1
+ // Tailwind-based sizing scale for React Native styles.
2
+ //
3
+ export const SIDE_SCREEN_PADDING = 16;
4
+ // All values are numbers (px). Use via: import { spacing, fontSize, radius } from './Sizing'
5
+ export const spacing = {
6
+ px: 1,
7
+ 0: 0,
8
+ 0.5: 2,
9
+ 1: 4,
10
+ 1.5: 6,
11
+ 2: 8,
12
+ 2.5: 10,
13
+ 3: 12,
14
+ 3.5: 14,
15
+ 4: 16,
16
+ 5: 20,
17
+ 6: 24,
18
+ 7: 28,
19
+ 8: 32,
20
+ 9: 36,
21
+ 10: 40,
22
+ 11: 44,
23
+ 12: 48,
24
+ 14: 56,
25
+ 16: 64,
26
+ 20: 80,
27
+ 24: 96,
28
+ 28: 112,
29
+ 32: 128,
30
+ 36: 144,
31
+ 40: 160,
32
+ 44: 176,
33
+ 48: 192,
34
+ 52: 208,
35
+ 56: 224,
36
+ 60: 240,
37
+ 64: 256,
38
+ 72: 288,
39
+ 80: 320,
40
+ 96: 384,
41
+ } as const
42
+
43
+ // Aliases โ€” use these for gap/padding/margin to match Tailwind intent
44
+ export const gap = spacing
45
+ export const padding = spacing
46
+ export const margin = spacing
47
+
48
+ export const fontSize = {
49
+ xs: 12,
50
+ sm: 14,
51
+ base: 16,
52
+ lg: 18,
53
+ xl: 20,
54
+ '2xl': 24,
55
+ '3xl': 30,
56
+ '4xl': 36,
57
+ '5xl': 48,
58
+ '6xl': 60,
59
+ '7xl': 72,
60
+ '8xl': 96,
61
+ '9xl': 128,
62
+ } as const
63
+
64
+ export const lineHeight = {
65
+ xs: 16,
66
+ sm: 20,
67
+ base: 24,
68
+ lg: 28,
69
+ xl: 28,
70
+ '2xl': 32,
71
+ '3xl': 36,
72
+ '4xl': 40,
73
+ '5xl': 48,
74
+ '6xl': 60,
75
+ '7xl': 72,
76
+ '8xl': 96,
77
+ '9xl': 128,
78
+ } as const
79
+
80
+ export const radius = {
81
+ none: 0,
82
+ sm: 2,
83
+ DEFAULT: 4,
84
+ md: 6,
85
+ lg: 8,
86
+ xl: 12,
87
+ '2xl': 16,
88
+ '3xl': 24,
89
+ full: 9999,
90
+ } as const
91
+
92
+ export const borderWidth = {
93
+ 0: 0,
94
+ DEFAULT: 1,
95
+ 2: 2,
96
+ 4: 4,
97
+ 8: 8,
98
+ } as const
99
+
100
+ export const borders = borderWidth
101
+
102
+ export const iconSize = {
103
+ xs: 12,
104
+ sm: 16,
105
+ md: 20,
106
+ lg: 24,
107
+ xl: 32,
108
+ '2xl': 40,
109
+ '3xl': 48,
110
+ } as const
@@ -0,0 +1,34 @@
1
+ import { spacing } from '../Styling/Sizing';
2
+ export interface SELECTION_TYPE {
3
+ start: number;
4
+ end: number;
5
+ hasBeenSelected: boolean;
6
+ hasBeenConsumed?: boolean;
7
+ }
8
+ export interface KEYPAD_KEY {
9
+ main: string;
10
+ subtext?: string;
11
+ }
12
+
13
+ export type KEYPAD_ROW = KEYPAD_KEY[];
14
+ export type KEYPAD_COLLECTION = KEYPAD_ROW[];
15
+
16
+ export const BACK_BUTTON = '<-';
17
+ export const GLOBE_BUTTON = '__';
18
+ export const CLEAR_BUTTON = 'clear';
19
+ export const GAP = spacing[1];
20
+
21
+ export const KEYBOARD_LAYOUT: KEYPAD_COLLECTION = [
22
+ [{ main: '1' }, { main: '2', subtext: 'ABC' }, { main: '3', subtext: 'DEF' }],
23
+ [
24
+ { main: '4', subtext: 'GHI' },
25
+ { main: '5', subtext: 'JKL' },
26
+ { main: '6', subtext: 'MNO' },
27
+ ],
28
+ [
29
+ { main: '7', subtext: 'PQRS' },
30
+ { main: '8', subtext: 'TUV' },
31
+ { main: '9', subtext: 'WXYZ' },
32
+ ],
33
+ [{ main: GLOBE_BUTTON }, { main: '0' }, { main: BACK_BUTTON }],
34
+ ];
@@ -0,0 +1,268 @@
1
+ // country code list with all country name, country code, two letter code, and flag based on https://en.wikipedia.org/wiki/List_of_country_calling_codes
2
+ import { CountryId } from '../enum/CountryIds';
3
+
4
+ export interface CountryCode {
5
+ code: string; // e.g. '+1'
6
+ id: CountryId; // e.g. CountryId.UNITED_STATES
7
+ flag: string; // e.g. '๐Ÿ‡บ๐Ÿ‡ธ'
8
+ name: string; // e.g. 'United States'
9
+ mask: string; // e.g. '(###)-###-####'
10
+ }
11
+
12
+
13
+ export const countryCodeList: CountryCode[] = [
14
+ // Zone 1 - North American Numbering Plan (NANP)
15
+ { code: '+1', id: CountryId.UNITED_STATES, flag: '๐Ÿ‡บ๐Ÿ‡ธ', name: 'United States', mask: '(###)-###-####' },
16
+ { code: '+1', id: CountryId.CANADA, flag: '๐Ÿ‡จ๐Ÿ‡ฆ', name: 'Canada', mask: '(###)-###-####' },
17
+ { code: '+1', id: CountryId.ANTIGUA_AND_BARBUDA, flag: '๐Ÿ‡ฆ๐Ÿ‡ฌ', name: 'Antigua and Barbuda', mask: '(###)-###-####' },
18
+ { code: '+1', id: CountryId.ANGUILLA, flag: '๐Ÿ‡ฆ๐Ÿ‡ฎ', name: 'Anguilla', mask: '(###)-###-####' },
19
+ { code: '+1', id: CountryId.AMERICAN_SAMOA, flag: '๐Ÿ‡ฆ๐Ÿ‡ธ', name: 'American Samoa', mask: '(###)-###-####' },
20
+ { code: '+1', id: CountryId.BAHAMAS, flag: '๐Ÿ‡ง๐Ÿ‡ธ', name: 'Bahamas', mask: '(###)-###-####' },
21
+ { code: '+1', id: CountryId.BARBADOS, flag: '๐Ÿ‡ง๐Ÿ‡ง', name: 'Barbados', mask: '(###)-###-####' },
22
+ { code: '+1', id: CountryId.BERMUDA, flag: '๐Ÿ‡ง๐Ÿ‡ฒ', name: 'Bermuda', mask: '(###)-###-####' },
23
+ { code: '+1', id: CountryId.BRITISH_VIRGIN_ISLANDS, flag: '๐Ÿ‡ป๐Ÿ‡ฌ', name: 'British Virgin Islands', mask: '(###)-###-####' },
24
+ { code: '+1', id: CountryId.CAYMAN_ISLANDS, flag: '๐Ÿ‡ฐ๐Ÿ‡พ', name: 'Cayman Islands', mask: '(###)-###-####' },
25
+ { code: '+1', id: CountryId.DOMINICA, flag: '๐Ÿ‡ฉ๐Ÿ‡ฒ', name: 'Dominica', mask: '(###)-###-####' },
26
+ { code: '+1', id: CountryId.DOMINICAN_REPUBLIC, flag: '๐Ÿ‡ฉ๐Ÿ‡ด', name: 'Dominican Republic', mask: '(###)-###-####' },
27
+ { code: '+1', id: CountryId.GRENADA, flag: '๐Ÿ‡ฌ๐Ÿ‡ฉ', name: 'Grenada', mask: '(###)-###-####' },
28
+ { code: '+1', id: CountryId.GUAM, flag: '๐Ÿ‡ฌ๐Ÿ‡บ', name: 'Guam', mask: '(###)-###-####' },
29
+ { code: '+1', id: CountryId.JAMAICA, flag: '๐Ÿ‡ฏ๐Ÿ‡ฒ', name: 'Jamaica', mask: '(###)-###-####' },
30
+ { code: '+1', id: CountryId.MONTSERRAT, flag: '๐Ÿ‡ฒ๐Ÿ‡ธ', name: 'Montserrat', mask: '(###)-###-####' },
31
+ { code: '+1', id: CountryId.NORTHERN_MARIANA_ISLANDS, flag: '๐Ÿ‡ฒ๐Ÿ‡ต', name: 'Northern Mariana Islands', mask: '(###)-###-####' },
32
+ { code: '+1', id: CountryId.PUERTO_RICO, flag: '๐Ÿ‡ต๐Ÿ‡ท', name: 'Puerto Rico', mask: '(###)-###-####' },
33
+ { code: '+1', id: CountryId.SAINT_KITTS_AND_NEVIS, flag: '๐Ÿ‡ฐ๐Ÿ‡ณ', name: 'Saint Kitts and Nevis', mask: '(###)-###-####' },
34
+ { code: '+1', id: CountryId.SAINT_LUCIA, flag: '๐Ÿ‡ฑ๐Ÿ‡จ', name: 'Saint Lucia', mask: '(###)-###-####' },
35
+ { code: '+1', id: CountryId.SAINT_VINCENT_AND_THE_GRENADINES, flag: '๐Ÿ‡ป๐Ÿ‡จ', name: 'Saint Vincent and the Grenadines', mask: '(###)-###-####' },
36
+ { code: '+1', id: CountryId.SINT_MAARTEN, flag: '๐Ÿ‡ธ๐Ÿ‡ฝ', name: 'Sint Maarten', mask: '(###)-###-####' },
37
+ { code: '+1', id: CountryId.TRINIDAD_AND_TOBAGO, flag: '๐Ÿ‡น๐Ÿ‡น', name: 'Trinidad and Tobago', mask: '(###)-###-####' },
38
+ { code: '+1', id: CountryId.TURKS_AND_CAICOS_ISLANDS, flag: '๐Ÿ‡น๐Ÿ‡จ', name: 'Turks and Caicos Islands', mask: '(###)-###-####' },
39
+ { code: '+1', id: CountryId.UNITED_STATES_VIRGIN_ISLANDS, flag: '๐Ÿ‡ป๐Ÿ‡ฎ', name: 'United States Virgin Islands', mask: '(###)-###-####' },
40
+ // Zone 2 - Africa
41
+ { code: '+20', id: CountryId.EGYPT, flag: '๐Ÿ‡ช๐Ÿ‡ฌ', name: 'Egypt', mask: '(###)-###-####' },
42
+ { code: '+211', id: CountryId.SOUTH_SUDAN, flag: '๐Ÿ‡ธ๐Ÿ‡ธ', name: 'South Sudan', mask: '(###)-###-###' },
43
+ { code: '+212', id: CountryId.MOROCCO, flag: '๐Ÿ‡ฒ๐Ÿ‡ฆ', name: 'Morocco', mask: '(###)-###-###' },
44
+ { code: '+212', id: CountryId.WESTERN_SAHARA, flag: '๐Ÿ‡ช๐Ÿ‡ญ', name: 'Western Sahara', mask: '(###)-###-###' },
45
+ { code: '+213', id: CountryId.ALGERIA, flag: '๐Ÿ‡ฉ๐Ÿ‡ฟ', name: 'Algeria', mask: '(###)-##-##-##' },
46
+ { code: '+216', id: CountryId.TUNISIA, flag: '๐Ÿ‡น๐Ÿ‡ณ', name: 'Tunisia', mask: '(##)-###-###' },
47
+ { code: '+218', id: CountryId.LIBYA, flag: '๐Ÿ‡ฑ๐Ÿ‡พ', name: 'Libya', mask: '(##)-#######' },
48
+ { code: '+220', id: CountryId.GAMBIA, flag: '๐Ÿ‡ฌ๐Ÿ‡ฒ', name: 'Gambia', mask: '(###)-####' },
49
+ { code: '+221', id: CountryId.SENEGAL, flag: '๐Ÿ‡ธ๐Ÿ‡ณ', name: 'Senegal', mask: '(##)-###-##-##' },
50
+ { code: '+222', id: CountryId.MAURITANIA, flag: '๐Ÿ‡ฒ๐Ÿ‡ท', name: 'Mauritania', mask: '(##)-##-##-##' },
51
+ { code: '+223', id: CountryId.MALI, flag: '๐Ÿ‡ฒ๐Ÿ‡ฑ', name: 'Mali', mask: '(##)-##-##-##' },
52
+ { code: '+224', id: CountryId.GUINEA, flag: '๐Ÿ‡ฌ๐Ÿ‡ณ', name: 'Guinea', mask: '(###)-##-##-##' },
53
+ { code: '+225', id: CountryId.IVORY_COAST, flag: '๐Ÿ‡จ๐Ÿ‡ฎ', name: 'Ivory Coast', mask: '(##)-##-##-##' },
54
+ { code: '+226', id: CountryId.BURKINA_FASO, flag: '๐Ÿ‡ง๐Ÿ‡ซ', name: 'Burkina Faso', mask: '(##)-##-##-##' },
55
+ { code: '+227', id: CountryId.NIGER, flag: '๐Ÿ‡ณ๐Ÿ‡ช', name: 'Niger', mask: '(##)-##-##-##' },
56
+ { code: '+228', id: CountryId.TOGO, flag: '๐Ÿ‡น๐Ÿ‡ฌ', name: 'Togo', mask: '(##)-##-##-##' },
57
+ { code: '+229', id: CountryId.BENIN, flag: '๐Ÿ‡ง๐Ÿ‡ฏ', name: 'Benin', mask: '(##)-##-##-##' },
58
+ { code: '+230', id: CountryId.MAURITIUS, flag: '๐Ÿ‡ฒ๐Ÿ‡บ', name: 'Mauritius', mask: '(####)-####' },
59
+ { code: '+231', id: CountryId.LIBERIA, flag: '๐Ÿ‡ฑ๐Ÿ‡ท', name: 'Liberia', mask: '(###)-####' },
60
+ { code: '+232', id: CountryId.SIERRA_LEONE, flag: '๐Ÿ‡ธ๐Ÿ‡ฑ', name: 'Sierra Leone', mask: '(##)-######' },
61
+ { code: '+233', id: CountryId.GHANA, flag: '๐Ÿ‡ฌ๐Ÿ‡ญ', name: 'Ghana', mask: '(##)-###-####' },
62
+ { code: '+234', id: CountryId.NIGERIA, flag: '๐Ÿ‡ณ๐Ÿ‡ฌ', name: 'Nigeria', mask: '(###)-###-####' },
63
+ { code: '+235', id: CountryId.CHAD, flag: '๐Ÿ‡น๐Ÿ‡ฉ', name: 'Chad', mask: '(##)-##-##-##' },
64
+ { code: '+236', id: CountryId.CENTRAL_AFRICAN_REPUBLIC, flag: '๐Ÿ‡จ๐Ÿ‡ซ', name: 'Central African Republic', mask: '(##)-##-##-##' },
65
+ { code: '+237', id: CountryId.CAMEROON, flag: '๐Ÿ‡จ๐Ÿ‡ฒ', name: 'Cameroon', mask: '(##)-##-##-##' },
66
+ { code: '+238', id: CountryId.CAPE_VERDE, flag: '๐Ÿ‡จ๐Ÿ‡ป', name: 'Cape Verde', mask: '(###)-##-##' },
67
+ { code: '+239', id: CountryId.SAO_TOME_AND_PRINCIPE, flag: '๐Ÿ‡ธ๐Ÿ‡น', name: 'Sรฃo Tomรฉ and Prรญncipe', mask: '(###)-####' },
68
+ { code: '+240', id: CountryId.EQUATORIAL_GUINEA, flag: '๐Ÿ‡ฌ๐Ÿ‡ถ', name: 'Equatorial Guinea', mask: '(###)-###-###' },
69
+ { code: '+241', id: CountryId.GABON, flag: '๐Ÿ‡ฌ๐Ÿ‡ฆ', name: 'Gabon', mask: '(##)-##-##-##' },
70
+ { code: '+242', id: CountryId.REPUBLIC_OF_THE_CONGO, flag: '๐Ÿ‡จ๐Ÿ‡ฌ', name: 'Republic of the Congo', mask: '(##)-###-####' },
71
+ { code: '+243', id: CountryId.DEMOCRATIC_REPUBLIC_OF_THE_CONGO, flag: '๐Ÿ‡จ๐Ÿ‡ฉ', name: 'Democratic Republic of the Congo', mask: '(###)-###-###' },
72
+ { code: '+244', id: CountryId.ANGOLA, flag: '๐Ÿ‡ฆ๐Ÿ‡ด', name: 'Angola', mask: '(###)-###-###' },
73
+ { code: '+245', id: CountryId.GUINEA_BISSAU, flag: '๐Ÿ‡ฌ๐Ÿ‡ผ', name: 'Guinea-Bissau', mask: '(###)-####' },
74
+ { code: '+246', id: CountryId.BRITISH_INDIAN_OCEAN_TERRITORY, flag: '๐Ÿ‡ฎ๐Ÿ‡ด', name: 'British Indian Ocean Territory', mask: '(###)-####' },
75
+ { code: '+247', id: CountryId.ASCENSION_ISLAND, flag: '๐Ÿ‡ฆ๐Ÿ‡จ', name: 'Ascension Island', mask: '####' },
76
+ { code: '+248', id: CountryId.SEYCHELLES, flag: '๐Ÿ‡ธ๐Ÿ‡จ', name: 'Seychelles', mask: '(#)-###-###' },
77
+ { code: '+249', id: CountryId.SUDAN, flag: '๐Ÿ‡ธ๐Ÿ‡ฉ', name: 'Sudan', mask: '(##)-###-####' },
78
+ { code: '+250', id: CountryId.RWANDA, flag: '๐Ÿ‡ท๐Ÿ‡ผ', name: 'Rwanda', mask: '(###)-###-###' },
79
+ { code: '+251', id: CountryId.ETHIOPIA, flag: '๐Ÿ‡ช๐Ÿ‡น', name: 'Ethiopia', mask: '(##)-###-####' },
80
+ { code: '+252', id: CountryId.SOMALIA, flag: '๐Ÿ‡ธ๐Ÿ‡ด', name: 'Somalia', mask: '(##)-###-####' },
81
+ { code: '+253', id: CountryId.DJIBOUTI, flag: '๐Ÿ‡ฉ๐Ÿ‡ฏ', name: 'Djibouti', mask: '(##)-##-##-##' },
82
+ { code: '+254', id: CountryId.KENYA, flag: '๐Ÿ‡ฐ๐Ÿ‡ช', name: 'Kenya', mask: '(###)-######' },
83
+ { code: '+255', id: CountryId.TANZANIA, flag: '๐Ÿ‡น๐Ÿ‡ฟ', name: 'Tanzania', mask: '(###)-###-###' },
84
+ { code: '+256', id: CountryId.UGANDA, flag: '๐Ÿ‡บ๐Ÿ‡ฌ', name: 'Uganda', mask: '(###)-######' },
85
+ { code: '+257', id: CountryId.BURUNDI, flag: '๐Ÿ‡ง๐Ÿ‡ฎ', name: 'Burundi', mask: '(##)-##-##-##' },
86
+ { code: '+258', id: CountryId.MOZAMBIQUE, flag: '๐Ÿ‡ฒ๐Ÿ‡ฟ', name: 'Mozambique', mask: '(##)-###-####' },
87
+ { code: '+260', id: CountryId.ZAMBIA, flag: '๐Ÿ‡ฟ๐Ÿ‡ฒ', name: 'Zambia', mask: '(##)-###-####' },
88
+ { code: '+261', id: CountryId.MADAGASCAR, flag: '๐Ÿ‡ฒ๐Ÿ‡ฌ', name: 'Madagascar', mask: '(##)-##-###-##' },
89
+ { code: '+262', id: CountryId.REUNION, flag: '๐Ÿ‡ท๐Ÿ‡ช', name: 'Rรฉunion', mask: '(###)-##-##-##' },
90
+ { code: '+262', id: CountryId.MAYOTTE, flag: '๐Ÿ‡พ๐Ÿ‡น', name: 'Mayotte', mask: '(###)-##-##-##' },
91
+ { code: '+263', id: CountryId.ZIMBABWE, flag: '๐Ÿ‡ฟ๐Ÿ‡ผ', name: 'Zimbabwe', mask: '(##)-###-####' },
92
+ { code: '+264', id: CountryId.NAMIBIA, flag: '๐Ÿ‡ณ๐Ÿ‡ฆ', name: 'Namibia', mask: '(##)-###-####' },
93
+ { code: '+265', id: CountryId.MALAWI, flag: '๐Ÿ‡ฒ๐Ÿ‡ผ', name: 'Malawi', mask: '(###)-##-##-##' },
94
+ { code: '+266', id: CountryId.LESOTHO, flag: '๐Ÿ‡ฑ๐Ÿ‡ธ', name: 'Lesotho', mask: '(##)-###-###' },
95
+ { code: '+267', id: CountryId.BOTSWANA, flag: '๐Ÿ‡ง๐Ÿ‡ผ', name: 'Botswana', mask: '(##)-###-###' },
96
+ { code: '+268', id: CountryId.ESWATINI, flag: '๐Ÿ‡ธ๐Ÿ‡ฟ', name: 'Eswatini', mask: '(##)-##-####' },
97
+ { code: '+269', id: CountryId.COMOROS, flag: '๐Ÿ‡ฐ๐Ÿ‡ฒ', name: 'Comoros', mask: '(###)-##-##' },
98
+ { code: '+27', id: CountryId.SOUTH_AFRICA, flag: '๐Ÿ‡ฟ๐Ÿ‡ฆ', name: 'South Africa', mask: '(##)-###-####' },
99
+ { code: '+290', id: CountryId.SAINT_HELENA, flag: '๐Ÿ‡ธ๐Ÿ‡ญ', name: 'Saint Helena', mask: '#####' },
100
+ { code: '+291', id: CountryId.ERITREA, flag: '๐Ÿ‡ช๐Ÿ‡ท', name: 'Eritrea', mask: '(#)-###-###' },
101
+ { code: '+297', id: CountryId.ARUBA, flag: '๐Ÿ‡ฆ๐Ÿ‡ผ', name: 'Aruba', mask: '(###)-####' },
102
+ { code: '+298', id: CountryId.FAROE_ISLANDS, flag: '๐Ÿ‡ซ๐Ÿ‡ด', name: 'Faroe Islands', mask: '(###)-###' },
103
+ { code: '+299', id: CountryId.GREENLAND, flag: '๐Ÿ‡ฌ๐Ÿ‡ฑ', name: 'Greenland', mask: '(##)-##-##' },
104
+ // Zone 3 - Europe
105
+ { code: '+30', id: CountryId.GREECE, flag: '๐Ÿ‡ฌ๐Ÿ‡ท', name: 'Greece', mask: '(###)-###-####' },
106
+ { code: '+31', id: CountryId.NETHERLANDS, flag: '๐Ÿ‡ณ๐Ÿ‡ฑ', name: 'Netherlands', mask: '(##)-###-####' },
107
+ { code: '+32', id: CountryId.BELGIUM, flag: '๐Ÿ‡ง๐Ÿ‡ช', name: 'Belgium', mask: '(###)-##-##-##' },
108
+ { code: '+33', id: CountryId.FRANCE, flag: '๐Ÿ‡ซ๐Ÿ‡ท', name: 'France', mask: '(#)-##-##-##-##' },
109
+ { code: '+34', id: CountryId.SPAIN, flag: '๐Ÿ‡ช๐Ÿ‡ธ', name: 'Spain', mask: '(###)-###-###' },
110
+ { code: '+350', id: CountryId.GIBRALTAR, flag: '๐Ÿ‡ฌ๐Ÿ‡ฎ', name: 'Gibraltar', mask: '#####' },
111
+ { code: '+351', id: CountryId.PORTUGAL, flag: '๐Ÿ‡ต๐Ÿ‡น', name: 'Portugal', mask: '(###)-###-###' },
112
+ { code: '+352', id: CountryId.LUXEMBOURG, flag: '๐Ÿ‡ฑ๐Ÿ‡บ', name: 'Luxembourg', mask: '(###)-###-###' },
113
+ { code: '+353', id: CountryId.IRELAND, flag: '๐Ÿ‡ฎ๐Ÿ‡ช', name: 'Ireland', mask: '(##)-###-####' },
114
+ { code: '+354', id: CountryId.ICELAND, flag: '๐Ÿ‡ฎ๐Ÿ‡ธ', name: 'Iceland', mask: '(###)-####' },
115
+ { code: '+355', id: CountryId.ALBANIA, flag: '๐Ÿ‡ฆ๐Ÿ‡ฑ', name: 'Albania', mask: '(###)-###-###' },
116
+ { code: '+356', id: CountryId.MALTA, flag: '๐Ÿ‡ฒ๐Ÿ‡น', name: 'Malta', mask: '(####)-####' },
117
+ { code: '+357', id: CountryId.CYPRUS, flag: '๐Ÿ‡จ๐Ÿ‡พ', name: 'Cyprus', mask: '(##)-######' },
118
+ { code: '+358', id: CountryId.FINLAND, flag: '๐Ÿ‡ซ๐Ÿ‡ฎ', name: 'Finland', mask: '(##)-###-##-##' },
119
+ { code: '+358', id: CountryId.ALAND_ISLANDS, flag: '๐Ÿ‡ฆ๐Ÿ‡ฝ', name: 'ร…land Islands', mask: '(##)-###-##-##' },
120
+ { code: '+359', id: CountryId.BULGARIA, flag: '๐Ÿ‡ง๐Ÿ‡ฌ', name: 'Bulgaria', mask: '(##)-###-####' },
121
+ { code: '+36', id: CountryId.HUNGARY, flag: '๐Ÿ‡ญ๐Ÿ‡บ', name: 'Hungary', mask: '(##)-###-####' },
122
+ { code: '+370', id: CountryId.LITHUANIA, flag: '๐Ÿ‡ฑ๐Ÿ‡น', name: 'Lithuania', mask: '(###)-##-###' },
123
+ { code: '+371', id: CountryId.LATVIA, flag: '๐Ÿ‡ฑ๐Ÿ‡ป', name: 'Latvia', mask: '(##)-###-###' },
124
+ { code: '+372', id: CountryId.ESTONIA, flag: '๐Ÿ‡ช๐Ÿ‡ช', name: 'Estonia', mask: '(##)-###-###' },
125
+ { code: '+373', id: CountryId.MOLDOVA, flag: '๐Ÿ‡ฒ๐Ÿ‡ฉ', name: 'Moldova', mask: '(##)-###-###' },
126
+ { code: '+374', id: CountryId.ARMENIA, flag: '๐Ÿ‡ฆ๐Ÿ‡ฒ', name: 'Armenia', mask: '(##)-###-###' },
127
+ { code: '+375', id: CountryId.BELARUS, flag: '๐Ÿ‡ง๐Ÿ‡พ', name: 'Belarus', mask: '(##)-###-##-##' },
128
+ { code: '+376', id: CountryId.ANDORRA, flag: '๐Ÿ‡ฆ๐Ÿ‡ฉ', name: 'Andorra', mask: '(###)-###' },
129
+ { code: '+377', id: CountryId.MONACO, flag: '๐Ÿ‡ฒ๐Ÿ‡จ', name: 'Monaco', mask: '(##)-##-##-##' },
130
+ { code: '+378', id: CountryId.SAN_MARINO, flag: '๐Ÿ‡ธ๐Ÿ‡ฒ', name: 'San Marino', mask: '(####)-######' },
131
+ { code: '+380', id: CountryId.UKRAINE, flag: '๐Ÿ‡บ๐Ÿ‡ฆ', name: 'Ukraine', mask: '(##)-###-##-##' },
132
+ { code: '+381', id: CountryId.SERBIA, flag: '๐Ÿ‡ท๐Ÿ‡ธ', name: 'Serbia', mask: '(##)-###-####' },
133
+ { code: '+382', id: CountryId.MONTENEGRO, flag: '๐Ÿ‡ฒ๐Ÿ‡ช', name: 'Montenegro', mask: '(##)-###-###' },
134
+ { code: '+383', id: CountryId.KOSOVO, flag: '๐Ÿ‡ฝ๐Ÿ‡ฐ', name: 'Kosovo', mask: '(##)-###-###' },
135
+ { code: '+385', id: CountryId.CROATIA, flag: '๐Ÿ‡ญ๐Ÿ‡ท', name: 'Croatia', mask: '(##)-###-###' },
136
+ { code: '+386', id: CountryId.SLOVENIA, flag: '๐Ÿ‡ธ๐Ÿ‡ฎ', name: 'Slovenia', mask: '(##)-###-###' },
137
+ { code: '+387', id: CountryId.BOSNIA_AND_HERZEGOVINA, flag: '๐Ÿ‡ง๐Ÿ‡ฆ', name: 'Bosnia and Herzegovina', mask: '(##)-###-###' },
138
+ { code: '+389', id: CountryId.NORTH_MACEDONIA, flag: '๐Ÿ‡ฒ๐Ÿ‡ฐ', name: 'North Macedonia', mask: '(##)-###-###' },
139
+ { code: '+39', id: CountryId.ITALY, flag: '๐Ÿ‡ฎ๐Ÿ‡น', name: 'Italy', mask: '(###)-###-####' },
140
+ { code: '+39', id: CountryId.VATICAN_CITY, flag: '๐Ÿ‡ป๐Ÿ‡ฆ', name: 'Vatican City', mask: '(##)-####-####' },
141
+ { code: '+40', id: CountryId.ROMANIA, flag: '๐Ÿ‡ท๐Ÿ‡ด', name: 'Romania', mask: '(###)-###-###' },
142
+ { code: '+41', id: CountryId.SWITZERLAND, flag: '๐Ÿ‡จ๐Ÿ‡ญ', name: 'Switzerland', mask: '(##)-###-##-##' },
143
+ { code: '+420', id: CountryId.CZECH_REPUBLIC, flag: '๐Ÿ‡จ๐Ÿ‡ฟ', name: 'Czech Republic', mask: '(###)-###-###' },
144
+ { code: '+421', id: CountryId.SLOVAKIA, flag: '๐Ÿ‡ธ๐Ÿ‡ฐ', name: 'Slovakia', mask: '(###)-###-###' },
145
+ { code: '+423', id: CountryId.LIECHTENSTEIN, flag: '๐Ÿ‡ฑ๐Ÿ‡ฎ', name: 'Liechtenstein', mask: '(###)-####' },
146
+ { code: '+43', id: CountryId.AUSTRIA, flag: '๐Ÿ‡ฆ๐Ÿ‡น', name: 'Austria', mask: '(###)-###-####' },
147
+ { code: '+44', id: CountryId.UNITED_KINGDOM, flag: '๐Ÿ‡ฌ๐Ÿ‡ง', name: 'United Kingdom', mask: '(####)-######' },
148
+ { code: '+44', id: CountryId.GUERNSEY, flag: '๐Ÿ‡ฌ๐Ÿ‡ฌ', name: 'Guernsey', mask: '(####)-######' },
149
+ { code: '+44', id: CountryId.ISLE_OF_MAN, flag: '๐Ÿ‡ฎ๐Ÿ‡ฒ', name: 'Isle of Man', mask: '(####)-######' },
150
+ { code: '+44', id: CountryId.JERSEY, flag: '๐Ÿ‡ฏ๐Ÿ‡ช', name: 'Jersey', mask: '(####)-######' },
151
+ { code: '+45', id: CountryId.DENMARK, flag: '๐Ÿ‡ฉ๐Ÿ‡ฐ', name: 'Denmark', mask: '(##)-##-##-##' },
152
+ { code: '+46', id: CountryId.SWEDEN, flag: '๐Ÿ‡ธ๐Ÿ‡ช', name: 'Sweden', mask: '(##)-###-##-##' },
153
+ { code: '+47', id: CountryId.NORWAY, flag: '๐Ÿ‡ณ๐Ÿ‡ด', name: 'Norway', mask: '(###)-##-###' },
154
+ { code: '+47', id: CountryId.SVALBARD_AND_JAN_MAYEN, flag: '๐Ÿ‡ธ๐Ÿ‡ฏ', name: 'Svalbard and Jan Mayen', mask: '(###)-##-###' },
155
+ { code: '+48', id: CountryId.POLAND, flag: '๐Ÿ‡ต๐Ÿ‡ฑ', name: 'Poland', mask: '(###)-###-###' },
156
+ { code: '+49', id: CountryId.GERMANY, flag: '๐Ÿ‡ฉ๐Ÿ‡ช', name: 'Germany', mask: '(###)-#######' },
157
+ // Zone 5 - Central & South America, Caribbean
158
+ { code: '+500', id: CountryId.FALKLAND_ISLANDS, flag: '๐Ÿ‡ซ๐Ÿ‡ฐ', name: 'Falkland Islands', mask: '#####' },
159
+ { code: '+500', id: CountryId.SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS, flag: '๐Ÿ‡ฌ๐Ÿ‡ธ', name: 'South Georgia and the South Sandwich Islands', mask: '#####' },
160
+ { code: '+501', id: CountryId.BELIZE, flag: '๐Ÿ‡ง๐Ÿ‡ฟ', name: 'Belize', mask: '(###)-####' },
161
+ { code: '+502', id: CountryId.GUATEMALA, flag: '๐Ÿ‡ฌ๐Ÿ‡น', name: 'Guatemala', mask: '(####)-####' },
162
+ { code: '+503', id: CountryId.EL_SALVADOR, flag: '๐Ÿ‡ธ๐Ÿ‡ป', name: 'El Salvador', mask: '(####)-####' },
163
+ { code: '+504', id: CountryId.HONDURAS, flag: '๐Ÿ‡ญ๐Ÿ‡ณ', name: 'Honduras', mask: '(####)-####' },
164
+ { code: '+505', id: CountryId.NICARAGUA, flag: '๐Ÿ‡ณ๐Ÿ‡ฎ', name: 'Nicaragua', mask: '(####)-####' },
165
+ { code: '+506', id: CountryId.COSTA_RICA, flag: '๐Ÿ‡จ๐Ÿ‡ท', name: 'Costa Rica', mask: '(####)-####' },
166
+ { code: '+507', id: CountryId.PANAMA, flag: '๐Ÿ‡ต๐Ÿ‡ฆ', name: 'Panama', mask: '(####)-####' },
167
+ { code: '+508', id: CountryId.SAINT_PIERRE_AND_MIQUELON, flag: '๐Ÿ‡ต๐Ÿ‡ฒ', name: 'Saint Pierre and Miquelon', mask: '(##)-##-##' },
168
+ { code: '+509', id: CountryId.HAITI, flag: '๐Ÿ‡ญ๐Ÿ‡น', name: 'Haiti', mask: '(##)-##-####' },
169
+ { code: '+51', id: CountryId.PERU, flag: '๐Ÿ‡ต๐Ÿ‡ช', name: 'Peru', mask: '(###)-###-###' },
170
+ { code: '+52', id: CountryId.MEXICO, flag: '๐Ÿ‡ฒ๐Ÿ‡ฝ', name: 'Mexico', mask: '(##)-####-####' },
171
+ { code: '+53', id: CountryId.CUBA, flag: '๐Ÿ‡จ๐Ÿ‡บ', name: 'Cuba', mask: '(#)-###-####' },
172
+ { code: '+54', id: CountryId.ARGENTINA, flag: '๐Ÿ‡ฆ๐Ÿ‡ท', name: 'Argentina', mask: '(##)-####-####' },
173
+ { code: '+55', id: CountryId.BRAZIL, flag: '๐Ÿ‡ง๐Ÿ‡ท', name: 'Brazil', mask: '(##)-#####-####' },
174
+ { code: '+56', id: CountryId.CHILE, flag: '๐Ÿ‡จ๐Ÿ‡ฑ', name: 'Chile', mask: '(#)-####-####' },
175
+ { code: '+57', id: CountryId.COLOMBIA, flag: '๐Ÿ‡จ๐Ÿ‡ด', name: 'Colombia', mask: '(###)-###-####' },
176
+ { code: '+58', id: CountryId.VENEZUELA, flag: '๐Ÿ‡ป๐Ÿ‡ช', name: 'Venezuela', mask: '(###)-###-####' },
177
+ { code: '+590', id: CountryId.GUADELOUPE, flag: '๐Ÿ‡ฌ๐Ÿ‡ต', name: 'Guadeloupe', mask: '(###)-##-##-##' },
178
+ { code: '+590', id: CountryId.SAINT_BARTHELEMY, flag: '๐Ÿ‡ง๐Ÿ‡ฑ', name: 'Saint Barthรฉlemy', mask: '(###)-##-##-##' },
179
+ { code: '+590', id: CountryId.SAINT_MARTIN, flag: '๐Ÿ‡ฒ๐Ÿ‡ซ', name: 'Saint Martin', mask: '(###)-##-##-##' },
180
+ { code: '+591', id: CountryId.BOLIVIA, flag: '๐Ÿ‡ง๐Ÿ‡ด', name: 'Bolivia', mask: '(#)-###-####' },
181
+ { code: '+592', id: CountryId.GUYANA, flag: '๐Ÿ‡ฌ๐Ÿ‡พ', name: 'Guyana', mask: '(###)-####' },
182
+ { code: '+593', id: CountryId.ECUADOR, flag: '๐Ÿ‡ช๐Ÿ‡จ', name: 'Ecuador', mask: '(##)-###-####' },
183
+ { code: '+594', id: CountryId.FRENCH_GUIANA, flag: '๐Ÿ‡ฌ๐Ÿ‡ซ', name: 'French Guiana', mask: '(###)-##-##-##' },
184
+ { code: '+595', id: CountryId.PARAGUAY, flag: '๐Ÿ‡ต๐Ÿ‡พ', name: 'Paraguay', mask: '(###)-###-###' },
185
+ { code: '+596', id: CountryId.MARTINIQUE, flag: '๐Ÿ‡ฒ๐Ÿ‡ถ', name: 'Martinique', mask: '(###)-##-##-##' },
186
+ { code: '+597', id: CountryId.SURINAME, flag: '๐Ÿ‡ธ๐Ÿ‡ท', name: 'Suriname', mask: '(###)-####' },
187
+ { code: '+598', id: CountryId.URUGUAY, flag: '๐Ÿ‡บ๐Ÿ‡พ', name: 'Uruguay', mask: '(#)-###-##-##' },
188
+ { code: '+599', id: CountryId.CURACAO, flag: '๐Ÿ‡จ๐Ÿ‡ผ', name: 'Curaรงao', mask: '(###)-####' },
189
+ { code: '+599', id: CountryId.CARIBBEAN_NETHERLANDS, flag: '๐Ÿ‡ง๐Ÿ‡ถ', name: 'Caribbean Netherlands', mask: '(###)-####' },
190
+ // Zone 6 - Southeast Asia & Oceania
191
+ { code: '+60', id: CountryId.MALAYSIA, flag: '๐Ÿ‡ฒ๐Ÿ‡พ', name: 'Malaysia', mask: '(##)-####-####' },
192
+ { code: '+61', id: CountryId.AUSTRALIA, flag: '๐Ÿ‡ฆ๐Ÿ‡บ', name: 'Australia', mask: '(###)-###-###' },
193
+ { code: '+61', id: CountryId.CHRISTMAS_ISLAND, flag: '๐Ÿ‡จ๐Ÿ‡ฝ', name: 'Christmas Island', mask: '(###)-###-###' },
194
+ { code: '+61', id: CountryId.COCOS_KEELING_ISLANDS, flag: '๐Ÿ‡จ๐Ÿ‡จ', name: 'Cocos (Keeling) Islands', mask: '(###)-###-###' },
195
+ { code: '+62', id: CountryId.INDONESIA, flag: '๐Ÿ‡ฎ๐Ÿ‡ฉ', name: 'Indonesia', mask: '(###)-####-####' },
196
+ { code: '+63', id: CountryId.PHILIPPINES, flag: '๐Ÿ‡ต๐Ÿ‡ญ', name: 'Philippines', mask: '(###)-###-####' },
197
+ { code: '+64', id: CountryId.NEW_ZEALAND, flag: '๐Ÿ‡ณ๐Ÿ‡ฟ', name: 'New Zealand', mask: '(##)-###-####' },
198
+ { code: '+64', id: CountryId.PITCAIRN_ISLANDS, flag: '๐Ÿ‡ต๐Ÿ‡ณ', name: 'Pitcairn Islands', mask: '(####)-####' },
199
+ { code: '+65', id: CountryId.SINGAPORE, flag: '๐Ÿ‡ธ๐Ÿ‡ฌ', name: 'Singapore', mask: '(####)-####' },
200
+ { code: '+66', id: CountryId.THAILAND, flag: '๐Ÿ‡น๐Ÿ‡ญ', name: 'Thailand', mask: '(##)-###-####' },
201
+ { code: '+670', id: CountryId.TIMOR_LESTE, flag: '๐Ÿ‡น๐Ÿ‡ฑ', name: 'Timor-Leste', mask: '(###)-####' },
202
+ { code: '+672', id: CountryId.NORFOLK_ISLAND, flag: '๐Ÿ‡ณ๐Ÿ‡ซ', name: 'Norfolk Island', mask: '(##)-####' },
203
+ { code: '+673', id: CountryId.BRUNEI, flag: '๐Ÿ‡ง๐Ÿ‡ณ', name: 'Brunei', mask: '(###)-####' },
204
+ { code: '+674', id: CountryId.NAURU, flag: '๐Ÿ‡ณ๐Ÿ‡ท', name: 'Nauru', mask: '(###)-####' },
205
+ { code: '+675', id: CountryId.PAPUA_NEW_GUINEA, flag: '๐Ÿ‡ต๐Ÿ‡ฌ', name: 'Papua New Guinea', mask: '(##)-###-###' },
206
+ { code: '+676', id: CountryId.TONGA, flag: '๐Ÿ‡น๐Ÿ‡ด', name: 'Tonga', mask: '(###)-####' },
207
+ { code: '+677', id: CountryId.SOLOMON_ISLANDS, flag: '๐Ÿ‡ธ๐Ÿ‡ง', name: 'Solomon Islands', mask: '(###)-####' },
208
+ { code: '+678', id: CountryId.VANUATU, flag: '๐Ÿ‡ป๐Ÿ‡บ', name: 'Vanuatu', mask: '(###)-####' },
209
+ { code: '+679', id: CountryId.FIJI, flag: '๐Ÿ‡ซ๐Ÿ‡ฏ', name: 'Fiji', mask: '(###)-####' },
210
+ { code: '+680', id: CountryId.PALAU, flag: '๐Ÿ‡ต๐Ÿ‡ผ', name: 'Palau', mask: '(###)-####' },
211
+ { code: '+681', id: CountryId.WALLIS_AND_FUTUNA, flag: '๐Ÿ‡ผ๐Ÿ‡ซ', name: 'Wallis and Futuna', mask: '(##)-####' },
212
+ { code: '+682', id: CountryId.COOK_ISLANDS, flag: '๐Ÿ‡จ๐Ÿ‡ฐ', name: 'Cook Islands', mask: '(##)-###' },
213
+ { code: '+683', id: CountryId.NIUE, flag: '๐Ÿ‡ณ๐Ÿ‡บ', name: 'Niue', mask: '####' },
214
+ { code: '+685', id: CountryId.SAMOA, flag: '๐Ÿ‡ผ๐Ÿ‡ธ', name: 'Samoa', mask: '(##)-#####' },
215
+ { code: '+686', id: CountryId.KIRIBATI, flag: '๐Ÿ‡ฐ๐Ÿ‡ฎ', name: 'Kiribati', mask: '(##)-##-###' },
216
+ { code: '+687', id: CountryId.NEW_CALEDONIA, flag: '๐Ÿ‡ณ๐Ÿ‡จ', name: 'New Caledonia', mask: '(##)-##-##' },
217
+ { code: '+688', id: CountryId.TUVALU, flag: '๐Ÿ‡น๐Ÿ‡ป', name: 'Tuvalu', mask: '(##)-###' },
218
+ { code: '+689', id: CountryId.FRENCH_POLYNESIA, flag: '๐Ÿ‡ต๐Ÿ‡ซ', name: 'French Polynesia', mask: '(##)-##-##-##' },
219
+ { code: '+690', id: CountryId.TOKELAU, flag: '๐Ÿ‡น๐Ÿ‡ฐ', name: 'Tokelau', mask: '####' },
220
+ { code: '+691', id: CountryId.MICRONESIA, flag: '๐Ÿ‡ซ๐Ÿ‡ฒ', name: 'Micronesia', mask: '(###)-####' },
221
+ { code: '+692', id: CountryId.MARSHALL_ISLANDS, flag: '๐Ÿ‡ฒ๐Ÿ‡ญ', name: 'Marshall Islands', mask: '(###)-####' },
222
+ // Zone 7 - Russia & Kazakhstan
223
+ { code: '+7', id: CountryId.RUSSIA, flag: '๐Ÿ‡ท๐Ÿ‡บ', name: 'Russia', mask: '(###)-###-##-##' },
224
+ { code: '+7', id: CountryId.KAZAKHSTAN, flag: '๐Ÿ‡ฐ๐Ÿ‡ฟ', name: 'Kazakhstan', mask: '(###)-###-##-##' },
225
+ // Zone 8 - East Asia
226
+ { code: '+81', id: CountryId.JAPAN, flag: '๐Ÿ‡ฏ๐Ÿ‡ต', name: 'Japan', mask: '(##)-####-####' },
227
+ { code: '+82', id: CountryId.SOUTH_KOREA, flag: '๐Ÿ‡ฐ๐Ÿ‡ท', name: 'South Korea', mask: '(##)-####-####' },
228
+ { code: '+84', id: CountryId.VIETNAM, flag: '๐Ÿ‡ป๐Ÿ‡ณ', name: 'Vietnam', mask: '(###)-###-####' },
229
+ { code: '+850', id: CountryId.NORTH_KOREA, flag: '๐Ÿ‡ฐ๐Ÿ‡ต', name: 'North Korea', mask: '(###)-###-####' },
230
+ { code: '+852', id: CountryId.HONG_KONG, flag: '๐Ÿ‡ญ๐Ÿ‡ฐ', name: 'Hong Kong', mask: '(####)-####' },
231
+ { code: '+853', id: CountryId.MACAU, flag: '๐Ÿ‡ฒ๐Ÿ‡ด', name: 'Macau', mask: '(####)-####' },
232
+ { code: '+855', id: CountryId.CAMBODIA, flag: '๐Ÿ‡ฐ๐Ÿ‡ญ', name: 'Cambodia', mask: '(##)-###-###' },
233
+ { code: '+856', id: CountryId.LAOS, flag: '๐Ÿ‡ฑ๐Ÿ‡ฆ', name: 'Laos', mask: '(##)-###-####' },
234
+ { code: '+86', id: CountryId.CHINA, flag: '๐Ÿ‡จ๐Ÿ‡ณ', name: 'China', mask: '(###)-####-####' },
235
+ { code: '+880', id: CountryId.BANGLADESH, flag: '๐Ÿ‡ง๐Ÿ‡ฉ', name: 'Bangladesh', mask: '(##)-####-####' },
236
+ { code: '+886', id: CountryId.TAIWAN, flag: '๐Ÿ‡น๐Ÿ‡ผ', name: 'Taiwan', mask: '(###)-###-####' },
237
+ // Zone 9 - South Asia, Middle East & Central Asia
238
+ { code: '+90', id: CountryId.TURKEY, flag: '๐Ÿ‡น๐Ÿ‡ท', name: 'Turkey', mask: '(###)-###-##-##' },
239
+ { code: '+91', id: CountryId.INDIA, flag: '๐Ÿ‡ฎ๐Ÿ‡ณ', name: 'India', mask: '(#####)-#####' },
240
+ { code: '+92', id: CountryId.PAKISTAN, flag: '๐Ÿ‡ต๐Ÿ‡ฐ', name: 'Pakistan', mask: '(###)-###-####' },
241
+ { code: '+93', id: CountryId.AFGHANISTAN, flag: '๐Ÿ‡ฆ๐Ÿ‡ซ', name: 'Afghanistan', mask: '(##)-###-####' },
242
+ { code: '+94', id: CountryId.SRI_LANKA, flag: '๐Ÿ‡ฑ๐Ÿ‡ฐ', name: 'Sri Lanka', mask: '(##)-###-####' },
243
+ { code: '+95', id: CountryId.MYANMAR, flag: '๐Ÿ‡ฒ๐Ÿ‡ฒ', name: 'Myanmar', mask: '(##)-###-####' },
244
+ { code: '+960', id: CountryId.MALDIVES, flag: '๐Ÿ‡ฒ๐Ÿ‡ป', name: 'Maldives', mask: '(###)-####' },
245
+ { code: '+961', id: CountryId.LEBANON, flag: '๐Ÿ‡ฑ๐Ÿ‡ง', name: 'Lebanon', mask: '(##)-###-###' },
246
+ { code: '+962', id: CountryId.JORDAN, flag: '๐Ÿ‡ฏ๐Ÿ‡ด', name: 'Jordan', mask: '(##)-###-####' },
247
+ { code: '+963', id: CountryId.SYRIA, flag: '๐Ÿ‡ธ๐Ÿ‡พ', name: 'Syria', mask: '(###)-###-###' },
248
+ { code: '+964', id: CountryId.IRAQ, flag: '๐Ÿ‡ฎ๐Ÿ‡ถ', name: 'Iraq', mask: '(###)-###-####' },
249
+ { code: '+965', id: CountryId.KUWAIT, flag: '๐Ÿ‡ฐ๐Ÿ‡ผ', name: 'Kuwait', mask: '(####)-####' },
250
+ { code: '+966', id: CountryId.SAUDI_ARABIA, flag: '๐Ÿ‡ธ๐Ÿ‡ฆ', name: 'Saudi Arabia', mask: '(##)-###-####' },
251
+ { code: '+967', id: CountryId.YEMEN, flag: '๐Ÿ‡พ๐Ÿ‡ช', name: 'Yemen', mask: '(###)-###-###' },
252
+ { code: '+968', id: CountryId.OMAN, flag: '๐Ÿ‡ด๐Ÿ‡ฒ', name: 'Oman', mask: '(####)-####' },
253
+ { code: '+970', id: CountryId.PALESTINIAN_TERRITORIES, flag: '๐Ÿ‡ต๐Ÿ‡ธ', name: 'Palestinian Territories', mask: '(##)-###-####' },
254
+ { code: '+971', id: CountryId.UNITED_ARAB_EMIRATES, flag: '๐Ÿ‡ฆ๐Ÿ‡ช', name: 'United Arab Emirates', mask: '(##)-###-####' },
255
+ { code: '+972', id: CountryId.ISRAEL, flag: '๐Ÿ‡ฎ๐Ÿ‡ฑ', name: 'Israel', mask: '(##)-###-####' },
256
+ { code: '+973', id: CountryId.BAHRAIN, flag: '๐Ÿ‡ง๐Ÿ‡ญ', name: 'Bahrain', mask: '(####)-####' },
257
+ { code: '+974', id: CountryId.QATAR, flag: '๐Ÿ‡ถ๐Ÿ‡ฆ', name: 'Qatar', mask: '(####)-####' },
258
+ { code: '+975', id: CountryId.BHUTAN, flag: '๐Ÿ‡ง๐Ÿ‡น', name: 'Bhutan', mask: '(##)-###-###' },
259
+ { code: '+976', id: CountryId.MONGOLIA, flag: '๐Ÿ‡ฒ๐Ÿ‡ณ', name: 'Mongolia', mask: '(####)-####' },
260
+ { code: '+977', id: CountryId.NEPAL, flag: '๐Ÿ‡ณ๐Ÿ‡ต', name: 'Nepal', mask: '(##)-###-####' },
261
+ { code: '+98', id: CountryId.IRAN, flag: '๐Ÿ‡ฎ๐Ÿ‡ท', name: 'Iran', mask: '(###)-###-####' },
262
+ { code: '+992', id: CountryId.TAJIKISTAN, flag: '๐Ÿ‡น๐Ÿ‡ฏ', name: 'Tajikistan', mask: '(##)-###-####' },
263
+ { code: '+993', id: CountryId.TURKMENISTAN, flag: '๐Ÿ‡น๐Ÿ‡ฒ', name: 'Turkmenistan', mask: '(##)-###-####' },
264
+ { code: '+994', id: CountryId.AZERBAIJAN, flag: '๐Ÿ‡ฆ๐Ÿ‡ฟ', name: 'Azerbaijan', mask: '(##)-###-##-##' },
265
+ { code: '+995', id: CountryId.GEORGIA, flag: '๐Ÿ‡ฌ๐Ÿ‡ช', name: 'Georgia', mask: '(###)-###-###' },
266
+ { code: '+996', id: CountryId.KYRGYZSTAN, flag: '๐Ÿ‡ฐ๐Ÿ‡ฌ', name: 'Kyrgyzstan', mask: '(###)-###-###' },
267
+ { code: '+998', id: CountryId.UZBEKISTAN, flag: '๐Ÿ‡บ๐Ÿ‡ฟ', name: 'Uzbekistan', mask: '(##)-###-##-##' },
268
+ ];