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.css
to theangular.json
styles configuration as follows:
"styles": [
"node_modules/flag-icons/css/flag-icons.css",
...
]
- Set the
supportedCountries
input 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
supportedCountries
input. - Use the
defaultCountry
ISO-3166-2 input to select a default. - Set
validatePhoneNumber
input to enable a validation service and show status information in the form control. - Use the
placeholderForSearch
input for a custom placeholder text of the country search. - The
selectCountryAriaLabel
input sets the ARIA label for the country dropdown. - The
phoneNumberAriaLabel
input sets the ARIA label for the phone number input. - All changes are emitted through the
valueChange
output.
SiPhoneNumberInputComponent API Documentation¶
si-phone-number-input
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.
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 | |
errormessageId ¶ | string | ${this.id()}-errormessage | This ID will be bound to the aria-describedby attribute of the phone-number-input. Use this to reference the element containing the error message(s) for the phone-number-input. It will be picked by the SiFormItemComponent if the phone-number-input is used inside a form item. |
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.