UNPKG

ngx-custom-numeric-range-form-field

Version:
1 lines 37.8 kB
{"version":3,"file":"ngx-custom-numeric-range-form-field.mjs","sources":["../../../projects/ngx-numeric-range-form-field/src/lib/form/numeric-range.validator.ts","../../../projects/ngx-numeric-range-form-field/src/lib/form/numeric-range-form.service.ts","../../../projects/ngx-numeric-range-form-field/src/lib/form/numeric-range-state-matcher.ts","../../../projects/ngx-numeric-range-form-field/src/lib/control/numeric-range-form-field-control.component.ts","../../../projects/ngx-numeric-range-form-field/src/lib/control/numeric-range-form-field-control.component.html","../../../projects/ngx-numeric-range-form-field/src/lib/container/numeric-range-form-field-container.component.ts","../../../projects/ngx-numeric-range-form-field/src/lib/container/numeric-range-form-field-container.component.html","../../../projects/ngx-numeric-range-form-field/src/lib/ngx-numeric-range-form-field.module.ts","../../../projects/ngx-numeric-range-form-field/src/public-api.ts","../../../projects/ngx-numeric-range-form-field/src/ngx-custom-numeric-range-form-field.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport const numericRangeValues = (\r\n\tminimumControlName = 'minimum',\r\n\tmaximumControlName = 'maximum') => (\r\n\tgroup: AbstractControl\r\n): ValidationErrors | null => {\r\n\tconst max = group.get(maximumControlName).value\r\n\t\t? Number(group.get(maximumControlName).value)\r\n\t\t: null;\r\n\tconst min = group.get(minimumControlName).value\r\n\t\t? Number(group.get(minimumControlName).value)\r\n\t\t: null;\r\n\r\n\tif (max !== null && min !== null) {\r\n\t\tif (max < min) {\r\n\t\t\treturn { notValidRange: true };\r\n\t\t}\r\n\t}\r\n\treturn null;\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n\tAsyncValidatorFn,\r\n\tFormControl,\r\n\tFormGroup,\r\n\tValidatorFn\r\n} from '@angular/forms';\r\nimport { numericRangeValues } from './numeric-range.validator';\r\n\r\n@Injectable()\r\nexport class NumericRangeFormService {\r\n\tprivate form: FormGroup;\r\n\tprivate minimumControlName = 'minimum';\r\n\tprivate maximumControlName = 'maximum';\r\n\r\n\tconstructor() {\r\n\t\tthis.form = new FormGroup({});\r\n\t}\r\n\r\n\tget minimumControl(): FormControl {\r\n\t\treturn this.form.get(this.minimumControlName) as FormControl;\r\n\t}\r\n\r\n\tget maximumControl(): FormControl {\r\n\t\treturn this.form.get(this.maximumControlName) as FormControl;\r\n\t}\r\n\r\n\tget formGroup(): FormGroup {\r\n\t\treturn this.form;\r\n\t}\r\n\r\n\tinit(minimumControlName = 'minimum', maximumControlName = 'maximum', updateOn: 'blur' | 'change' | 'submit' = 'change'): FormGroup {\r\n\t\tthis.minimumControlName = minimumControlName;\r\n\t\tthis.maximumControlName = maximumControlName;\r\n\t\tthis.form.addControl(this.minimumControlName, new FormControl(null, { updateOn }));\r\n\t\tthis.form.addControl(this.maximumControlName, new FormControl(null, { updateOn }));\r\n\t\tthis.form.setValidators(numericRangeValues(this.minimumControlName, this.maximumControlName));\r\n\t\treturn this.form;\r\n\t}\r\n\r\n\tsetSyncValidators(validator: ValidatorFn): void {\r\n\t\tif (!validator) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.minimumControl.addValidators(validator); // sets the validators on child control\r\n\t\tthis.maximumControl.addValidators(validator); // sets the validators on child control\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n\r\n\tsetAsyncValidators(asyncValidator: AsyncValidatorFn): void {\r\n\t\tif (!asyncValidator) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.minimumControl.addAsyncValidators(asyncValidator);\r\n\t\tthis.maximumControl.addAsyncValidators(asyncValidator);\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n}\r\n","import {\r\n\tFormControl,\r\n\tFormGroup,\r\n\tFormGroupDirective,\r\n\tNgForm\r\n} from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\n\r\nexport class NumericRangeStateMatcher implements ErrorStateMatcher {\r\n\tisErrorState(\r\n\t\tcontrol: FormControl | null,\r\n\t\tform: FormGroup | FormGroupDirective | NgForm | null,\r\n\t\tminimumControlName = 'minimum',\r\n\t\tmaximumControlName = 'maximum'\r\n\t): boolean {\r\n\t\tif (!control.parent && form instanceof FormGroup) {\r\n\t\t\tconst minimumControl = form.get(minimumControlName) as FormControl;\r\n\t\t\tconst maximumControl = form.get(maximumControlName) as FormControl;\r\n\r\n\t\t\tconst isFormInvalid = form.touched && form.invalid;\r\n\r\n\t\t\tconst areFormControlsInvalid =\r\n\t\t\t\tthis.isControlTouchedInvalid(minimumControl) ||\r\n\t\t\t\tthis.isControlTouchedInvalid(maximumControl);\r\n\r\n\t\t\treturn isFormInvalid || areFormControlsInvalid;\r\n\t\t}\r\n\r\n\t\treturn control.touched && control.invalid;\r\n\t}\r\n\r\n\tprivate isControlTouchedInvalid(control: FormControl): boolean {\r\n\t\treturn control.touched && control.invalid;\r\n\t}\r\n}\r\n","import {\r\n\tChangeDetectionStrategy,\r\n\tComponent,\r\n\tDoCheck,\r\n\tEventEmitter,\r\n\tHostBinding,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n\tSelf,\r\n\tSkipSelf\r\n} from '@angular/core';\r\nimport {\r\n\tAbstractControl,\r\n\tControlValueAccessor,\r\n\tFormControl,\r\n\tFormGroup,\r\n\tNgControl,\r\n\tValidator\r\n} from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NumericRangeFormService } from '../form/numeric-range-form.service';\r\nimport { NumericRangeStateMatcher } from '../form/numeric-range-state-matcher';\r\n\r\n@Component({\r\n\tselector: 'ngx-numeric-range-form-field-control',\r\n\ttemplateUrl: './numeric-range-form-field-control.component.html',\r\n\tstyleUrls: ['./numeric-range-form-field-control.component.scss'],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: MatFormFieldControl,\r\n\t\t\tuseExisting: NumericRangeFormFieldControlComponent\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: ErrorStateMatcher,\r\n\t\t\tuseClass: NumericRangeStateMatcher\r\n\t\t}\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class NumericRangeFormFieldControlComponent\r\n\timplements\r\n\t\tOnInit,\r\n\t\tDoCheck,\r\n\t\tOnDestroy,\r\n\t\tMatFormFieldControl<any>,\r\n\t\tControlValueAccessor,\r\n\t\tValidator {\r\n\tstatic nextId = 0;\r\n\r\n\tget value() {\r\n\t\treturn this.formGroup.value;\r\n\t}\r\n\t@Input()\r\n\tset value(value: any) {\r\n\t\tthis.formGroup.patchValue(value);\r\n\t\tthis.stateChanges.next();\r\n\t}\r\n\r\n\tget placeholder(): string {\r\n\t\treturn this._placeholder;\r\n\t}\r\n\r\n\t@Input() set placeholder(value: string) {\r\n\t\tthis._placeholder = value;\r\n\t\tthis.stateChanges.next();\r\n\t}\r\n\r\n\t@Input() minPlaceholder: string;\r\n\t@Input() maxPlaceholder: string;\r\n\t@Input() readonly = false;\r\n\t@Input() minReadonly = false;\r\n\t@Input() maxReadonly = false;\r\n\t@Input() required: boolean;\r\n\t@Input() disabled: boolean;\r\n\t@Input() errorStateMatcher: ErrorStateMatcher;\r\n\t@Input() autofilled?: boolean;\r\n\t@Input() minimumControlName = 'minimum';\r\n\t@Input() maximumControlName = 'maximum';\r\n\t@Input() updateOn: 'change' | 'blur' | 'submit' = 'change';\r\n\r\n\t@Output() blurred = new EventEmitter<void>();\r\n\t@Output() enterPressed = new EventEmitter<void>();\r\n\t@Output() numericRangeChanged = new EventEmitter<any>();\r\n\r\n\t@HostBinding('class.floated')\r\n\tget shouldLabelFloat(): boolean {\r\n\t\treturn true;\r\n\t}\r\n\r\n\t@HostBinding('attr.aria-describedby')\r\n\tuserAriaDescribedBy = '';\r\n\r\n\t@HostBinding()\r\n\tid = `numeric-range-form-control-id-${NumericRangeFormFieldControlComponent.nextId++}`;\r\n\r\n\tget empty(): boolean {\r\n\t\treturn !this.value[this.minimumControlName] && !this.value[this.maximumControlName];\r\n\t}\r\n\r\n\tget errorState() {\r\n\t\treturn this.numericRangeErrorMatcher.isErrorState(\r\n\t\t\tthis.ngControl.control as FormControl,\r\n\t\t\tthis.formGroup,\r\n\t\t\tthis.minimumControlName,\r\n\t\t\tthis.maximumControlName\r\n\t\t);\r\n\t}\r\n\r\n\tget minimumControl(): FormControl {\r\n\t\treturn this.formService.minimumControl;\r\n\t}\r\n\r\n\tget maximumControl(): FormControl {\r\n\t\treturn this.formService.maximumControl;\r\n\t}\r\n\r\n\tformGroup: FormGroup = this.formService.formGroup;\r\n\r\n\tstateChanges = new Subject<void>();\r\n\r\n\tfocused = false;\r\n\r\n\tcontrolType = 'numeric-range-form-control';\r\n\r\n\tnumericRangeErrorMatcher = new NumericRangeStateMatcher();\r\n\r\n\tprivate unsubscribe$ = new Subject<void>();\r\n\r\n\tprivate _placeholder: string;\r\n\r\n\tonTouched = () => {};\r\n\r\n\tconstructor(\r\n\t\t@Self() public ngControl: NgControl,\r\n\t\t@SkipSelf() private formService: NumericRangeFormService\r\n\t) {\r\n\t\tthis.ngControl.valueAccessor = this;\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.formService.init(\r\n\t\t\tthis.minimumControlName,\r\n\t\t\tthis.maximumControlName,\r\n\t\t\tthis.updateOn\r\n\t\t);\r\n\t\tthis.formService.setSyncValidators(this.ngControl.control.validator);\r\n\t\tthis.formService.setAsyncValidators(this.ngControl.control.asyncValidator);\r\n\r\n\t\tthis.ngControl.control.setValidators([this.validate.bind(this)]);\r\n\t\tthis.ngControl.control.updateValueAndValidity({ emitEvent: false });\r\n\t}\r\n\r\n\tngDoCheck(): void {\r\n\t\tthis.formGroup.markAllAsTouched();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.stateChanges.complete();\r\n\t\tthis.unsubscribe$.next();\r\n\t\tthis.unsubscribe$.complete();\r\n\t}\r\n\r\n\twriteValue(value: any): void {\r\n\t\tvalue === null\r\n\t\t\t? this.formGroup.reset()\r\n\t\t\t: this.formGroup.setValue(value, { emitEvent: false });\r\n\t}\r\n\r\n\tregisterOnChange(fn: any): void {\r\n\t\tthis.formGroup.valueChanges\r\n\t\t\t.pipe(takeUntil(this.unsubscribe$))\r\n\t\t\t.subscribe(fn);\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any): void {\r\n\t\tthis.onTouched = fn;\r\n\t}\r\n\r\n\tsetDisabledState?(isDisabled: boolean): void {\r\n\t\tthis.disabled = isDisabled;\r\n\t\tisDisabled ? this.formGroup.disable() : this.formGroup.enable();\r\n\r\n\t\tthis.stateChanges.next();\r\n\t}\r\n\r\n\tsetDescribedByIds(ids: string[]): void {\r\n\t\tthis.userAriaDescribedBy = ids.join(' ');\r\n\t}\r\n\r\n\tonContainerClick(event: MouseEvent): void {}\r\n\r\n\tvalidate(control: AbstractControl) {\r\n\t\treturn control.errors;\r\n\t}\r\n\r\n\tonEnterPressed(): void {\r\n\t\tif (\r\n\t\t\t!this.formGroup.errors &&\r\n\t\t\t!this.minimumControl.errors &&\r\n\t\t\t!this.maximumControl.errors\r\n\t\t) {\r\n\t\t\tthis.enterPressed.emit();\r\n\t\t}\r\n\t}\r\n\r\n\tonBlur(): void {\r\n\t\tthis.onTouched();\r\n\t\tthis.blurred.emit();\r\n\t}\r\n\r\n\tonRangeValuesChanged(): void {\r\n\t\tthis.formGroup.errors ||\r\n\t\tthis.minimumControl.errors ||\r\n\t\tthis.maximumControl.errors\r\n\t\t\t? this.numericRangeChanged.emit(null)\r\n\t\t\t: this.numericRangeChanged.emit(this.formGroup.value);\r\n\t}\r\n}\r\n","<input\r\n\t(blur)=\"onBlur()\"\r\n\t(input)=\"onRangeValuesChanged()\"\r\n\t(keyup.enter)=\"onEnterPressed()\"\r\n\t[readonly]=\"readonly || minReadonly\"\r\n\t[formControl]=\"minimumControl\"\r\n\tmatInput\r\n\t[placeholder]=\"minPlaceholder\"\r\n\ttype=\"number\"\r\n/>\r\n<span class=\"spacer\">&ndash;</span>\r\n<input\r\n\t(blur)=\"onBlur()\"\r\n\t(input)=\"onRangeValuesChanged()\"\r\n\t(keyup.enter)=\"onEnterPressed()\"\r\n\t[formControl]=\"maximumControl\"\r\n\t[readonly]=\"readonly || maxReadonly\"\r\n\tmatInput\r\n\t[placeholder]=\"maxPlaceholder\"\r\n\ttype=\"number\"\r\n/>\r\n","import { TOUCH_BUFFER_MS } from '@angular/cdk/a11y/input-modality/input-modality-detector';\r\nimport {\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tEventEmitter,\r\n\tHost,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOutput,\r\n\tSelf\r\n} from '@angular/core';\r\nimport {\r\n\tAbstractControl,\r\n\tAsyncValidatorFn,\r\n\tControlValueAccessor,\r\n\tFormControl,\r\n\tFormGroup,\r\n\tNgControl,\r\n\tValidationErrors,\r\n\tValidator,\r\n\tValidatorFn\r\n} from '@angular/forms';\r\nimport {\r\n\tFloatLabelType,\r\n\tMatFormFieldAppearance\r\n} from '@angular/material/form-field';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NumericRangeFormService } from '../form/numeric-range-form.service';\r\n\r\n@Component({\r\n\tselector: 'ngx-numeric-range-form-field',\r\n\ttemplateUrl: './numeric-range-form-field-container.component.html',\r\n\tstyleUrls: ['./numeric-range-form-field-container.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [NumericRangeFormService]\r\n})\r\nexport class NumericRangeFormFieldContainerComponent\r\n\timplements OnInit, OnDestroy, ControlValueAccessor, Validator {\r\n\t@Input() label: string;\r\n\t@Input() appearance: MatFormFieldAppearance = 'outline';\r\n\t@Input() floatLabel: FloatLabelType = 'always';\r\n\t@Input() minPlaceholder = 'From';\r\n\t@Input() maxPlaceholder = 'To';\r\n\t@Input() readonly = false;\r\n\t@Input() minReadonly = false;\r\n\t@Input() maxReadonly = false;\r\n\t@Input() resettable = true;\r\n\t@Input() required: boolean;\r\n\t@Input() requiredErrorMessage = 'Field is required!';\r\n\t@Input() minimumErrorMessage = 'Minimum has been reached!';\r\n\t@Input() maximumErrorMessage = 'Maximum has exceeded!';\r\n\t@Input() invalidRangeErrorMessage = 'Inserted range is not valid!';\r\n\t@Input() minimumControlName = 'minimum';\r\n\t@Input() maximumControlName = 'maximum';\r\n\t@Input() updateOn: 'change' | 'blur' | 'submit' = 'change';\r\n\t@Input() controlStyle = '';\r\n\r\n\t@Output() blurred = new EventEmitter<void>();\r\n\t@Output() enterPressed = new EventEmitter<void>();\r\n\t@Output() numericRangeChanged = new EventEmitter<any>();\r\n\r\n\tformGroup: FormGroup = this.formService.formGroup;\r\n\tcontrol = new FormControl();\r\n\r\n\tprivate unsubscribe$ = new Subject();\r\n\r\n\tonTouched = () => {};\r\n\r\n\tget minimumControl(): FormControl {\r\n\t\treturn this.formService.minimumControl;\r\n\t}\r\n\r\n\tget maximumControl(): FormControl {\r\n\t\treturn this.formService.maximumControl;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\t@Self() private controlDirective: NgControl,\r\n\t\t@Host() private formService: NumericRangeFormService,\r\n\t\tprivate changeDetectorRef: ChangeDetectorRef\r\n\t) {\r\n\t\tthis.controlDirective.valueAccessor = this;\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.formService.init(\r\n\t\t\tthis.minimumControlName,\r\n\t\t\tthis.maximumControlName,\r\n\t\t\tthis.updateOn);\r\n\t\tthis.setSyncValidator(this.controlDirective.control.validator);\r\n\t\tthis.setAsyncValidator(this.controlDirective.control.asyncValidator);\r\n\r\n\t\tthis.controlDirective.control.setValidators([this.validate.bind(this)]); // overrides the parent control validators by sending out errors from validate()\r\n\t\tthis.controlDirective.control.updateValueAndValidity({ emitEvent: false });\r\n\r\n\t\tthis.changeDetectorRef.detectChanges();\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.unsubscribe$.next();\r\n\t\tthis.unsubscribe$.complete();\r\n\t}\r\n\r\n\twriteValue(value: any): void {\r\n\t\tvalue === null\r\n\t\t\t? this.control.reset()\r\n\t\t\t: this.control.setValue(value, {\r\n\t\t\t\t\temitEvent: false\r\n\t\t\t });\r\n\t}\r\n\r\n\tregisterOnChange(fn: any): void {\r\n\t\tthis.control.valueChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(fn);\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any): void {\r\n\t\tthis.onTouched = fn;\r\n\t}\r\n\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tisDisabled ? this.control.disable() : this.control.enable();\r\n\t}\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tconst errors = {\r\n\t\t\t...this.minimumControl.errors,\r\n\t\t\t...this.maximumControl.errors\r\n\t\t};\r\n\t\treturn Object.keys(errors).length ? errors : null;\r\n\t}\r\n\r\n\tonEnterPressed(): void {\r\n\t\tthis.enterPressed.emit();\r\n\t}\r\n\r\n\tonBlur(): void {\r\n\t\tthis.onTouched();\r\n\t\tthis.blurred.emit();\r\n\t}\r\n\r\n\tonRangeValuesChanged(value: any): void {\r\n\t\tthis.numericRangeChanged.emit(value);\r\n\t}\r\n\r\n\tonReset(): void {\r\n\t\tthis.formGroup.reset();\r\n\t}\r\n\r\n\tprivate setSyncValidator(validator: ValidatorFn): void {\r\n\t\tif (!validator) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.control.addValidators(validator); // sets the validators from parent control\r\n\t\tthis.control.updateValueAndValidity();\r\n\t}\r\n\r\n\tprivate setAsyncValidator(asyncValidator: AsyncValidatorFn): void {\r\n\t\tif (!asyncValidator) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.control.addAsyncValidators(asyncValidator);\r\n\t\tthis.control.updateValueAndValidity();\r\n\t}\r\n}\r\n","<mat-form-field\r\n\t[appearance]=\"appearance\"\r\n\t[floatLabel]=\"floatLabel\"\r\n\tclass=\"numeric-range-field\"\r\n>\r\n\t<mat-label>{{ label }}</mat-label>\r\n\t<ngx-numeric-range-form-field-control\r\n\t\tid=\"numeric-range-form-control\"\r\n\t\t[style]=\"controlStyle\"\r\n\t\t[formControl]=\"control\"\r\n\t\t[minPlaceholder]=\"minPlaceholder\"\r\n\t\t[maxPlaceholder]=\"maxPlaceholder\"\r\n\t\t[readonly]=\"readonly\"\r\n\t\t[minReadonly]=\"minReadonly\"\r\n\t\t[maxReadonly]=\"maxReadonly\"\r\n\t\t[required]=\"required\"\r\n\t\t[minimumControlName]=\"minimumControlName\"\r\n\t\t[maximumControlName]=\"maximumControlName\"\r\n\t\t(blurred)=\"onBlur()\"\r\n\t\t(enterPressed)=\"onEnterPressed()\"\r\n\t\t(numericRangeChanged)=\"onRangeValuesChanged($event)\"\r\n\t></ngx-numeric-range-form-field-control>\r\n\r\n\t<mat-icon\r\n\t\t(click)=\"onReset()\"\r\n\t\t*ngIf=\"\r\n\t\t\tresettable &&\r\n\t\t\t!readonly &&\r\n\t\t\t!minReadonly &&\r\n\t\t\t!maxReadonly &&\r\n\t\t\t(minimumControl.value !== null || maximumControl.value !== null) &&\r\n\t\t\t!formGroup.disabled\r\n\t\t\"\r\n\t\tcolor=\"primary\"\r\n\t\tclass=\"pointer\"\r\n\t\tmatSuffix\r\n\t\t>close\r\n\t</mat-icon>\r\n\r\n\t<mat-error\r\n\t\t*ngIf=\"\r\n\t\t\tminimumControl.hasError('required') || maximumControl.hasError('required')\r\n\t\t\"\r\n\t>\r\n\t\t{{ requiredErrorMessage }}\r\n\t</mat-error>\r\n\r\n\t<mat-error\r\n\t\t*ngIf=\"minimumControl.hasError('min') || maximumControl.hasError('min')\"\r\n\t>\r\n\t\t{{ minimumErrorMessage }}\r\n\t</mat-error>\r\n\r\n\t<mat-error\r\n\t\t*ngIf=\"minimumControl.hasError('max') || maximumControl.hasError('max')\"\r\n\t>\r\n\t\t{{ maximumErrorMessage }}\r\n\t</mat-error>\r\n\r\n\t<mat-error\r\n\t\t*ngIf=\"\r\n\t\t\tformGroup.hasError('notValidRange') &&\r\n\t\t\t!minimumControl.errors &&\r\n\t\t\t!maximumControl.errors\r\n\t\t\"\r\n\t>\r\n\t\t{{ invalidRangeErrorMessage }}\r\n\t</mat-error>\r\n</mat-form-field>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { NumericRangeFormFieldContainerComponent } from './container/numeric-range-form-field-container.component';\r\nimport { NumericRangeFormFieldControlComponent } from './control/numeric-range-form-field-control.component';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tNumericRangeFormFieldContainerComponent,\r\n\t\tNumericRangeFormFieldControlComponent\r\n\t],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatInputModule,\r\n\t\tMatIconModule\r\n\t],\r\n\texports: [NumericRangeFormFieldContainerComponent]\r\n})\r\nexport class NgxNumericRangeFormFieldModule {}\r\n","/*\r\n * Public API Surface of ngx-numeric-range-form-field\r\n */\r\n\r\nexport * from './lib/ngx-numeric-range-form-field.module';\r\nexport { NumericRangeFormFieldContainerComponent } from './lib/container/numeric-range-form-field-container.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.NumericRangeFormService","i3","i4.NumericRangeFormFieldControlComponent"],"mappings":"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"}