ngx-numeric-range-form-field
Version:
Angular material numeric range form field
158 lines (101 loc) • 3.73 kB
Markdown
is based on custom form field and control value accessor which allows inserting range numbers - minimum and maximum.

<p align="start">
<a href="https://www.npmjs.com/package/ngx-numeric-range-form-field"><img alt="weekly downloads from npm" src="https://img.shields.io/npm/dw/ngx-numeric-range-form-field.svg?style=flat-square"></a>
<a href="https://www.npmjs.com/package/ngx-numeric-range-form-field"><img alt="npm version" src="https://img.shields.io/npm/v/ngx-numeric-range-form-field.svg?style=flat-square"></a>
</p>
[](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity)
[](https://github.com/prettier/prettier)
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fdineeek%2Fngx-numeric-range-form-field?ref=badge_shield)
- Two inputs as one field.
- Reactive form field.
- Auto range validation & custom validation.
**[Live demo on StackBlitz.](https://stackblitz.com/edit/ngx-numeric-range-form-field-latest)**
```shell
npm install ngx-numeric-range-form-field
```
Template:
```html
<form [formGroup]="form">
<ngx-numeric-range-form-field
formControlName="range"
label="Numeric range"
(blurred)="onBlur()"
(enterPressed)="onEnter()"
(numericRangeChanged)="onNumericRangeChanged($event)"
></ngx-numeric-range-form-field>
</form>
```
```typescript
form: FormGroup;
constructor() {
this.form = new FormGroup({
range: new FormControl({
minimum: 10,
maximum: 100,
}, [
Validators.required, //optional
Validators.min(10), //optional
Validators.max(100), //optional
]),
});
}
onBlur(): void {
console.log('Value', this.rangeControl.value);
}
onEnter(): void {
console.log('Enter pressed!');
}
onNumericRangeChanged(value: INumericRange): void {
console.log('Changed value: ', value);
}
```
It is based on following type:
```typescript
type INumericRange = {
minimum: number;
maximum: number;
};
```
-
Set label of the field.
-
Set value for predefined MatFormFieldAppearance constants.
-
Set FloatLabelType.
-
Set placeholder of the minimum value control. Defaulted to 'From'.
Set placeholder of the maximum value control. Defaulted to 'To'.
-
Set field value as readonly.
-
Set flag for separated readonly value.
-
Set showing icon for resetting value in field.
-
Set error message on required validation.
-
Set error message on min & max value validation.
-
Set error message on min value validation.
-
Set error message on invalid numeric range.
-
Set sync validators on runtime.
-
Emit on blur out.
-
Emit on enter press.
-
Emit on value change.
Contributions are more than welcome!
MIT License
Copyright (c) 2022 Dino Klicek
An Angular Material UI numeric range input form field. Implementation