Platform: Step Input Component Technical Design - SAP/fundamental-ngx GitHub Wiki
StepInput
Summary
The StepInput is an input element used for entering numbers. It has a text input which only accepts numbers and increment buttons ("+" and "-") to either side of input field.
Example
<fdp-step-input
[(ngModel)]="count"
[minValue]="0"
[maxValue]="100"
[precision]="0"
[step]="1"></fdp-step-input>
Design
As this is an input control it needs to implement the FormFieldControl
as described in the FormGroup Layout or extend existing BaseInputComponent.
Property Bindings
minValue: number
The minimum value the StepInput can be set to.
maxValue: number
The maximum value the StepInput can be set to.
precision: number
Numerical precision of numbers allowed in StepInput. This not only sets the display for input, but restricts the user from entering values beyond set precision.
step: number
The increment the value is increased or decreased when the StepInput increment buttons are clicked.
i18n
Link to general support for i18n: Supporting internationalization in ngx/platform
- All numbers' translation can be supported in the lib implementation by using DecimalPipe which can automatically translate numbers depending on the locale.
- Any error messages will be handled in the way specified in the guidelines for Forms' error message i18n support.
Special Usecase: No
Redesign Required: No
Notes
- The subtract increment button should be disabled when the value reaches the minimum value; the add increment button should be disabled when the value is at the maximum.
- The StepInput should show an error when the input is beyond bounds set by minimum and/or maximum values.
- The StepInput should not allow characters other than numbers and decimals. e.g 3, 1.2 (or 1,2 for localized).
- The StepInput should not allow user to input numbers which go beyond precision. Example: If the precision is set to "0" only integer values should be allowed, if the precision is set to "2" only numbers to the hundredths decimal are allowed.