import { Directive, ElementRef, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { ValueAccessor } from './value-accessor'; @Directive({ /* tslint:disable-next-line:directive-selector */ selector: '', host: { '()': 'handleChangeEvent($event.target?.[""])' }, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NumericValueAccessor), multi: true } ] }) export class NumericValueAccessor extends ValueAccessor { constructor(el: ElementRef) { super(el); } override registerOnChange(fn: (_: number | null) => void) { super.registerOnChange(value => { fn(value === '' ? null : parseFloat(value)); }); } }