added some reusable form controls

This commit is contained in:
Jonas Winkler 2020-10-28 18:02:30 +01:00
parent 11af74ba36
commit b35e1bacd4
14 changed files with 217 additions and 1 deletions

View file

@ -0,0 +1,43 @@
import { Component, Directive, forwardRef, Input, OnInit } from '@angular/core';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
import { v4 as uuidv4 } from 'uuid';
@Directive()
export class AbstractInputComponent<T> implements OnInit, ControlValueAccessor {
constructor() { }
onChange = (newValue: T) => {};
onTouched = () => {};
writeValue(newValue: any): void {
this.value = newValue
}
registerOnChange(fn: any): void {
this.onChange = fn;
}
registerOnTouched(fn: any): void {
this.onTouched = fn;
}
setDisabledState?(isDisabled: boolean): void {
this.disabled = isDisabled;
}
@Input()
title: string
@Input()
disabled = false;
value: T
ngOnInit(): void {
this.inputId = uuidv4()
}
inputId: string
@Input()
hint: string
}