Phone number input¶
The phone number input allows a user to enter a phone number by selecting the country (international area code) from a dropdown list and entering the rest of the number in a text input field.
Usage¶

When to use¶
- For allowing users to enter or update a phone number.
- When validation and formatting of international phone numbers are required.
Best practices¶
- Ensure the input field is wide enough to accommodate different international phone number formats.
- Use smart defaults, such as showing the country code and phone number format based on the user's location.
- When collecting non-phone number data, a standard input component should be used.
Design¶
Elements¶

Label (optional) 2. Content/placeholder text, 3. Container, 4. Menu, 5. Country code with flag.
Label (optional)¶
Effective form labeling helps users understand what information to enter.

- Keep labels short and clear (should not be wider than the input field).
- A mandatory field is marked with an
*-asterisk.
Interaction states¶

Validation¶
Real-time validation ensures that the data being entered is within a specific range or follows certain rules, preventing errors and ensuring the integrity of the data.

Code¶
Usage¶
import { SiPhoneNumberInputComponent } from '@siemens/element-ng/phone-number';
@Component({
imports: [SiPhoneNumberInputComponent, ...]
})
Required Packages
The versions of the required packages are defined in the peer-dependencies of element-ng. Together with the types package, they are also part of the package.json of the demo app.
- Ensure to import the
node_modules/flag-icons/css/flag-icons.cssto theangular.jsonstyles configuration as follows:
"styles": [
"node_modules/flag-icons/css/flag-icons.css",
...
]
- Set the
supportedCountriesinput array to define the available list of countries. The countries are defined in ISO-3166-2 format. - To display all the available countries, don't add
supportedCountriesinput. - Use the
defaultCountryISO-3166-2 input to select a default. - Set
validatePhoneNumberinput to enable a validation service and show status information in the form control. - Use the
placeholderForSearchinput for a custom placeholder text of the country search. - The
selectCountryAriaLabelinput sets the ARIA label for the country dropdown. - The
phoneNumberAriaLabelinput sets the ARIA label for the phone number input. - All changes are emitted through the
valueChangeoutput.
SiPhoneNumberInputComponent API Documentation¶
si-phone-number-inputCommon interface for form item controls. Controls that should be connected to SiFormItemComponent must implement this interface and must be provided using the SI_FORM_ITEM_CONTROL token.
Input Properties¶
| Name | Type | Default | Description |
|---|---|---|---|
| country ¶ | string | ISO_3166-2 Code of the selected country. | |
| defaultCountry ¶ | string | ISO_3166-2 Code of the country which shall be used on form-control reset. | |
| disabled ¶ | boolean | false | |
| id ¶ | string | __si-phone-number-input-${SiPhoneNumberInputComponent.idCounter++} | Unique identifier. |
| labelledby ¶ | string | ${this.id()}-label | |
| phoneNumberAriaLabel ¶ | TranslatableString | $localize`:@@SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL:Enter phone number` | Text for the phone number input aria-label attribute. |
| placeholderForSearch ¶ | TranslatableString | $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER:Search` | Placeholder text for country search input. |
| readonly ¶ | boolean | false | |
| searchNoResultsFoundLabel ¶ | TranslatableString | $localize`:@@SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND:No results found` | |
| selectCountryAriaLabel ¶ | TranslatableString | $localize`:@@SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY:Select country` | Text for the country dropdown aria-label attribute. |
| supportedCountries ¶ | (null | readonly string[]) | List of countries in ISO2 format, from which the user is allowed to select one. If no values are provided, the dropdown will show all known countries. |
Output Properties¶
| Name | Type | Description |
|---|---|---|
| countryChange ¶ | string | ISO_3166-2 Code of the selected country. |
| valueChange ¶ | PhoneDetails |
Types Documentation¶
Variable |
|---|
| Represents a translatable string. This can either be a translation key, e.g. ACTIONS.EDIT that will be automatically translated when displayed on the UI or a pre-translated string, e.g. Edit . Equivalent to a normal string in usage and functionality. |
|---|
| Describes the phone number, its validity and associated country information. | ||||
|---|---|---|---|---|
|
| Common interface for form item controls. Controls that should be connected to SiFormItemComponent must implement this interface and must be provided using the SI_FORM_ITEM_CONTROL token. | |||||
|---|---|---|---|---|---|
|
Translatable import imported from @siemens/element-translate-ng |
|---|
|
| Interface for form error mapper. It resolves a key to either a translatable string or function which is called with the validation error for its key and should return a translatable string. | |
|---|---|
| |
| Describes the country information of the phone number. | ||||
|---|---|---|---|---|
|
|
| ||||||||||||
| ||||||||||||
|
| |||||||||||
| |||||||||||
| |||||||||||
|
| ||||||||||||
| ||||||||||||
|
Except where otherwise noted, content on this site is licensed under MIT License.