@stencil/angular-output-target
Version:
Angular output target for @stencil/core components.
30 lines (27 loc) • 804 B
text/typescript
import { Directive, ElementRef } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { ValueAccessor } from './value-accessor';
({
/* tslint:disable-next-line:directive-selector */
selector: '<VALUE_ACCESSOR_SELECTORS>',
host: {
'(<VALUE_ACCESSOR_EVENT>)': 'handleChangeEvent($event.target.<VALUE_ACCESSOR_TARGETATTR>)'
},
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: NumericValueAccessor,
multi: true
}
]<VALUE_ACCESSOR_STANDALONE>
})
export class NumericValueAccessor extends ValueAccessor {
constructor(el: ElementRef) {
super(el);
}
override registerOnChange(fn: (_: number | null) => void) {
super.registerOnChange(value => {
fn(value === '' ? null : parseFloat(value));
});
}
}