@ng-flexy/form
Version:
Flexy components and tools to build Angular 8+ applications
44 lines (43 loc) • 1.46 kB
TypeScript
import { FormControl, FormGroup } from '@angular/forms';
import { FlexyLayout } from '@ng-flexy/layout';
import { FlexyFormFieldLayoutSchema, FlexyFormLayoutSchema } from './layout-schema.model';
import { FlexyFormData } from './form.data';
import { Observable } from 'rxjs';
interface CalcRefs {
[name: string]: {
calc: string;
control: FormControl;
ifControl?: FormGroup;
};
}
export declare class FlexyForm extends FlexyLayout {
currentData: FlexyFormData;
currentDataHash: string;
readonly currentData$: Observable<FlexyFormData>;
get valid(): boolean;
isStarted: boolean;
readonly schema: FlexyFormLayoutSchema[];
readonly formGroup: FormGroup;
private readonly _originalData;
private readonly _currentDataSubject;
_calculatedRefs: CalcRefs;
_lastErrors: {
[key: string]: any;
};
private _changesSubscription;
constructor(formGroup: FormGroup, schema: FlexyFormLayoutSchema[], data: FlexyFormData);
getAllData(): FlexyFormData;
getDirtyData(): FlexyFormData;
getAllErrors(): {
[key: string]: any;
};
containsFieldSchema(fieldName: string): boolean;
getFieldSchema(fieldName: string): FlexyFormFieldLayoutSchema;
getFieldInstance<T>(fieldName: string): T;
private _subscribeChangesAndCalculate;
private _setCurrentData;
private _initCalculatedRefs;
private _calculate;
private _clearHiddenData;
}
export {};