nz-json-schema-form
Version:
Schema form for JSON schema
46 lines (45 loc) • 2.05 kB
TypeScript
import { AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
import { Subject } from 'rxjs';
import { NzSchema } from '../interfaces/nz-schema';
import { SchemaContext } from './schema-context';
import { SchemaFormBuilder } from './schema-form-builder';
export type UpdateSchemaFun = (schema: NzSchema) => NzSchema;
export declare abstract class AbstractSchemaControl extends AbstractControl {
schemaContext: SchemaContext;
onUpdateSchema$: Subject<NzSchema>;
abstract updateSchema(schemaOrFun: NzSchema | UpdateSchemaFun): void;
}
export declare class SchemaFormControl extends UntypedFormControl implements AbstractSchemaControl {
schemaContext: SchemaContext;
onUpdateSchema$: Subject<NzSchema>;
get updateSchema(): (schemaOrFun: NzSchema | UpdateSchemaFun) => void;
get(path: Array<string | number> | string): AbstractSchemaControl | null;
setValue(value: any, options?: {
onlySelf?: boolean;
emitEvent?: boolean;
emitModelToViewChange?: boolean;
emitViewToModelChange?: boolean;
}): void;
}
export declare class SchemaFormGroup extends UntypedFormGroup implements AbstractSchemaControl {
schemaContext: SchemaContext;
controls: {
[key: string]: AbstractSchemaControl;
};
onUpdateSchema$: Subject<NzSchema>;
get updateSchema(): (schemaOrFun: NzSchema | UpdateSchemaFun) => void;
get(path: Array<string | number> | string): AbstractSchemaControl | null;
}
export declare class SchemaFormArray extends UntypedFormArray implements AbstractSchemaControl {
schemaContext: SchemaContext;
controls: AbstractSchemaControl[];
onUpdateSchema$: Subject<NzSchema>;
onControlsChange: Subject<void>;
_builder: SchemaFormBuilder;
get updateSchema(): (schemaOrFun: NzSchema | UpdateSchemaFun) => void;
get(path: Array<string | number> | string): AbstractSchemaControl | null;
setValue(value: any[], options?: {
onlySelf?: boolean;
emitEvent?: boolean;
}): void;
}