import {ExComponent} from '../../ExComponent.js' import {FormControl, FormField} from '../types.js' import {FormComponent} from '../Form.component.js' export abstract class InputComponent extends ExComponent implements FormField { mount() { super.mount() this.control()?.registerField(this) } protected control(): undefined | FormControl { let parent = this.parentElement while ( parent ) { if ( parent instanceof FormComponent ) { return parent } parent = parent.parentElement } } abstract getFieldName(): string abstract getValue(): any abstract validate(): boolean }