@@ -33,6 +33,7 @@ export class NumberChange {
3333 <label *ngIf="skeleton && label" class="bx--label bx--skeleton"></label>
3434 <div
3535 data-numberinput
36+ [attr.data-invalid]="(invalid ? '' : null)"
3637 class="bx--number"
3738 [ngClass]="{
3839 'bx--number--light': theme === 'light',
@@ -48,7 +49,8 @@ export class NumberChange {
4849 [min]="min"
4950 [max]="max"
5051 [disabled]="disabled"
51- [required]="required"/>
52+ [required]="required"
53+ (input)="onNumberInputChange($event)"/>
5254 <div *ngIf="!skeleton" class="bx--number__controls">
5355 <button
5456 class="bx--number__control-btn up-icon"
@@ -65,6 +67,9 @@ export class NumberChange {
6567 </svg>
6668 </button>
6769 </div>
70+ <div *ngIf="invalid" class="bx--form-requirement">
71+ {{invalidText}}
72+ </div>
6873 <div *ngIf="helperText" class="bx--form__helper-text">{{helperText}}</div>
6974 </div>
7075 ` ,
@@ -96,6 +101,10 @@ export class Number implements ControlValueAccessor {
96101 * Set to `true` for a loading number component.
97102 */
98103 @Input ( ) skeleton = false ;
104+ /**
105+ * Set to `true` for an invalid number component.
106+ */
107+ @Input ( ) invalid = false ;
99108 /**
100109 * The unique id for the number component.
101110 */
@@ -124,6 +133,10 @@ export class Number implements ControlValueAccessor {
124133 * Sets the optional helper text.
125134 */
126135 @Input ( ) helperText ;
136+ /**
137+ * Sets the invalid text.
138+ */
139+ @Input ( ) invalidText ;
127140 /**
128141 * Emits event notifying other classes when a change in state occurs in the input.
129142 */
@@ -205,4 +218,8 @@ export class Number implements ControlValueAccessor {
205218 this . propagateChange ( this . value ) ;
206219 }
207220
221+ onNumberInputChange ( event ) {
222+ this . value = event . target . value ;
223+ this . emitChangeEvent ( ) ;
224+ }
208225}
0 commit comments